PrismSec 🔷
Server MCP sicuro e modulare per strumenti di pentesting.
Raggruppa 7 strumenti di sicurezza standard del settore (nmap, nuclei, gobuster, subfinder, httpx, nikto, sqlmap) in 13 strumenti MCP registrati — pronti per l'uso con Claude, Cursor, Copilot e qualsiasi agente AI compatibile con MCP.
Caratteristiche
| Caratteristica | Descrizione |
|---|
| Zero shell=True | Tutte le chiamate ai sottoprocessi usano asyncio.create_subprocess_exec — nessuna iniezione di shell |
| Validazione dell'input | Target, URL, porta, severità — tutti validati prima dell'esecuzione |
| Rilevamento delle iniezioni | Blocca i metacaratteri di shell (;, $(), backtick, |) |
| Applicazione dei timeout | Ogni strumento ha un timeout configurabile — termina automaticamente i processi bloccati |
| Output strutturato | XML/JSON/testo analizzati → JSON pulito per gli agenti AI |
| Architettura modulare | Un file per strumento — facile da aggiungere, mantenere e testare |
| MCP SDK v2 | Basato sull'ultimo SDK del Model Context Protocol |
Installazione
Dalla sorgente
git clone https://github.com/azmisyahrul/prismsec.git
cd prismsec
pip install -e .
Prerequisiti
Installa gli strumenti di sicurezza di cui hai bisogno:
# 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
Strumenti (13 registrati)
Nmap — Scansione delle porte
| Strumento MCP | Descrizione |
|---|
nmap_port_scan | Scansione delle porte con modalità quick/full/service/stealth/aggressive |
nmap_service_detect | Rilevamento di servizi/versioni sulle porte aperte |
nmap_full_scan | Scansione di tutte le 65535 porte TCP |
Nuclei — Scansione delle vulnerabilità
| Strumento MCP | Descrizione |
|---|
nuclei_vuln_scan | Scansione completa delle vulnerabilità con tutti i template |
nuclei_severity_scan | Scansione filtrata per severità (critical, high, ecc.) |
nuclei_template_scan | Scansione mirata con un template specifico |
Gobuster — Brute force directory/DNS
| Strumento MCP | Descrizione |
|---|
gobuster_directory | Brute force di directory con estensioni configurabili |
gobuster_dns | Brute force di sottodomini DNS |
Altri strumenti
| Strumento MCP | Descrizione |
|---|
subfinder_enumerate | Enumerazione passiva dei sottodomini (crt.sh, VirusTotal, ecc.) |
| Strumento MCP | Descrizione |
|---|
check_tools | Verifica quali strumenti di sicurezza sono installati |
Utilizzo
Claude Desktop
Aggiungi 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
Aggiungi a .cursor/mcp.json o equivalente:
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"]
}
}
}
Trasporto 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"
}
}
}
Struttura del progetto
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
Configurazione
| Variabile d'ambiente | Default | Descrizione |
|---|
LOG_LEVEL | INFO | Livello di logging (DEBUG, INFO, WARNING, ERROR) |
Considerazioni sulla sicurezza
⚠️ Solo test autorizzati. Utilizza solo su sistemi di tua proprietà o per i quali hai ricevuto autorizzazione scritta.
- Gli output degli strumenti possono contenere informazioni sensibili (IP, porte aperte, vulnerabilità)
- Il server si collega a
127.0.0.1 per impostazione predefinita — non esporlo mai a reti non affidabili
- Ogni strumento ha timeout configurabili per prevenire l'esaurimento delle risorse
Licenza
MIT
Costruito con lo standard Model Context Protocol per un'ampia compatibilità con i client.