devutils-mcp-server
Un servidor MCP DevUtils de código abierto — un completo kit de herramientas de utilidades para desarrolladores para el Catálogo MCP de Docker. Proporciona 36 herramientas en 8 categorías que los asistentes de IA pueden invocar directamente.
Documentación
Servidor MCP DevUtils
36 herramientas de desarrollo cotidianas para cualquier asistente de IA compatible con MCP. Hashing, codificación, generación de UUID, decodificación de JWT, formato JSON, herramientas de red, utilidades de texto y más — todo local, sin APIs externas.
Piénsalo como busybox para herramientas de desarrollo — pequeño, esencial y siempre útil.
También disponible como plugin: devutils-cursor-plugin — instalación con un clic para Cursor y Claude Code.
¿Por qué?
Todo desarrollador necesita generar hashes de cadenas, codificar/decodificar datos, generar UUIDs, decodificar JWTs, formatear JSON, calcular rangos CIDR y convertir marcas de tiempo todos los días. DevUtils MCP Server lleva todas estas herramientas directamente a tu asistente de IA — funciona con Claude, Cursor, VS Code, Windsurf y cualquier otro cliente compatible con MCP.
Instalación
Requisito previo: Node.js 18+ (se recomienda Node 22). Verifica con
node -v.
Un clic / plugin
Usa las insignias Agregar a Cursor / VS Code de arriba, o instala el plugin:
/plugin marketplace add paladini/devutils-cursor-plugin
/plugin install devutils-mcp@devutils-cursor-plugin
Cursor: Configuración → Personalizar, o agrégalo desde GitHub paladini/devutils-cursor-plugin.
npx (sin instalación)
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
Registro Oficial de MCP
Listado como io.github.paladini/devutils-mcp-server. Busca io.github.paladini/devutils.
GitHub Packages
Los lanzamientos se publican de forma dual en npm y GitHub Packages como @paladini/devutils-mcp-server (consulta .github/workflows/release.yml). Prefiere el paquete público de npm para la mayoría de las instalaciones; usa GitHub Packages cuando ya te autentiques contra npm.pkg.github.com.
# After authenticating to npm.pkg.github.com for the @paladini scope:
npx -y @paladini/devutils-mcp-server
Smithery
También disponible en Smithery.
Configuración del cliente
Cursor
Un clic: usa la insignia Agregar a Cursor al inicio de este README.
Plugin (recomendado): Instala DevUtils MCP desde Configuración de Cursor → Personalizar.
Manual: Agrega a ~/.cursor/mcp.json:
{
"mcpServers": {
"devutils": {
"command": "npx",
"args": ["-y", "devutils-mcp-server"]
}
}
}
Claude Desktop
Agrega a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"devutils": {
"command": "npx",
"args": ["-y", "devutils-mcp-server"]
}
}
}
O con 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)
Un clic: usa la insignia de VS Code al inicio, o agrega a .vscode/mcp.json / configuración de usuario:
{
"servers": {
"devutils": {
"type": "stdio",
"command": "npx",
"args": ["-y", "devutils-mcp-server"]
}
}
}
Windsurf
Agrega a ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"devutils": {
"command": "npx",
"args": ["-y", "devutils-mcp-server"]
}
}
}
Docker MCP Toolkit (Docker Desktop)
Si este servidor está disponible en el Catálogo MCP de Docker:
- Abre Docker Desktop → MCP Toolkit
- Busca DevUtils
- Haz clic en Habilitar
Desarrollo local
npm install
npm run dev
Herramientas disponibles (36)
Hash (6)
| Herramienta | Descripción |
|---|---|
hash_md5 | Genera hash MD5 |
hash_sha1 | Genera hash SHA-1 |
hash_sha256 | Genera hash SHA-256 |
hash_sha512 | Genera hash SHA-512 |
hash_bcrypt | Genera hash bcrypt (rondas configurables) |
hash_bcrypt_verify | Verifica una cadena contra un hash bcrypt |
Codificación (8)
| Herramienta | Descripción |
|---|---|
base64_encode | Codifica una cadena a Base64 |
base64_decode | Decodifica Base64 a cadena |
url_encode | Codifica URL (codificación porcentual) |
url_decode | Decodifica una cadena codificada en URL |
html_encode | Codifica entidades HTML |
html_decode | Decodifica entidades HTML |
hex_encode | Codifica una cadena a hexadecimal |
hex_decode | Decodifica hexadecimal a cadena |
Generadores (4)
| Herramienta | Descripción |
|---|---|
generate_uuid | UUID v4 criptográfico (soporte por lotes) |
generate_nanoid | ID compacto y amigable para URL (longitud configurable) |
generate_password | Contraseña segura (complejidad configurable) |
generate_random_hex | Cadena hexadecimal aleatoria (longitud configurable) |
JWT (2)
| Herramienta | Descripción |
|---|---|
jwt_decode | Decodifica encabezado y carga útil de JWT (con fechas legibles) |
jwt_validate | Valida estructura y expiración de JWT |
Formateadores (3)
| Herramienta | Descripción |
|---|---|
json_format | Imprime o minimiza JSON de forma legible |
json_validate | Valida JSON con ubicación de error |
json_path_query | Extrae valores usando ruta de notación de puntos |
Convertidores (5)
| Herramienta | Descripción |
|---|---|
timestamp_to_date | Marca de tiempo Unix → fecha legible (soporte de zona horaria) |
date_to_timestamp | Cadena de fecha → marca de tiempo Unix |
number_base_convert | Convierte entre bases (bin/oct/dec/hex/cualquiera) |
color_convert | Convierte colores (HEX ↔ RGB ↔ HSL) |
byte_convert | Convierte unidades de bytes (B/KB/MB/GB/TB/PB) |
Red (2)
| Herramienta | Descripción |
|---|---|
cidr_calculate | CIDR → red, broadcast, máscara, rango de hosts, cantidad de hosts |
ip_validate | Valida y clasifica direcciones IPv4/IPv6 |
Texto (6)
| Herramienta | Descripción |
|---|---|
text_stats | Conteo de caracteres/palabras/líneas/oraciones, tiempo de lectura |
lorem_ipsum | Genera texto de relleno |
case_convert | Convierte entre camelCase, snake_case, PascalCase, etc. |
slugify | Convierte una cadena a slug amigable para URL |
regex_test | Prueba un patrón regex contra una entrada |
text_diff | Diferencia línea por línea entre dos textos |
Arquitectura
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
Stack tecnológico: TypeScript + Node.js 22 · @modelcontextprotocol/sdk · bcryptjs · nanoid · zod
Cero dependencias de APIs externas. Todas las herramientas se ejecutan localmente sin llamadas de red.
Docker
La imagen usa una compilación de múltiples etapas para un tamaño mínimo:
- Etapa de compilación: Compila TypeScript en Node 22 Alpine
- Etapa de ejecución: Ejecuta JS compilado en Node 22 Alpine como usuario no root
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
Preguntas frecuentes y filosofía de diseño
¿Por qué MCP y no solo una biblioteca?
Crítica válida: Si estás escribiendo scripts en Python y necesitas generar un hash, hashlib son 2 líneas de código. ¿Por qué ejecutar la sobrecarga de MCP?
Respuesta: Este servidor está optimizado para agentes de IA en flujos de trabajo de múltiples pasos, no para programadores que escriben código:
- El costo de la alucinación de IA >> sobrecarga de MCP — Un modelo de IA que tarda 50 ms en llamar a una herramienta MCP (vs. 1 ms de una llamada de biblioteca) es insignificante cuando la alternativa es que el modelo invente un hash o use la codificación incorrecta.
- Semántica confiable de herramientas — MCP impone contratos estrictos de herramientas. Por ejemplo,
jwt_decodesiempre devuelve fechas legibles con soporte de zona horaria. - Accesible universalmente — Cualquier cliente compatible con MCP puede usar estas herramientas. Una biblioteca de Python solo funciona si tu agente está basado en Python.
- Seguridad multiinquilino — MCP proporciona listas blancas explícitas de herramientas con validación de entrada.
Cuándo usar DevUtils versus alternativas
Usa DevUtils si:
- Estás usando Claude, Cursor, VS Code Copilot, Windsurf o cualquier asistente de IA compatible con MCP
- Quieres operaciones de utilidad confiables y validadas en flujos de trabajo de IA
- Necesitas 36 herramientas en un solo paquete
No uses DevUtils si:
- Estás escribiendo código de aplicación regular (usa bibliotecas nativas)
- Necesitas rendimiento extremo (las llamadas directas a bibliotecas son más rápidas)
- Tu cliente de IA no admite MCP
Filosofía de diseño
- Pequeño y enfocado: 36 utilidades, cero APIs externas, contenedor de ~50 MB
- Seguridad primero: Usuario no root, Alpine Linux, superficie de ataque mínima
- Amigable con IA: Nombres consistentes (
<domain>_<operation>), esquemas estrictos, salidas legibles - Independiente del cliente: Funciona con cualquier cliente compatible con MCP mediante transporte stdio
Disponible en
| Canal | Enlace |
|---|---|
| Registro Oficial de MCP | io.github.paladini/devutils-mcp-server — registry.modelcontextprotocol.io |
| npm | devutils-mcp-server |
| GitHub Packages | @paladini/devutils-mcp-server (publicación dual en etiquetas de lanzamiento) |
| GHCR (Docker) | ghcr.io/paladini/devutils-mcp-server |
| Glama | glama.ai/mcp/servers/paladini/devutils-mcp-server |
| Smithery | smithery.ai/server/devutils-mcp-server |
| Plugin Cursor / Claude | devutils-cursor-plugin |
Contribuciones
Preguntas e ideas: Discusiones de GitHub
Informes de seguridad: consulta SECURITY.md.
- Haz un fork del repositorio
- Crea tu rama de características (
git checkout -b feat/amazing-tool) - Haz commit de tus cambios (
git commit -m 'feat: add amazing tool') - Haz push a la rama (
git push origin feat/amazing-tool) - Abre una Solicitud de Extracción (Pull Request)
Consulta CHANGELOG.md.
Licencia
MIT © Fernando Paladini