PrismSec 🔷
Servidor MCP seguro y modular para herramientas de pentesting.
Integra 7 herramientas de seguridad estándar de la industria (nmap, nuclei, gobuster, subfinder, httpx, nikto, sqlmap) como 13 herramientas MCP registradas, listas para usar con Claude, Cursor, Copilot y cualquier agente de IA compatible con MCP.
Características
| Característica | Descripción |
|---|
| Zero shell=True | Todas las llamadas a subprocesos usan asyncio.create_subprocess_exec — sin inyección de shell |
| Validación de entrada | Objetivo, URL, puerto, severidad: todo validado antes de la ejecución |
| Detección de inyección | Bloquea metacaracteres de shell (;, $(), comillas invertidas, |) |
| Aplicación de tiempos de espera | Cada herramienta tiene un tiempo de espera configurable: mata automáticamente los procesos colgados |
| Salida estructurada | XML/JSON/texto analizado → JSON limpio para agentes de IA |
| Arquitectura modular | Un archivo por herramienta: fácil de añadir, mantener y probar |
| MCP SDK v2 | Construido sobre el último SDK del Model Context Protocol |
Instalación
Desde el código fuente
git clone https://github.com/azmisyahrul/prismsec.git
cd prismsec
pip install -e .
Requisitos previos
Instala las herramientas de seguridad que necesites:
# Ubuntu/Debian
apt install nmap nikto sqlmap
# Go-based tools
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
go install github.com/OJ/gobuster/v3@latest
Herramientas (13 registradas)
Nmap — Escaneo de puertos
| Herramienta MCP | Descripción |
|---|
nmap_port_scan | Escaneo de puertos con modos rápido/completo/servicio/sigiloso/agresivo |
nmap_service_detect | Detección de servicio/versión en puertos abiertos |
nmap_full_scan | Escanea los 65535 puertos TCP |
Nuclei — Escaneo de vulnerabilidades
| Herramienta MCP | Descripción |
|---|
nuclei_vuln_scan | Escaneo completo de vulnerabilidades con todas las plantillas |
nuclei_severity_scan | Escaneo filtrado por severidad (crítica, alta, etc.) |
nuclei_template_scan | Escaneo dirigido con una plantilla específica |
Gobuster — Fuerza bruta de directorios/DNS
| Herramienta MCP | Descripción |
|---|
gobuster_directory | Fuerza bruta de directorios con extensiones configurables |
gobuster_dns | Fuerza bruta de subdominios DNS |
Otras herramientas
| Herramienta MCP | Descripción |
|---|
subfinder_enumerate | Enumeración pasiva de subdominios (crt.sh, VirusTotal, etc.) |
| Herramienta MCP | Descripción |
|---|
check_tools | Comprueba qué herramientas de seguridad están instaladas |
Uso
Claude Desktop
Añade a claude_desktop_config.json:
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"],
"env": {}
}
}
}
Claude Code
claude mcp add prismsec python3 /path/to/prismsec/server.py
Cursor / Windsurf / Cline
Añade a .cursor/mcp.json o equivalente:
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"]
}
}
}
Transporte SSE (remoto)
# Server side
python3 server.py --transport sse --host 0.0.0.0 --port 8000
# Client config
{
"mcpServers": {
"prismsec": {
"url": "http://localhost:8000/sse"
}
}
}
Estructura del proyecto
prismsec/
├── server.py # MCP server entry point (13 tools)
├── pyproject.toml # Project config + dependencies
├── tools/ # Tool wrappers (one file per tool)
│ ├── base.py # ToolWrapper ABC + async runner
│ ├── nmap.py # Nmap — XML parsing, scan modes
│ ├── nuclei.py # Nuclei — JSON output parsing
│ ├── gobuster.py # Gobuster — text output parsing
│ ├── subfinder.py # Subfinder — subdomain enum
│ ├── httpx.py # Httpx — web probing
│ ├── nikto.py # Nikto — web vuln scan
│ └── sqlmap.py # Sqlmap — SQL injection testing
├── parsers/ # Output parsers
│ ├── xml_parser.py # nmap XML → structured JSON
│ ├── json_parser.py # JSON/JSONL parsing
│ └── text_parser.py # Gobuster, nikto, sqlmap text
└── utils/ # Shared utilities
├── runner.py # AsyncRunner with timeout
├── validator.py # Input validation + injection detection
├── rate_limiter.py # Token bucket rate limiter
└── logging.py # Structured logging
Configuración
| Variable de entorno | Valor por defecto | Descripción |
|---|
LOG_LEVEL | INFO | Nivel de registro (DEBUG, INFO, WARNING, ERROR) |
Consideraciones de seguridad
⚠️ Solo pruebas autorizadas. Úsalo contra sistemas que te pertenezcan o para los que tengas permiso por escrito.
- Las salidas de las herramientas pueden contener información sensible (IPs, puertos abiertos, vulnerabilidades)
- El servidor se vincula a
127.0.0.1 por defecto: nunca lo expongas a redes no confiables
- Cada herramienta tiene tiempos de espera configurables para evitar el agotamiento de recursos
Licencia
MIT
Construido con el estándar Model Context Protocol para una amplia compatibilidad con clientes.