Serveur MCP sécurisé et modulaire encapsulant nmap, nuclei, gobuster, subfinder, httpx, nikto, sqlmap pour le pentesting propulsé par l'IA
Serveur MCP sécurisé et modulaire pour outils de pentest.
Enveloppe 7 outils de sécurité standard de l'industrie (nmap, nuclei, gobuster, subfinder, httpx, nikto, sqlmap) dans 13 outils MCP enregistrés — prêt à l'emploi avec Claude, Cursor, Copilot, et tout agent IA compatible MCP.
| Fonctionnalité | Description |
|---|
| Zero shell=True | Tous les appels de sous-processus utilisent asyncio.create_subprocess_exec — aucune injection shell |
| Validation des entrées | Cible, URL, port, sévérité — tout est validé avant exécution |
| Détection d'injection | Bloque les métacaractères shell (;, $(), backticks, |) |
| Application des délais d'attente | Chaque outil possède un délai d'attente configurable — tue automatiquement les processus bloqués |
| Sortie structurée | XML/JSON/texte analysés → JSON propre pour les agents IA |
| Architecture modulaire | Un fichier par outil — facile à ajouter, maintenir et tester |
| MCP SDK v2 | Construit sur le dernier SDK du Model Context Protocol |
git clone https://github.com/azmisyahrul/prismsec.git
cd prismsec
pip install -e .
Installez les outils de sécurité dont vous avez besoin :
# Ubuntu/Debian
apt install nmap nikto sqlmap
# Outils basés sur Go
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
| Outil MCP | Description |
|---|---|
nmap_port_scan | Scan de ports avec modes rapide/complet/service/furtif/agressif |
nmap_service_detect | Détection de services/versions sur les ports ouverts |
nmap_full_scan | Scan des 65535 ports TCP |
| Outil MCP | Description |
|---|---|
nuclei_vuln_scan | Scan complet de vulnérabilités avec tous les templates |
nuclei_severity_scan | Scan filtré par sévérité (critique, élevée, etc.) |
nuclei_template_scan | Scan ciblé avec un template spécifique |
| Outil MCP | Description |
|---|---|
gobuster_directory | Brute force de répertoires avec extensions configurables |
gobuster_dns | Brute force de sous-domaines DNS |
| Outil MCP | Description |
|---|---|
subfinder_enumerate | Énumération passive de sous-domaines (crt.sh, VirusTotal, etc.) |
httpx_probe | Sondage web — détection de disponibilité, titres, empreinte technologique |
nikto_web_scan | Scan de vulnérabilités de serveurs web |
sqlmap_injection_test | Détection et test d'injections SQL |
| Outil MCP | Description |
|---|---|
check_tools | Vérifie quels outils de sécurité sont installés |
Ajoutez à claude_desktop_config.json :
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"],
"env": {}
}
}
}
claude mcp add prismsec python3 /path/to/prismsec/server.py
Ajoutez à .cursor/mcp.json ou équivalent :
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"]
}
}
}
# Côté serveur
python3 server.py --transport sse --host 0.0.0.0 --port 8000
# Configuration client
{
"mcpServers": {
"prismsec": {
"url": "http://localhost:8000/sse"
}
}
}
prismsec/
├── server.py # Point d'entrée du serveur MCP (13 outils)
├── pyproject.toml # Configuration du projet + dépendances
├── tools/ # Wrappers d'outils (un fichier par outil)
│ ├── base.py # ToolWrapper ABC + exécuteur asynchrone
│ ├── nmap.py # Nmap — parsing XML, modes de scan
│ ├── nuclei.py # Nuclei — parsing de sortie JSON
│ ├── gobuster.py # Gobuster — parsing de sortie texte
│ ├── subfinder.py # Subfinder — énumération de sous-domaines
│ ├── httpx.py # Httpx — sondage web
│ ├── nikto.py # Nikto — scan de vulnérabilités web
│ └── sqlmap.py # Sqlmap — test d'injections SQL
├── parsers/ # Analyseurs de sortie
│ ├── xml_parser.py # XML nmap → JSON structuré
│ ├── json_parser.py # Parsing JSON/JSONL
│ └── text_parser.py # Texte Gobuster, nikto, sqlmap
└── utils/ # Utilitaires partagés
├── runner.py # AsyncRunner avec délai d'attente
├── validator.py # Validation des entrées + détection d'injection
├── rate_limiter.py # Limiteur de débit à seau à jetons
└── logging.py # Journalisation structurée
| Variable d'environnement | Défaut | Description |
|---|---|---|
LOG_LEVEL | INFO | Niveau de journalisation (DEBUG, INFO, WARNING, ERROR) |
⚠️ Tests autorisés uniquement. Utilisez-le contre des systèmes que vous possédez ou pour lesquels vous avez une autorisation écrite de tester.
127.0.0.1 par défaut — ne l'exposez jamais à des réseaux non fiablesMIT
Construit avec le standard Model Context Protocol pour une large compatibilité avec les clients.