devutils-mcp-server

An open-source DevUtils MCP Server — a comprehensive developer utilities toolkit for the Docker MCP Catalog. It provides 36 tools across 8 categories that AI assistants can invoke directly.

Documentation

Harness Score L0 (Unharnessed): measures AI-assisted development harness maturity with harness-score

DevUtils MCP Server logo

DevUtils MCP Server

36 everyday developer tools for any MCP-compatible AI assistant. Hashing, encoding, UUID generation, JWT decoding, JSON formatting, network tools, text utilities, and more — all local, no external APIs.

Think of it as busybox for developer tools — small, essential, and always useful.

License: MIT MCP npm Docker Glama Smithery MCP Registry GitHub stars

Also available as a plugin: devutils-cursor-plugin — one-click install for Cursor and Claude Code.

Add DevUtils to Cursor    Install DevUtils in VS Code

DevUtils MCP Server demo — UUID generation, JWT decode, JSON validation


Why?

Every developer needs to hash strings, encode/decode data, generate UUIDs, decode JWTs, format JSON, calculate CIDR ranges, and convert timestamps every day. DevUtils MCP Server brings all of these tools directly into your AI assistant — works with Claude, Cursor, VS Code, Windsurf, and any other MCP-compatible client.


Installation

Prerequisite: Node.js 18+ (Node 22 recommended). Verify with node -v.

One-click / plugin

Use the Add to Cursor / VS Code badges above, or install the plugin:

/plugin marketplace add paladini/devutils-cursor-plugin
/plugin install devutils-mcp@devutils-cursor-plugin

Cursor: Settings → Customize, or add from GitHub paladini/devutils-cursor-plugin.

npx (no install)

npx -y devutils-mcp-server

npm

npm install -g devutils-mcp-server
devutils-mcp-server

Docker

# Published image (when available)
docker run -i --rm ghcr.io/paladini/devutils-mcp-server

# Or build locally
docker build -t devutils-mcp-server .
docker run -i --rm devutils-mcp-server

# Or with Compose
docker compose build
docker compose run --rm -i devutils-mcp

Official MCP Registry

Listed as io.github.paladini/devutils-mcp-server. Search for io.github.paladini/devutils.

GitHub Packages

Releases are dual-published to npm and GitHub Packages as @paladini/devutils-mcp-server (see .github/workflows/release.yml). Prefer the public npm package for most installs; use GitHub Packages when you already authenticate against npm.pkg.github.com.

# After authenticating to npm.pkg.github.com for the @paladini scope:
npx -y @paladini/devutils-mcp-server

Smithery

Also available on Smithery.


Client setup

Cursor

One-click: use the Add to Cursor badge at the top of this README.

Plugin (recommended): Install DevUtils MCP from Cursor Settings → Customize.

Manual: Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "devutils": {
      "command": "npx",
      "args": ["-y", "devutils-mcp-server"]
    }
  }
}

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "devutils": {
      "command": "npx",
      "args": ["-y", "devutils-mcp-server"]
    }
  }
}

Or with Docker:

{
  "mcpServers": {
    "devutils": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "ghcr.io/paladini/devutils-mcp-server"]
    }
  }
}

Claude Code

/plugin marketplace add paladini/devutils-cursor-plugin
/plugin install devutils-mcp@devutils-cursor-plugin

VS Code (GitHub Copilot)

One-click: use the VS Code badge at the top, or add to .vscode/mcp.json / user settings:

{
  "servers": {
    "devutils": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "devutils-mcp-server"]
    }
  }
}

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

{
  "mcpServers": {
    "devutils": {
      "command": "npx",
      "args": ["-y", "devutils-mcp-server"]
    }
  }
}

Docker MCP Toolkit (Docker Desktop)

If this server is available in the Docker MCP Catalog:

  1. Open Docker Desktop → MCP Toolkit
  2. Search for DevUtils
  3. Click Enable

Local development

npm install
npm run dev

Available tools (36)

Hash (6)

ToolDescription
hash_md5Generate MD5 hash
hash_sha1Generate SHA-1 hash
hash_sha256Generate SHA-256 hash
hash_sha512Generate SHA-512 hash
hash_bcryptGenerate bcrypt hash (configurable rounds)
hash_bcrypt_verifyVerify string against bcrypt hash

Encoding (8)

ToolDescription
base64_encodeEncode string to Base64
base64_decodeDecode Base64 to string
url_encodeURL-encode (percent-encoding)
url_decodeDecode URL-encoded string
html_encodeEncode HTML entities
html_decodeDecode HTML entities
hex_encodeEncode string to hex
hex_decodeDecode hex to string

Generators (4)

