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.

CI/CD Pipeline Docker Pulls Docker Image Size NPM Version NPM Downloads GitHub Release License GitHub Issues GitHub Last Commit Docker Platform GitHub Stars

📝 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

Star History Chart

📦 Instalación y Configuración

Uso con VS Code

Instalación rápida:

Install in VS Code Install in VS Code Insiders

Instalación:

  1. Abre VS Code
  2. Pulsa Ctrl+Shift+P (o Cmd+Shift+P en Mac)
  3. Escribe "MCP" y selecciona "MCP: Add Server"
  4. 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ón
  • logging_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 ping para 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.progressToken en las solicitudes para habilitar notificaciones de progreso
  • Notificaciones: El servidor envía notifications/progress con el estado actual

Cancelación de Solicitudes

  • Cancelación Elegante: Envía notifications/cancelled para 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

Password Hash Example

Ejemplo de Generación de Texto con Arte ASCII

ASCII Art Text Example

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

HerramientaDescripciónParámetros
Herramientas de Ansible
parse_ansible_inventoryAnalizar inventario de Ansibleinventory: string
generate_ansible_inventoryGenerar inventario de Ansiblehosts: string[], groups?: Record<string, string[]>, variables?: Record<string, any>
validate_ansible_playbookValidar YAML de playbook de Ansibleplaybook: string
show_ansible_referenceReferencia de sintaxis y módulos de Ansiblequery?: string
decrypt_ansible_vaultDescifrar datos de Ansible Vaultdata: string, password: string
encrypt_ansible_vaultCifrar datos con Ansible Vaultdata: string, password: string
Herramientas de Color
convert_hex_to_rgbConvertir HEX a RGBhex: string
convert_rgb_to_hexConvertir RGB a HEXr: number, g: number, b: number
Formato de Datos
convert_html_to_markdownConvertir HTML a Markdownhtml: string
compare_jsonComparar objetos JSONjson1: string, json2: string
format_jsonFormatear y validar JSONjson: string, indent?: number
minify_jsonMinificar JSONjson: string
convert_json_to_csvConvertir JSON a CSVjson: string, delimiter?: string
convert_json_to_tomlConvertir JSON a TOMLjson: string
convert_markdown_to_htmlConvertir Markdown a HTMLmarkdown: string
format_phoneAnalizar y formatear números de teléfonophoneNumber: string, countryCode?: string
format_sqlFormatear SQLsql: string, dialect?: 'sql' | 'mysql' | 'postgresql' | 'sqlite' | 'mariadb' | 'db2' | 'plsql' | 'n1ql' | 'redshift' | 'spark' | 'tsql' | 'trino' | 'bigquery' (opcional, predeterminado: 'sql')
convert_toml_to_jsonConvertir TOML a JSONtoml: string
format_xmlFormatear XMLxml: string, indent?: number
format_yamlFormatear YAMLyaml: string
Herramientas de Desarrollo
generate_crontabGenerar expresiones cronminute?: string, hour?: string, dayOfMonth?: string, month?: string, dayOfWeek?: string
format_htmlFormatear y embellecer HTMLhtml: string, indent?: number
format_javascriptFormatear y embellecer JavaScriptjavascript: string, indent?: number
convert_listConvertir formatos de listalist: string, inputFormat: 'comma' | 'semicolon' | 'newline' | 'space' | 'pipe', outputFormat: 'comma' | 'semicolon' | 'newline' | 'space' | 'pipe' | 'json' | 'quoted', trim?: boolean
generate_markdown_tocGenerar tabla de contenidos para Markdownmarkdown: string, maxDepth?: number
test_regexProbar expresiones regularespattern: string, text: string, flags?: string
Herramientas de Docker
convert_docker_compose_to_runConvertir Compose a comando Docker runcompose: string, service?: string
validate_docker_composeValidar YAML de Docker Composecompose: string
show_docker_referenceReferencia de comandos y sintaxis de Dockerquery?: string
convert_docker_run_to_composeConvertir Docker run a Composecommand: string
generate_traefik_composeGenerar Traefik Docker Composedomain: string, service: string, port?: number, network?: string
Codificación y Decodificación
decode_base64Decodificar texto Base64text: string
encode_base64Codificar texto a Base64text: string
decode_htmlDecodificar entidades HTMLtext: string
encode_htmlCodificar entidades HTMLtext: string
encode_html_entitiesCodificación/decodificación extendida de entidades HTMLtext: string, operation: 'encode' | 'decode'
convert_text_to_binaryConvertir texto a binario y viceversainput: string, operation: 'encode' | 'decode'
convert_text_to_unicodeConvertir texto a Unicode y viceversainput: string, operation: 'encode' | 'decode'
decode_urlDecodificar texto URLtext: string
encode_urlCodificar texto URLtext: string
Herramientas Forenses
identify_file_typeIdentificar tipo de archivo por contenidodata: string, filename?: string
decode_safelinkDecodificar Microsoft SafeLinksurl: string
fang_urlFang y defang URLs para análisistext: string, operation: 'fang' | 'defang'
Generadores de ID y Códigos
generate_qr_codeGenerar códigos QR para cualquier contenidotext: string, size?: number - Admite URLs, WiFi (WIFI:T:WPA;S:network;P:password;;), información de contacto, etc.
generate_svg_placeholderGenerar marcador de posición SVGwidth?: number, height?: number, text?: string, backgroundColor?: string, textColor?: string
generate_ulidGenerar ULIDNone
generate_uuidGenerar UUID v4None
Matemáticas y Cálculos
evaluate_mathEvaluar expresionesexpression: string
convert_number_baseConvertir bases numéricasnumber: string, fromBase: number, toBase: number
calculate_percentageCalcular porcentajesoperation: 'percentage-of' | 'what-percentage' | 'percentage-change', value1: number, value2: number
convert_roman_numeralsConvertir números romanosinput: string
convert_temperatureConvertir temperaturastemperature: number, from: 'celsius' | 'fahrenheit' | 'kelvin', to: 'celsius' | 'fahrenheit' | 'kelvin'
convert_unix_timestampConvertir marcas de tiempoinput: string
Red y Sistema
catMostrar contenido de archivofile: string
curlCliente HTTP (GET, POST, etc.)url: string, method?: string, headers?: Record<string, string>, body?: string
digConsulta DNS (tipo personalizado)target: string, type?: string
grepBuscar patrón en archivofile: string, pattern: string
headMostrar primeras N líneas de archivofile: string, lines?: number
validate_ibanValidar IBANiban: string
calculate_ip_subnetCalcular subred IPv4ip: string, cidr: number
calculate_ipv4_subnetCálculo de subred IPv4 mejoradocidr: string
generate_ipv6_ulaGenerar IPv6 ULAglobalId?: string
generate_mac_addressGenerar dirección MACprefix?: string, separator?: ':' | '-'
nslookupConsulta DNS (A/AAAA/CNAME)target: string
pingHacer ping a un hosttarget: string, count?: number
psListar procesos en ejecuciónNone
generate_random_portGenerar puertos aleatorioscount?: number, min?: number, max?: number, exclude?: number[]
scpCopiar archivos hacia/desde host remoto (SFTP)target: string, user: string, direction: 'upload'|'download', localPath: string, remotePath: string, privateKey?: string
sshEjecución de comandos SSHtarget: string, user: string, command: string
tailMostrar últimas N líneas de archivofile: string, lines?: number
telnetProbar conectividad TCPtarget: string, port: number
topMostrar procesos principales (por CPU)None
parse_urlAnalizar componentes de URLurl: string
Física
convert_angleConvertir unidades de ángulovalue: number, from: 'degrees' | 'radians' | 'gradians', to: 'degrees' | 'radians' | 'gradians'
convert_energyConvertir unidades de energíavalue: number, from: 'joules' | 'calories' | 'kwh' | 'btu', to: 'joules' | 'calories' | 'kwh' | 'btu'
convert_powerConvertir unidades de potenciavalue: number, from: 'watts' | 'kilowatts' | 'horsepower' | 'btu_per_hour', to: 'watts' | 'kilowatts' | 'horsepower' | 'btu_per_hour'
Seguridad y Criptografía
generate_basic_authGenerar cabecera de autenticación Basicusername: string, password: string
hash_bcryptGenerar/verificar hash bcryptpassword: string, rounds?: number, hash?: string
generate_bip39Generar mnemónico BIP39wordCount?: '12' | '15' | '18' | '21' | '24'
hash_md5Generar hash MD5text: string
hash_sha1Generar hash SHA1text: string
hash_sha256Generar hash SHA256text: string
hash_sha512Generar hash SHA512text: string
generate_hmacGenerar HMACmessage: string, key: string, algorithm?: 'sha1' | 'sha256' | 'sha512'
decode_jwtDecodificar token JWTtoken: string
generate_otpGenerar códigos TOTPsecret: string, digits?: number, period?: number
generate_passwordGenerar contraseña seguralength?: number, includeUppercase?: boolean, includeLowercase?: boolean, includeNumbers?: boolean, includeSymbols?: boolean
generate_tokenGenerar token segurolength?: number, charset?: 'alphanumeric' | 'hex' | 'base64' | 'custom', customChars?: string
Procesamiento de Texto
generate_ascii_artGenerar arte ASCIItext: string, font?: string (admite más de 295 fuentes figlet)
analyze_distinct_wordsExtraer palabras únicas de un textotext: string, caseSensitive?: boolean
search_emojiBuscar emojisquery: string
generate_lorem_ipsumGenerar Lorem Ipsumtype?: 'words' | 'sentences' | 'paragraphs', count?: number
generate_numeronymGenerar numerónimostext: string
slugify_textConvertir a slug de URLtext: string, separator?: string, lowercase?: boolean
obfuscate_stringOfuscar textotext: string, method?: 'html-entities' | 'unicode' | 'base64'
convert_to_camelcaseConvertir a camelCasetext: string
capitalize_textCapitalizar palabrastext: string
compare_textComparar textostext1: string, text2: string
convert_text_to_kebabcaseConvertir a kebab-casetext: string
convert_text_to_lowercaseConvertir a minúsculastext: string
convert_text_to_pascalcaseConvertir a PascalCasetext: string
text_snakecaseConvertir a snake_casetext: string
analyze_text_statsObtener estadísticas de textotext: string
convert_text_to_natoConvertir al alfabeto OTANtext: string
show_unicode_namesConvertir texto a nombres de caracteres Unicodetext: string
convert_text_to_uppercaseConvertir a mayúsculastext: string
Herramientas de Utilidad
format_cssFormatear y embellecer CSScss: string, indent?: number
show_device_infoObtener información del sistemaNone
normalize_emailNormalizar direcciones de correo electrónicoemail: string
lookup_http_statusReferencia de estados HTTPcode?: number
lookup_mime_typesConsultar tipos MIMEinput: string, lookupType?: 'extension-to-mime' | 'mime-to-extension'
lookup_port_numbersConsultar asignaciones de números de puertoport?: number, service?: string
convert_rem_pxConvertir entre unidades REM y PXvalue: 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

  1. Crea un directorio de herramientas en la categoría apropiada bajo src/tools/
  2. Define la herramienta con esquema de entrada usando Zod en su index.ts
  3. Exporta la función de registro para carga dinámica
  4. 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

  1. Haz un fork del repositorio
  2. Ejecuta ./setup-commit-template.sh (recomendado)
  3. Crea una rama de características
  4. Realiza tus cambios siguiendo la estructura del proyecto
  5. Usa mensajes de commit convencionales
  6. 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.