IT Tools
Proporciona acceso a más de 70 herramientas y utilidades de TI para desarrolladores y profesionales de TI, incluyendo herramientas de codificación, manipulación de texto y redes.
Documentación
IT Tools MCP Server
[!WARNING] Este proyecto está obsoleto y ya no se mantiene.
Fue creado como un ejercicio de aprendizaje para explorar el desarrollo asistido por IA y el Model Context Protocol (MCP). No se aceptarán más actualizaciones, correcciones de errores ni solicitudes de extracción. El repositorio se conserva solo como referencia.
Si necesitas un servidor MCP mantenido activamente con utilidades de TI, busca alternativas de la comunidad.
📝 Nota: Una versión condensada de este README se sincroniza automáticamente en Docker Hub debido a límites de caracteres.
Un servidor integral del Model Context Protocol (MCP) que proporciona acceso a más de 121 herramientas y utilidades de TI comúnmente utilizadas por desarrolladores, administradores de sistemas y profesionales de TI. Este servidor expone un conjunto completo de herramientas para codificación/descodificación, manipulación de texto, hash, utilidades de red y muchas otras tareas comunes de desarrollo y TI.
Historial de Estrellas
📦 Instalación y Configuración
Uso con VS Code
Instalación rápida:
Instalación:
- Abre VS Code
- Pulsa
Ctrl+Shift+P(oCmd+Shift+Pen Mac) - Escribe "MCP" y selecciona "MCP: Add Server"
- Elige "NPM Package" e introduce:
it-tools-mcp
O añádelo manualmente a tu settings.json de VS Code:
Node
{
"mcp": {
"servers": {
"it-tools": {
"command": "npx",
"args": ["it-tools-mcp"],
"env": {}
}
}
}
}
Docker
{
"mcp": {
"servers": {
"it-tools": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"--init",
"--security-opt", "no-new-privileges:true",
"--cap-drop", "ALL",
"--read-only",
"--user", "1001:1001",
"--memory=256m",
"--cpus=0.5",
"--name", "it-tools-mcp",
"wrenchpilot/it-tools-mcp:latest"
]
}
}
}
Modo Interactivo
docker run -it --rm wrenchpilot/it-tools-mcp:latest
Uso Programático
# Generate a UUID
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"generate_uuid","arguments":{}}}' | \
docker run -i --rm wrenchpilot/it-tools-mcp:latest
# Encode text to Base64
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"encode_base64","arguments":{"text":"Hello World"}}}' | \
docker run -i --rm wrenchpilot/it-tools-mcp:latest
Capacidades de Registro MCP
Este servidor incluye soporte completo de registro MCP con las siguientes características:
Niveles de Registro
- debug (0): Información detallada de depuración
- info (1): Mensajes de información general
- notice (2): Eventos normales pero significativos
- warning (3): Condiciones de advertencia
- error (4): Condiciones de error
- critical (5): Condiciones críticas
- alert (6): Se debe actuar inmediatamente
- emergency (7): El sistema no es utilizable
Herramientas de Registro
logging_setLevel: Cambia el nivel mínimo de registro en tiempo de ejecuciónlogging_status: Ver la configuración de registro actual y los niveles disponibles
Comportamiento según el Entorno
- Modo Desarrollo: Nivel de depuración por defecto, salida de consola mejorada
- Modo Producción: Nivel de información por defecto, salida limpia para cumplimiento MCP
- Respaldo Automático: Registro en consola cuando el transporte MCP no está listo
Ejemplos de Uso
# Check current logging status
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"logging_status","arguments":{}}}' | npx it-tools-mcp
# Change log level to debug
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"logging_setLevel","arguments":{"level":"debug"}}}' | npx it-tools-mcp
# Change log level to error (only show errors and above)
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"logging_setLevel","arguments":{"level":"error"}}}' | npx it-tools-mcp
🔧 Utilidades del Protocolo MCP
Este servidor implementa la especificación completa MCP 2025-06-18, incluyendo utilidades avanzadas:
Utilidad de Ping
- Comprobación de Salud: Usa solicitudes
pingpara verificar el estado de la conexión - Respuesta Automática: El servidor responde rápidamente con resultado vacío según la especificación MCP
- Monitoreo de Conexión: Implementa comprobaciones de salud periódicas
Seguimiento de Progreso
- Operaciones de Larga Duración: Recibe actualizaciones de progreso para tareas que consumen tiempo
- Tokens de Progreso: Incluye
_meta.progressTokenen las solicitudes para habilitar notificaciones de progreso - Notificaciones: El servidor envía
notifications/progresscon el estado actual
Cancelación de Solicitudes
- Cancelación Elegante: Envía
notifications/cancelledpara abortar solicitudes en curso - Limpieza de Recursos: El servidor libera correctamente los recursos cuando se cancelan las solicitudes
- Manejo de Condiciones de Carrera: Manejo robusto de casos límite de sincronización
Soporte de Muestreo
- Integración LLM: El servidor puede solicitar completaciones LLM de los clientes usando
sampling/createMessage - Preferencias de Modelo: Soporte para sugerencias de selección de modelo y prioridades de capacidad (costo, velocidad, inteligencia)
- Tipos de Contenido: Soporte para contenido de texto, imagen y audio en solicitudes de muestreo
- Flujos de Trabajo Agénticos: Habilita operaciones de herramientas impulsadas por IA mediante llamadas LLM anidadas
- Control del Cliente: Los clientes mantienen control total sobre el acceso al modelo y la aprobación del usuario
Ejemplos de Protocolo
# Test connection health with ping
echo '{"jsonrpc":"2.0","id":1,"method":"ping"}' | npx it-tools-mcp
# Request with progress tracking
echo '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"some_tool","arguments":{},"_meta":{"progressToken":"track123"}}}' | npx it-tools-mcp
# Cancel a request (send as notification)
echo '{"jsonrpc":"2.0","method":"notifications/cancelled","params":{"requestId":"2","reason":"User cancelled"}}' | npx it-tools-mcp
# Test sampling capabilities
echo '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"mcp_sampling_demo","arguments":{"message":"What is the capital of France?","modelPreference":"claude","systemPrompt":"You are a helpful assistant.","maxTokens":100}}}' | npx it-tools-mcp
# Demo MCP utilities
echo '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"mcp_utilities_demo","arguments":{"operation":"ping"}}}' | npx it-tools-mcp
🛠️ Categorías de Herramientas
Este servidor MCP proporciona más de 121 herramientas en 14 categorías:
- ** Herramientas Ansible** (5 herramientas): Cifrado/descifrado de vault, analizador de inventario, validador de playbook, referencia
- 🎨 Herramientas de Color (2 herramientas): Conversión Hex ↔ RGB
- 📝 Formato de Datos (12 herramientas): Conversión JSON, XML, YAML, SQL, TOML, Markdown ↔ HTML, formato de teléfono
- ️ Herramientas de Desarrollo (6 herramientas): Pruebas de regex, generación de cron, conversión de listas, embellecedores de código, TOC de markdown
- 🐳 Herramientas Docker (5 herramientas): Validación de Compose, herramientas de conversión, generador Traefik, referencia
- 🔧 Codificación y Descodificación (8 herramientas): Base64, URL, entidades HTML, texto a binario
- 🔍 Herramientas Forenses (3 herramientas): Identificación de tipo de archivo, descodificación de safelink, URL fanger
- 🆔 Generadores de ID y Códigos (4 herramientas: UUID, ULID, códigos QR, marcadores de posición SVG
- 🔢 Matemáticas y Cálculos (6 herramientas): Evaluación de expresiones, conversión de bases, temperatura, porcentajes, marcas de tiempo Unix, números romanos
- 🌐 Red y Sistema (23 herramientas): Subredes IPv4/IPv6, análisis de URL, direcciones MAC, ps, top, cat, head, tail, grep, ping, nslookup, telnet, dig, ssh, scp, curl, validación IBAN
- ⚡ Física (3 herramientas): Conversiones de unidades de ángulo, energía y potencia
- 🔐 Seguridad y Criptografía (12 herramientas): Hash (MD5, SHA1, SHA256, SHA512), HMAC, JWT, bcrypt, contraseñas, tokens, OTP, BIP39
- ✨ Procesamiento de Texto (19 herramientas): Conversión de mayúsculas/minúsculas, estadísticas, diff, arte ASCII, alfabeto NATO, slugify, Unicode
- 🛠️ Herramientas de Utilidad (7 herramientas): Normalización de correo electrónico, tipos MIME, códigos de estado HTTP, información de dispositivos, embellecedor CSS, conversor rem/px
📸 Ejemplos de Capturas de Pantalla
Ejemplo de Generación de Hash de Contraseña

Ejemplo de Generación de Texto con Arte ASCII

Ejemplos de uso del servidor IT Tools MCP con VS Code Copilot Chat para hash seguro de contraseñas y generación creativa de arte ASCII.
Herramientas Disponibles
| Herramienta | Descripción | Parámetros |
|---|---|---|
| Herramientas de Ansible | ||
parse_ansible_inventory | Analizar inventario de Ansible | inventory: string |
generate_ansible_inventory | Generar inventario de Ansible | hosts: string[], groups?: Record<string, string[]>, variables?: Record<string, any> |
validate_ansible_playbook | Validar YAML de playbook de Ansible | playbook: string |
show_ansible_reference | Referencia de sintaxis y módulos de Ansible | query?: string |
decrypt_ansible_vault | Descifrar datos de Ansible Vault | data: string, password: string |
encrypt_ansible_vault | Cifrar datos con Ansible Vault | data: string, password: string |
| Herramientas de Color | ||
convert_hex_to_rgb | Convertir HEX a RGB | hex: string |
convert_rgb_to_hex | Convertir RGB a HEX | r: number, g: number, b: number |
| Formato de Datos | ||
convert_html_to_markdown | Convertir HTML a Markdown | html: string |
compare_json | Comparar objetos JSON | json1: string, json2: string |
format_json | Formatear y validar JSON | json: string, indent?: number |
minify_json | Minificar JSON | json: string |
convert_json_to_csv | Convertir JSON a CSV | json: string, delimiter?: string |
convert_json_to_toml | Convertir JSON a TOML | json: string |
convert_markdown_to_html | Convertir Markdown a HTML | markdown: string |
format_phone | Analizar y formatear números de teléfono | phoneNumber: string, countryCode?: string |
format_sql | Formatear SQL | sql: string, dialect?: 'sql' | 'mysql' | 'postgresql' | 'sqlite' | 'mariadb' | 'db2' | 'plsql' | 'n1ql' | 'redshift' | 'spark' | 'tsql' | 'trino' | 'bigquery' (opcional, predeterminado: 'sql') |
convert_toml_to_json | Convertir TOML a JSON | toml: string |
format_xml | Formatear XML | xml: string, indent?: number |
format_yaml | Formatear YAML | yaml: string |
| Herramientas de Desarrollo | ||
generate_crontab | Generar expresiones cron | minute?: string, hour?: string, dayOfMonth?: string, month?: string, dayOfWeek?: string |
format_html | Formatear y embellecer HTML | html: string, indent?: number |
format_javascript | Formatear y embellecer JavaScript | javascript: string, indent?: number |
convert_list | Convertir formatos de lista | list: string, inputFormat: 'comma' | 'semicolon' | 'newline' | 'space' | 'pipe', outputFormat: 'comma' | 'semicolon' | 'newline' | 'space' | 'pipe' | 'json' | 'quoted', trim?: boolean |
generate_markdown_toc | Generar tabla de contenidos para Markdown | markdown: string, maxDepth?: number |
test_regex | Probar expresiones regulares | pattern: string, text: string, flags?: string |
| Herramientas de Docker | ||
convert_docker_compose_to_run | Convertir Compose a comando Docker run | compose: string, service?: string |
validate_docker_compose | Validar YAML de Docker Compose | compose: string |
show_docker_reference | Referencia de comandos y sintaxis de Docker | query?: string |
convert_docker_run_to_compose | Convertir Docker run a Compose | command: string |
generate_traefik_compose | Generar Traefik Docker Compose | domain: string, service: string, port?: number, network?: string |
| Codificación y Decodificación | ||
decode_base64 | Decodificar texto Base64 | text: string |
encode_base64 | Codificar texto a Base64 | text: string |
decode_html | Decodificar entidades HTML | text: string |
encode_html | Codificar entidades HTML | text: string |
encode_html_entities | Codificación/decodificación extendida de entidades HTML | text: string, operation: 'encode' | 'decode' |
convert_text_to_binary | Convertir texto a binario y viceversa | input: string, operation: 'encode' | 'decode' |
convert_text_to_unicode | Convertir texto a Unicode y viceversa | input: string, operation: 'encode' | 'decode' |
decode_url | Decodificar texto URL | text: string |
encode_url | Codificar texto URL | text: string |
| Herramientas Forenses | ||
identify_file_type | Identificar tipo de archivo por contenido | data: string, filename?: string |
decode_safelink | Decodificar Microsoft SafeLinks | url: string |
fang_url | Fang y defang URLs para análisis | text: string, operation: 'fang' | 'defang' |
| Generadores de ID y Códigos | ||
generate_qr_code | Generar códigos QR para cualquier contenido | text: string, size?: number - Admite URLs, WiFi (WIFI:T:WPA;S:network;P:password;;), información de contacto, etc. |
generate_svg_placeholder | Generar marcador de posición SVG | width?: number, height?: number, text?: string, backgroundColor?: string, textColor?: string |
generate_ulid | Generar ULID | None |
generate_uuid | Generar UUID v4 | None |
| Matemáticas y Cálculos | ||
evaluate_math | Evaluar expresiones | expression: string |
convert_number_base | Convertir bases numéricas | number: string, fromBase: number, toBase: number |
calculate_percentage | Calcular porcentajes | operation: 'percentage-of' | 'what-percentage' | 'percentage-change', value1: number, value2: number |
convert_roman_numerals | Convertir números romanos | input: string |
convert_temperature | Convertir temperaturas | temperature: number, from: 'celsius' | 'fahrenheit' | 'kelvin', to: 'celsius' | 'fahrenheit' | 'kelvin' |
convert_unix_timestamp | Convertir marcas de tiempo | input: string |
| Red y Sistema | ||
cat | Mostrar contenido de archivo | file: string |
curl | Cliente HTTP (GET, POST, etc.) | url: string, method?: string, headers?: Record<string, string>, body?: string |
dig | Consulta DNS (tipo personalizado) | target: string, type?: string |
grep | Buscar patrón en archivo | file: string, pattern: string |
head | Mostrar primeras N líneas de archivo | file: string, lines?: number |
validate_iban | Validar IBAN | iban: string |
calculate_ip_subnet | Calcular subred IPv4 | ip: string, cidr: number |
calculate_ipv4_subnet | Cálculo de subred IPv4 mejorado | cidr: string |
generate_ipv6_ula | Generar IPv6 ULA | globalId?: string |
generate_mac_address | Generar dirección MAC | prefix?: string, separator?: ':' | '-' |
nslookup | Consulta DNS (A/AAAA/CNAME) | target: string |
ping | Hacer ping a un host | target: string, count?: number |
ps | Listar procesos en ejecución | None |
generate_random_port | Generar puertos aleatorios | count?: number, min?: number, max?: number, exclude?: number[] |
scp | Copiar archivos hacia/desde host remoto (SFTP) | target: string, user: string, direction: 'upload'|'download', localPath: string, remotePath: string, privateKey?: string |
ssh | Ejecución de comandos SSH | target: string, user: string, command: string |
tail | Mostrar últimas N líneas de archivo | file: string, lines?: number |
telnet | Probar conectividad TCP | target: string, port: number |
top | Mostrar procesos principales (por CPU) | None |
parse_url | Analizar componentes de URL | url: string |
| Física | ||
convert_angle | Convertir unidades de ángulo | value: number, from: 'degrees' | 'radians' | 'gradians', to: 'degrees' | 'radians' | 'gradians' |
convert_energy | Convertir unidades de energía | value: number, from: 'joules' | 'calories' | 'kwh' | 'btu', to: 'joules' | 'calories' | 'kwh' | 'btu' |
convert_power | Convertir unidades de potencia | value: number, from: 'watts' | 'kilowatts' | 'horsepower' | 'btu_per_hour', to: 'watts' | 'kilowatts' | 'horsepower' | 'btu_per_hour' |
| Seguridad y Criptografía | ||
generate_basic_auth | Generar cabecera de autenticación Basic | username: string, password: string |
hash_bcrypt | Generar/verificar hash bcrypt | password: string, rounds?: number, hash?: string |
generate_bip39 | Generar mnemónico BIP39 | wordCount?: '12' | '15' | '18' | '21' | '24' |
hash_md5 | Generar hash MD5 | text: string |
hash_sha1 | Generar hash SHA1 | text: string |
hash_sha256 | Generar hash SHA256 | text: string |
hash_sha512 | Generar hash SHA512 | text: string |
generate_hmac | Generar HMAC | message: string, key: string, algorithm?: 'sha1' | 'sha256' | 'sha512' |
decode_jwt | Decodificar token JWT | token: string |
generate_otp | Generar códigos TOTP | secret: string, digits?: number, period?: number |
generate_password | Generar contraseña segura | length?: number, includeUppercase?: boolean, includeLowercase?: boolean, includeNumbers?: boolean, includeSymbols?: boolean |
generate_token | Generar token seguro | length?: number, charset?: 'alphanumeric' | 'hex' | 'base64' | 'custom', customChars?: string |
| Procesamiento de Texto | ||
generate_ascii_art | Generar arte ASCII | text: string, font?: string (admite más de 295 fuentes figlet) |
analyze_distinct_words | Extraer palabras únicas de un texto | text: string, caseSensitive?: boolean |
search_emoji | Buscar emojis | query: string |
generate_lorem_ipsum | Generar Lorem Ipsum | type?: 'words' | 'sentences' | 'paragraphs', count?: number |
generate_numeronym | Generar numerónimos | text: string |
slugify_text | Convertir a slug de URL | text: string, separator?: string, lowercase?: boolean |
obfuscate_string | Ofuscar texto | text: string, method?: 'html-entities' | 'unicode' | 'base64' |
convert_to_camelcase | Convertir a camelCase | text: string |
capitalize_text | Capitalizar palabras | text: string |
compare_text | Comparar textos | text1: string, text2: string |
convert_text_to_kebabcase | Convertir a kebab-case | text: string |
convert_text_to_lowercase | Convertir a minúsculas | text: string |
convert_text_to_pascalcase | Convertir a PascalCase | text: string |
text_snakecase | Convertir a snake_case | text: string |
analyze_text_stats | Obtener estadísticas de texto | text: string |
convert_text_to_nato | Convertir al alfabeto OTAN | text: string |
show_unicode_names | Convertir texto a nombres de caracteres Unicode | text: string |
convert_text_to_uppercase | Convertir a mayúsculas | text: string |
| Herramientas de Utilidad | ||
format_css | Formatear y embellecer CSS | css: string, indent?: number |
show_device_info | Obtener información del sistema | None |
normalize_email | Normalizar direcciones de correo electrónico | email: string |
lookup_http_status | Referencia de estados HTTP | code?: number |
lookup_mime_types | Consultar tipos MIME | input: string, lookupType?: 'extension-to-mime' | 'mime-to-extension' |
lookup_port_numbers | Consultar asignaciones de números de puerto | port?: number, service?: string |
convert_rem_px | Convertir entre unidades REM y PX | value: number, conversion: 'rem-to-px' | 'px-to-rem', baseFontSize?: number |
🏗️ Arquitectura y Desarrollo
Construido con TypeScript, validación con Zod y MCP SDK para una operación robusta y segura de tipos.
🤖 Desarrollo Asistido por IA
Este proyecto fue desarrollado usando VS Code, Copilot Chat Agent, Playwright MCP y el Modelo Claude Sonnet 4, demostrando el poder del desarrollo de software asistido por IA:
- Generación Inteligente de Código: Claude Sonnet analizó los requisitos y generó implementaciones completas de herramientas
- Validación de Esquemas: Identificó y resolvió automáticamente problemas de validación de esquemas JSON en todas las herramientas
- Optimización de Docker: Creó flujos de trabajo Docker listos para producción y compilaciones de múltiples etapas
- Documentación: Generó un README completo con ejemplos y tablas de referencia de herramientas
- Pruebas: Implementó un manejo robusto de errores y validación en todo el código base
Contribuciones Clave de IA:
- 🔧 Implementación de Herramientas: Todas las herramientas diseñadas e implementadas con asistencia de IA
- 📦 Configuración de Docker: Contenerización completa con pipeline CI/CD de GitHub Actions
- 🔍 Limpieza de Esquemas: Eliminación sistemática de palabras clave Zod no compatibles de todas las definiciones de herramientas
- 📚 Documentación: README completo con ejemplos de uso y catálogos de herramientas
- 🚀 Listo para Producción: Publicación en Docker Hub, insignias y configuración de despliegue profesional
Esto demuestra cómo la IA puede acelerar el desarrollo mientras mantiene la calidad del código, una arquitectura adecuada y pruebas exhaustivas.
Añadir Nuevas Herramientas
- Crea un directorio de herramientas en la categoría apropiada bajo
src/tools/ - Define la herramienta con esquema de entrada usando Zod en su
index.ts - Exporta la función de registro para carga dinámica
- Reconstruye con
npm run build
Estructura del Proyecto
src/
├── index.ts # Main MCP server with dynamic tool loading
└── tools/ # Modular tool categories
├── ansible/ # 5 Ansible automation tools
├── color/ # 2 Color conversion tools
├── crypto/ # 9 Cryptographic & security tools
├── dataFormat/ # 12 Data format conversion tools
├── development/ # 6 Development utilities
├── docker/ # 5 Docker & containerization tools
├── encoding/ # 8 Encoding/decoding tools
├── forensic/ # 3 Digital forensics tools
├── idGenerators/ # 4 ID & code generation tools
├── math/ # 6 Mathematical operation tools
├── network/ # 23 Network utilities
├── physics/ # 3 Physics calculation tools
├── text/ # 19 Text manipulation tools
└── utility/ # 7 General utility tools
🤝 Contribuciones
Este proyecto ya no acepta contribuciones. Está archivado solo con fines de referencia. Las pautas a continuación se conservan por contexto histórico.
Formato de Mensajes de Commit
Este proyecto utiliza Conventional Commits para mensajes de commit claros y consistentes.
Gestión de Versiones:
- 🤖 Incremento automático de versión - Los hooks de Git incrementan automáticamente las versiones según los tipos de mensajes de commit
- 🤖 Publicación automática - CI/CD detecta cambios y publica automáticamente
- 🏷️ Etiquetas de Git - Se crean automáticamente según los mensajes de commit convencionales
Ejemplos:
git commit -m "feat: add new encryption tool" # → minor version bump
git commit -m "fix: resolve base64 decoding issue" # → patch version bump
git commit -m "docs: improve README examples" # → patch version bump
git commit -m "feat!: breaking API change" # → major version bump
# Version is automatically bumped and committed by git hooks
# No manual npm version commands needed!
git push
📖 Consulta COMMIT_TEMPLATE_SETUP.md para instrucciones de configuración.
Proceso de Desarrollo
- Haz un fork del repositorio
- Ejecuta
./setup-commit-template.sh(recomendado) - Crea una rama de características
- Realiza tus cambios siguiendo la estructura del proyecto
- Usa mensajes de commit convencionales
- Envía un Pull Request
El pipeline CI/CD automáticamente:
- ✅ Compilará y probará tus cambios
- 🏷️ Incrementará la versión según los mensajes de commit (al fusionar en main)
- 📦 Publicará en Docker Hub y NPM
- 🚀 Creará releases de GitHub
📄 Licencia
Licencia MIT - consulta LICENSE para más detalles.
🔗 Relacionado
Inspirado en IT Tools - herramientas en línea para desarrolladores.
Este proyecto incorpora herramientas seleccionadas del fork de @sharevb que extiende IT Tools con utilidades y mejoras adicionales.