ToolDescription
generate_uuidCryptographic UUID v4 (batch support)
generate_nanoidCompact URL-friendly ID (configurable length)
generate_passwordSecure password (configurable complexity)
generate_random_hexRandom hex string (configurable length)

JWT (2)

ToolDescription
jwt_decodeDecode JWT header & payload (with human-readable dates)
jwt_validateValidate JWT structure & expiration

Formatters (3)

ToolDescription
json_formatPretty-print or minify JSON
json_validateValidate JSON with error location
json_path_queryExtract values using dot-notation path

Converters (5)

ToolDescription
timestamp_to_dateUnix timestamp → human date (timezone support)
date_to_timestampDate string → Unix timestamp
number_base_convertConvert between bases (bin/oct/dec/hex/any)
color_convertConvert colors (HEX ↔ RGB ↔ HSL)
byte_convertConvert byte units (B/KB/MB/GB/TB/PB)

Network (2)

ToolDescription
cidr_calculateCIDR → network, broadcast, mask, host range, host count
ip_validateValidate & classify IPv4/IPv6 address

Text (6)

ToolDescription
text_statsCharacter/word/line/sentence count, reading time
lorem_ipsumGenerate placeholder text
case_convertConvert between camelCase, snake_case, PascalCase, etc.
slugifyConvert string to URL-friendly slug
regex_testTest regex pattern against input
text_diffLine-by-line diff between two texts

Architecture

src/
├── index.ts          # MCP server entry point (stdio transport)
└── tools/
    ├── hash.ts       # Cryptographic hash functions
    ├── encoding.ts   # Encode/decode utilities
    ├── generators.ts # ID and password generators
    ├── jwt.ts        # JWT decode and validation
    ├── formatters.ts # JSON formatting and querying
    ├── converters.ts # Data type and unit converters
    ├── network.ts    # Network calculation utilities
    └── text.ts       # Text analysis and manipulation

Tech stack: TypeScript + Node.js 22 · @modelcontextprotocol/sdk · bcryptjs · nanoid · zod

Zero external API dependencies. All tools run locally with no network calls.


Docker

The image uses a multi-stage build for minimal size:

  1. Build stage: Compiles TypeScript on Node 22 Alpine
  2. Runtime stage: Runs compiled JS on Node 22 Alpine as a non-root user
docker build -t devutils-mcp-server .

# Smoke-test with an MCP initialize request
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | docker run -i --rm devutils-mcp-server

FAQ & design philosophy

Why MCP, and not just a library?

Valid criticism: If you're writing Python scripts and need to hash something, hashlib is 2 lines of code. Why run MCP overhead?

Answer: This server is optimized for AI agents in multi-step workflows, not programmers writing code:

  1. AI hallucination cost >> MCP overhead — An AI model spending 50ms calling an MCP tool (vs. 1ms library call) is negligible when the alternative is the model making up a hash or using the wrong encoding.
  2. Reliable tool semantics — MCP enforces strict tool contracts. For example, jwt_decode always returns human-readable dates with timezone support.
  3. Universally accessible — Any MCP-compatible client can use these tools. A Python library only works if your agent is Python-based.
  4. Multi-tenant safety — MCP provides explicit tool whitelisting with input validation.

When to use DevUtils versus alternatives

Use DevUtils if:

  • You're using Claude, Cursor, VS Code Copilot, Windsurf, or any MCP-compatible AI assistant
  • You want reliable, validated utility operations in AI workflows
  • You need 36 tools in one package

Don't use DevUtils if:

  • You're writing regular application code (use native libraries)
  • You need extreme performance (direct library calls are faster)
  • Your AI client does not support MCP

Design philosophy

  • Small & focused: 36 utilities, zero external APIs, ~50MB container
  • Security-first: Non-root user, Alpine Linux, minimal attack surface
  • AI-friendly: Consistent naming (<domain>_<operation>), strict schemas, human-readable outputs
  • Client-agnostic: Works with any MCP-compatible client via stdio transport

Available on

ChannelLink
Official MCP Registryio.github.paladini/devutils-mcp-serverregistry.modelcontextprotocol.io
npmdevutils-mcp-server
GitHub Packages@paladini/devutils-mcp-server (dual-publish on release tags)
GHCR (Docker)ghcr.io/paladini/devutils-mcp-server
Glamaglama.ai/mcp/servers/paladini/devutils-mcp-server
Smitherysmithery.ai/server/devutils-mcp-server
Cursor / Claude plugindevutils-cursor-plugin

Contributing

Questions and ideas: GitHub Discussions

Security reports: see SECURITY.md.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feat/amazing-tool)
  3. Commit your changes (git commit -m 'feat: add amazing tool')
  4. Push to the branch (git push origin feat/amazing-tool)
  5. Open a Pull Request

See CHANGELOG.md.


License

MIT © Fernando Paladini