devutils-mcp-server
🛠️ 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.
🎯 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.
Think of it as busybox for developer tools — small, essential, and always useful.
📦 Quick Start
Option 1 — npx (no install)
npx devutils-mcp-serverOption 2 — Docker
# Pull and run
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-serverOption 3 — Local install
npm install -g devutils-mcp-server
devutils-mcp-server⚙️ Client Setup
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": ["devutils-mcp-server"]
}
}
}Or with Docker:
{
"mcpServers": {
"devutils": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/paladini/devutils-mcp-server"]
}
}
}Cursor
Add to your Cursor MCP settings (~/.cursor/mcp.json):
{
"mcpServers": {
"devutils": {
"command": "npx",
"args": ["devutils-mcp-server"]
}
}
}VS Code (GitHub Copilot)
Add to your .vscode/mcp.json in the workspace, or to your user settings:
{
"servers": {
"devutils": {
"type": "stdio",
"command": "npx",
"args": ["devutils-mcp-server"]
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"devutils": {
"command": "npx",
"args": ["devutils-mcp-server"]
}
}
}Docker MCP Toolkit (Docker Desktop)
If this server is available in the Docker MCP Catalog, you can enable it directly from Docker Desktop:
Open Docker Desktop → MCP Toolkit
Search for DevUtils
Click Enable
Local Development
npm install
npm run dev🔧 Available Tools (36 total)
🔐 Hash Tools (6)
Tool | Description |
| Generate MD5 hash |
| Generate SHA-1 hash |
| Generate SHA-256 hash |
| Generate SHA-512 hash |
| Generate bcrypt hash (configurable rounds) |
| Verify string against bcrypt hash |
🔄 Encoding Tools (8)
Tool | Description |
| Encode string to Base64 |
| Decode Base64 to string |
| URL-encode (percent-encoding) |
| Decode URL-encoded string |
| Encode HTML entities |
| Decode HTML entities |
| Encode string to hex |
| Decode hex to string |
🎲 Generator Tools (4)
Tool | Description |
| Cryptographic UUID v4 (batch support) |
| Compact URL-friendly ID (configurable length) |
| Secure password (configurable complexity) |
| Random hex string (configurable length) |
🔑 JWT Tools (2)
Tool | Description |
| Decode JWT header & payload (with human-readable dates) |
| Validate JWT structure & expiration |
📝 Formatter Tools (3)
Tool | Description |
| Pretty-print or minify JSON |
| Validate JSON with error location |
| Extract values using dot-notation path |
🔢 Converter Tools (5)
Tool | Description |
| Unix timestamp → human date (timezone support) |
| Date string → Unix timestamp |
| Convert between bases (bin/oct/dec/hex/any) |
| Convert colors (HEX ↔ RGB ↔ HSL) |
| Convert byte units (B/KB/MB/GB/TB/PB) |
🌐 Network Tools (2)
Tool | Description |
| CIDR → network, broadcast, mask, host range, host count |
| Validate & classify IPv4/IPv6 address |
✏️ Text Tools (6)
Tool | Description |
| Character/word/line/sentence count, reading time |
| Generate placeholder text |
| Convert between camelCase, snake_case, PascalCase, etc. |
| Convert string to URL-friendly slug |
| Test regex pattern against input |
| Line-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 manipulationTech Stack:
TypeScript + Node.js 22
@modelcontextprotocol/sdk— Official MCP SDKbcryptjs— Password hashingnanoid— Compact ID generationzod— Input validation
Zero external API dependencies. All tools run locally with no network calls.
🐳 Docker
The image uses a multi-stage build for minimal size:
Build stage: Compiles TypeScript on Node 22 Alpine
Runtime stage: Runs compiled JS on Node 22 Alpine as non-root user
# Build
docker build -t devutils-mcp-server .
# Test (send 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:
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. A wrong hash → debugging time → 1000x worse than overhead.Reliable tool semantics
Libraries let the model do anything (import, call, write loops). MCP enforces strict tool contracts. For example,jwt_decodealways returns human-readable dates with timezone support — no model confusion about Unix epoch interpretation.Universally accessible
Any MCP-compatible client (Claude, Cursor, VS Code Copilot, Windsurf, and more) can use these tools. A Python library only works if your agent is Python-based.Multi-tenant safety
In production systems, letting AI agents run arbitrary library code is a security risk. 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 your AI workflows
You need 36+ tools in one package (vs. learning 8 different tool specs)
You want educational reference implementations of common algorithms
Don't use DevUtils if:
You're writing regular Python/Node/Go code (use native libraries like
hashlib,crypto)You need extreme performance (direct library calls are 1000x 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 outputsClient-agnostic: Works with any MCP-compatible client via stdio transport
Battle-tested: Each tool references standard implementations (zod validation, bcryptjs hashing, etc.)
📝 Contributing
Fork the repository
Create your feature branch (
git checkout -b feat/amazing-tool)Commit your changes (
git commit -m 'feat: add amazing tool')Push to the branch (
git push origin feat/amazing-tool)Open a Pull Request
📄 License
MIT © Fernando Paladini
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/paladini/devutils-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server