mcp-toolkit-server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-toolkit-server Check SSL certificate for example.com"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Toolkit Server — Ciberseguridad para Claude
Convertí a Claude en tu asistente de ciberseguridad. Este servidor MCP expone 17 herramientas de red, criptografía y análisis de seguridad directamente en tus conversaciones con Claude Desktop o Claude Code, sin salir del chat.
¿Qué es MCP y por qué importa?
MCP (Model Context Protocol) es el estándar abierto de Anthropic para conectar modelos de IA con herramientas y fuentes de datos externas. Funciona como un "conector universal": en lugar de integrar cada herramienta a mano, un servidor MCP las expone todas a la vez para cualquier cliente compatible.
Lo que esto significa en la práctica: podés preguntarle a Claude "¿el certificado SSL de mi servidor vence esta semana?" o "analizá este JWT y decime si tiene vulnerabilidades" y Claude ejecuta las herramientas, interpreta los resultados y te da una respuesta contextualizada, todo dentro de la conversación.
Related MCP server: Tengu
¿Por qué este servidor?
Este proyecto nació como parte de una ruta de aprendizaje en ciberseguridad. El objetivo es doble:
Práctica real: implementar herramientas que se usan en auditorías, reconocimiento web y análisis de tokens, entendiendo cada detalle por dentro.
Productividad con IA: potenciar el flujo de trabajo cotidiano en seguridad integrando estas capacidades directamente con Claude.
Las herramientas no son wrappers de otras CLIs — están implementadas en Python puro usando la stdlib más dnspython, para entender exactamente qué pasa en cada operación.
Herramientas incluidas
Sistema y Archivos
Herramienta | Descripción |
| SO, versión, arquitectura, Python, hora UTC |
| Espacio total / usado / libre en GB |
| SHA-256 / SHA-1 / MD5 de un archivo — verificación de integridad |
| Lista archivos y carpetas con tipo |
Red y Reconocimiento Web
Herramienta | Descripción |
| Validez, días hasta expiración, emisor, protocolo, cifrado, SANs |
| Auditoría de HSTS, CSP, X-Frame-Options, MIME, Referrer-Policy. Score /6 |
| HTTP client completo — probar APIs, analizar respuestas |
| Registros A, AAAA, MX, NS, TXT, CNAME |
| Registrante, fechas de creación/expiración, nameservers |
Ciberseguridad
Herramienta | Descripción |
| ~35 puertos TCP en paralelo. Detecta servicios críticos expuestos (Docker, Redis, MongoDB, SMB...) con consejos de hardening |
| Análisis de entropía en bits, diversidad de charset, patrones débiles comunes |
Criptografía y Tokens
Herramienta | Descripción |
| Contraseña segura con |
| API keys, secrets, session IDs en hex / base64 / urlsafe |
| Hash de strings — sha256, sha512, md5, blake2b, sha3_256 |
| Decodifica header + payload, detecta: expiración, |
| Codificación base64 standard o URL-safe |
| Decodificación base64 con autodetección de padding |
Casos de uso reales
"¿El certificado SSL de api.miempresa.com está por vencer?"
→ verificar_certificado_ssl("api.miempresa.com")
Estado: ADVERTENCIA — expira en 12 días
Emisor: Let's Encrypt
SANs: api.miempresa.com, www.api.miempresa.com"Auditá los headers de seguridad de nuestro panel de admin"
→ verificar_headers_seguridad("https://admin.miempresa.com")
Score: 2/6 — Bajo
[OK] Strict-Transport-Security: max-age=31536000
[OK] X-Content-Type-Options: nosniff
[--] Content-Security-Policy
[--] X-Frame-Options ← ¡expuesto a clickjacking!
Fuga: Server: nginx/1.18.0 ← versión expuesta"Decodificá este JWT del login y decime si tiene algo raro"
→ analizar_jwt("eyJhbGci...")
Algoritmo: HS256
⚠ TOKEN EXPIRADO — venció el 2024-03-15 10:00 UTC
Claim 'role': admin
Claim 'sub': user_1337"Chequeá qué puertos tiene abiertos mi VPS en producción"
→ escanear_puertos("203.0.113.42")
22/tcp SSH
80/tcp HTTP
6379/tcp Redis ← CRÍTICO: Redis sin autenticación — activar requirepass
27017/tcp MongoDB ← CRÍTICO: expone toda la base de datos"Generame un API key para el nuevo microservicio"
→ generar_token_aleatorio(32, "hex")
a3f8c2e1d9b7045f6a2c8e4d1f0b3a9c7e2d5f8b1a4c7e0d3f6b9a2c5e8d1f4
Entropía: 256 bitsInstalación
git clone https://github.com/GonzaBot/mcp-toolkit-server.git
cd mcp-toolkit-server
pip install -e .Dependencias: mcp>=1.0.0, dnspython>=2.0.0. El resto es stdlib de Python 3.10+.
Conectar con Claude Desktop
Editá el archivo de configuración de Claude Desktop:
SO | Ruta |
macOS |
|
Linux |
|
Windows |
|
{
"mcpServers": {
"mcp-toolkit-server": {
"command": "mcp-toolkit-server"
}
}
}Reiniciá Claude Desktop. Las 17 herramientas aparecen automáticamente disponibles en la conversación.
Conectar con Claude Code
claude mcp add mcp-toolkit-server mcp-toolkit-serverO en modo proyecto, editá .claude/mcp.json:
{
"mcpServers": {
"mcp-toolkit-server": {
"command": "mcp-toolkit-server"
}
}
}Estructura del proyecto
mcp-toolkit-server/
├── src/mcp_toolkit_server/
│ ├── server.py # Punto de entrada — registra las 17 tools con FastMCP
│ └── tools/
│ ├── system.py # Info del SO y espacio en disco
│ ├── files.py # Hash de archivos y listado de directorios
│ ├── security.py # Escaneo de puertos y análisis de contraseñas
│ ├── network.py # SSL, headers HTTP, requests, DNS, WHOIS
│ └── crypto.py # Passwords, tokens, hashing, JWT, Base64
├── tests/
│ └── test_tools.py # 53 tests — 47 offline + 6 con internet
├── examples/
│ └── claude_desktop_config.json
└── pyproject.tomlTests
# Instalar dependencias de desarrollo
pip install -e ".[dev]"
# Tests offline (sin internet)
pytest -k "not network"
# Tests completos (incluye verificaciones contra google.com, httpbin.org)
pytest -m network
# Todo junto
pytest -v53 tests cubriendo: happy path, casos de error, valores criptográficos conocidos (hash SHA-256 de string vacío, MD5 de "hello"), JWTs expirados, algoritmo none, Base64 con y sin padding, tokens hex/base64/urlsafe.
Cómo agregar tu propia herramienta
Agregá la función al módulo correspondiente en
tools/(o creá uno nuevo).Registrala en
server.pycon@mcp.tool().Escribí un docstring claro — Claude lo usa para saber cuándo y cómo invocarla.
# tools/network.py
def mi_herramienta_nueva(parametro: str) -> str:
"""Descripción clara de qué hace y cuándo usarla.
Args:
parametro: qué representa
"""
return resultado
# server.py
@mcp.tool()
def mi_herramienta_nueva(parametro: str) -> str:
"""Descripción clara de qué hace y cuándo usarla.
Args:
parametro: qué representa
"""
return network.mi_herramienta_nueva(parametro)Uso ético
Las herramientas de reconocimiento de red (escanear_puertos, whois_dominio, consultar_dns, verificar_certificado_ssl) deben usarse únicamente sobre:
Sistemas propios
Sistemas sobre los que tenés autorización explícita del propietario
Escanear sistemas de terceros sin permiso puede ser ilegal según la jurisdicción.
Roadmap
Transporte HTTP/SSE para acceso remoto (correr el servidor en un VPS)
verificar_ip_reputacion— consultar AbuseIPDB / VirusTotalauditar_dependencias— integrar pip-audit para detectar CVEs en proyectos Pythondetectar_tecnologias— fingerprinting de stack tecnológico por headers y respuestasGitHub Actions con tests en CI/CD
Tests de integración con cliente MCP simulado
Licencia
MIT © Gonzalo D. Rodríguez de Mello
Available Tools
17 toolsanalizar_jwtA
Decodifica y analiza un JWT (JSON Web Token) sin verificar la firma.
Muestra header, payload y todos los claims. Detecta: tokens expirados, algoritmo 'none' (vulnerabilidad crítica), algoritmos simétricos vs asimétricos, claims de seguridad (sub, iss, aud, roles, scope, permissions).
Args: token: JWT en formato header.payload.signature
Inputs: token (required). Returns: result
calcular_hashA
Calcula el hash (sha256, sha1, md5) de un archivo para verificar su integridad.
Args: ruta_archivo: ruta al archivo algoritmo: algoritmo de hash a usar (sha256, sha1, md5)
Inputs: ruta_archivo (required), algoritmo. Returns: result
calcular_hash_textoA
Calcula el hash de un texto arbitrario.
Útil para verificar integridad de datos, comparar valores o crear identificadores.
Args: texto: el texto a hashear algoritmo: sha256, sha512, sha1, md5, blake2b, sha3_256
Inputs: texto (required), algoritmo. Returns: result
codificar_base64A
Codifica un texto en Base64 (standard o URL-safe).
Args: texto: texto a codificar url_safe: usar variante URL-safe (reemplaza +/ por -_, sin padding)
Inputs: texto (required), url_safe. Returns: result
consultar_dnsA
Realiza consultas DNS para un dominio.
Soporta registros: A (IPv4), AAAA (IPv6), MX (mail), NS (nameservers), TXT (SPF, DKIM, verificación), CNAME (alias).
Args: dominio: dominio a consultar (ej: "google.com") tipo: tipo de registro DNS — A, AAAA, MX, NS, TXT, CNAME
Inputs: dominio (required), tipo. Returns: result
decodificar_base64A
Decodifica texto en Base64 (soporta standard, URL-safe, con o sin padding).
Args: texto: texto en Base64 a decodificar
Inputs: texto (required). Returns: result
escanear_puertosA
Escanea ~35 puertos TCP comunes de un host. Solo sobre sistemas propios o autorizados.
Detecta servicios web, SSH, bases de datos, Docker, Kubernetes, SMB, Redis, MongoDB, Elasticsearch y otros. Marca servicios de alto riesgo con consejos.
Args: host: dirección IP o dominio a escanear (ej: "192.168.1.1", "miservidor.com") timeout: tiempo de espera por puerto en segundos (default: 0.5)
Inputs: host (required), timeout. Returns: result
espacio_discoA
Devuelve el espacio total, usado y libre (en GB) de una ruta del sistema.
Args: ruta: ruta del sistema de archivos a inspeccionar
Inputs: ruta. Returns: result
generar_password_seguroA
Genera una contraseña criptográficamente segura usando el módulo secrets de Python.
Args: longitud: número de caracteres (entre 8 y 128, default: 16) mayusculas: incluir letras mayúsculas numeros: incluir dígitos 0-9 simbolos: incluir símbolos especiales (!@#$%...)
Inputs: numeros, longitud, simbolos, mayusculas. Returns: result
generar_token_aleatorioA
Genera un token criptográficamente seguro para API keys, secrets, session IDs, etc.
Args: longitud: longitud en bytes de entropía (16-256, default: 32) formato: 'hex' (64 chars para 32 bytes), 'base64', o 'urlsafe'
Inputs: formato, longitud. Returns: result
hacer_request_httpA
Realiza una petición HTTP completa y devuelve status, headers y body.
Útil para probar APIs REST, analizar respuestas de endpoints, o debuggear servicios web directamente desde la conversación.
Args: url: URL de destino metodo: método HTTP — GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS headers_json: headers adicionales como JSON (ej: '{"Authorization":"Bearer tok"}') body: cuerpo de la petición (JSON string para POST/PUT/PATCH) timeout: tiempo de espera en segundos (1-60)
Inputs: url (required), body, metodo, timeout, +1 more. Returns: result
info_sistemaA
Devuelve información del sistema operativo: SO, versión, arquitectura y Python.
Inputs: no named parameters. Returns: result
listar_directorioC
Lista los archivos y subdirectorios de una carpeta.
Args: ruta: ruta del directorio a listar
Inputs: ruta. Returns: result
verificar_certificado_sslA
Inspecciona el certificado SSL/TLS de un dominio.
Devuelve: estado de validez, días hasta expiración, protocolo, cifrado, emisor (CA), organización, fechas y Subject Alternative Names (SANs). Detecta certificados expirados o próximos a vencer.
Args: dominio: hostname a inspeccionar (ej: "google.com", "miservidor.com") puerto: puerto HTTPS (por defecto 443)
Inputs: dominio (required), puerto. Returns: result
verificar_fortaleza_passwordA
Evalúa la fortaleza de una contraseña con análisis de entropía y patrones débiles.
No almacena ni transmite la contraseña. Evalúa: longitud, diversidad de caracteres, patrones débiles comunes, repetición y entropía estimada en bits.
Args: password: la contraseña a evaluar
Inputs: password (required). Returns: result
verificar_headers_seguridadA
Audita los HTTP security headers de una URL y puntúa su nivel de seguridad.
Verifica: HSTS, Content-Security-Policy, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy. Detecta fugas de información (Server, X-Powered-By).
Args: url: URL a auditar (ej: "https://miapp.com" o directamente "miapp.com")
Inputs: url (required). Returns: result
whois_dominioA
Consulta información WHOIS de un dominio.
Devuelve: registrante, registrador, fechas de creación/expiración/actualización, nameservers y estado del dominio.
Args: dominio: dominio a consultar (ej: "google.com", "openai.com")
Inputs: dominio (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 17 tools
Cada herramienta tiene un propósito claramente diferente: análisis de JWT, hashing, codificación, consultas DNS, escaneo de puertos, generación de contraseñas, etc. No hay superposición significativa.
Todos los nombres siguen el patrón consistente verbo_sustantivo en español, usando snake_case. La convención es uniforme en las 17 herramientas.
17 herramientas es un número adecuado para un conjunto de utilidades de seguridad y sistema. Cubre un rango amplio sin ser excesivo.
El conjunto cubre bien las funcionalidades principales: hashing, codificación, consultas de red, análisis de seguridad. Faltan herramientas para cifrado simétrico o generación de claves, pero lo esencial está presente.
Related MCP Connectors
34 security tools for AI agents: phishing links, exposure maps, DNS, SSL, PQC, history, pivots.
ctlogs.dev searches the public Certificate Transparency logs, where every publicly trusted TLS certificate is recorded. Connected to it, an assistant can answer questions such as "which subdomains does example.com have", "who issued the certificates for this name" or "which domains does this company hold certificates for".
Agent personas for Claude. 16 tools, 13 personas, 3 workflows. Zero extra API cost. Free.
Claude-powered AI tools: research, write, code, analyze, translate, debate, pitch, score, and more.
Related MCP Servers
- AlicenseAqualityAmaintenanceCyberSecurity MCP Server extends Claude with real-time cybersecurity reconnaissance capabilities that Claude doesn't have by default. Instead of manually running 5 different tools across different terminals, just tell Claude "analyze google.com" and get a complete security breakdown instantly. Tools included: * WHOIS Lookup — registrar, ownership, creation/expiry dates * DNS Enumeration — A,829MIT
- AlicenseAqualityCmaintenanceTurns Claude into a penetration testing copilot with 80 security tools, safety controls, and automatic reporting.8065MIT
- AlicenseAqualityCmaintenanceAdds security capabilities like port scanning, TLS inspection, DNS enumeration, process monitoring, secrets scanning, HTTP header auditing, and CVE checking to Claude Code and Cursor.2379 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables Claude or any MCP-compatible client to execute cybersecurity workflows like incident response, cloud audits, and pentests by calling tools with 323 prompts across 8 categories.1-