PrismSec 🔷
Sicherer, modularer MCP-Server für Pentesting-Tools.
Kapselt 7 branchenübliche Sicherheitstools (nmap, nuclei, gobuster, subfinder, httpx, nikto, sqlmap) in 13 registrierte MCP-Tools — einsatzbereit mit Claude, Cursor, Copilot und jedem MCP-kompatiblen KI-Agenten.
Features
| Feature | Beschreibung |
|---|
| Kein shell=True | Alle Subprozessaufrufe verwenden asyncio.create_subprocess_exec — keine Shell-Injection |
| Eingabevalidierung | Ziel, URL, Port, Schweregrad — alles wird vor der Ausführung validiert |
| Injection-Erkennung | Blockiert Shell-Metazeichen (;, $(), Backticks, |) |
| Timeout-Erzwingung | Jedes Tool hat konfigurierbares Timeout — beendet hängende Prozesse automatisch |
| Strukturierte Ausgabe | Geparstes XML/JSON/Text → sauberes JSON für KI-Agenten |
| Modulare Architektur | Eine Datei pro Tool — einfach zu erweitern, zu warten und zu testen |
| MCP SDK v2 | Basierend auf dem neuesten Model Context Protocol SDK |
Installation
Aus dem Quellcode
git clone https://github.com/azmisyahrul/prismsec.git
cd prismsec
pip install -e .
Voraussetzungen
Installiere die benötigten Sicherheitstools:
# 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
Nmap — Port-Scanning
| MCP-Tool | Beschreibung |
|---|
nmap_port_scan | Portscan mit den Modi quick/full/service/stealth/aggressive |
nmap_service_detect | Erkennung von Diensten/Versionen auf offenen Ports |
nmap_full_scan | Alle 65535 TCP-Ports scannen |
Nuclei — Schwachstellenscan
| MCP-Tool | Beschreibung |
|---|
nuclei_vuln_scan | Vollständiger Schwachstellenscan mit allen Templates |
nuclei_severity_scan | Nach Schweregrad gefilterter Scan (kritisch, hoch usw.) |
nuclei_template_scan | Gezielter Scan mit bestimmtem Template |
Gobuster — Verzeichnis-/DNS-Brute-Force
| MCP-Tool | Beschreibung |
|---|
gobuster_directory | Verzeichnis-Brute-Force mit konfigurierbaren Endungen |
gobuster_dns | DNS-Subdomänen-Brute-Force |
| MCP-Tool | Beschreibung |
|---|
subfinder_enumerate | Passive Subdomänen-Enumeration (crt.sh, VirusTotal usw.) |
| MCP-Tool | Beschreibung |
|---|
check_tools | Prüfen, welche Sicherheitstools installiert sind |
Verwendung
Claude Desktop
Füge zu claude_desktop_config.json hinzu:
{
"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
Füge zu .cursor/mcp.json oder der entsprechenden Datei hinzu:
{
"mcpServers": {
"prismsec": {
"command": "python3",
"args": ["/path/to/prismsec/server.py"]
}
}
}
SSE-Transport (Remote)
# Server side
python3 server.py --transport sse --host 0.0.0.0 --port 8000
# Client config
{
"mcpServers": {
"prismsec": {
"url": "http://localhost:8000/sse"
}
}
}
Projektstruktur
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
Konfiguration
| Umgebungsvariable | Standard | Beschreibung |
|---|
LOG_LEVEL | INFO | Log-Level (DEBUG, INFO, WARNING, ERROR) |
Sicherheitshinweise
⚠️ Nur autorisierte Tests. Verwende das Tool nur gegen Systeme, die dir gehören oder für die du eine schriftliche Genehmigung hast.
- Tool-Ausgaben können vertrauliche Informationen enthalten (IPs, offene Ports, Schwachstellen)
- Der Server bindet standardmäßig an
127.0.0.1 — niemals in unvertrauenswürdigen Netzwerken freigeben
- Jedes Tool verfügt über konfigurierbare Timeouts, um Ressourcenerschöpfung zu verhindern
Lizenz
MIT
Entwickelt mit dem Model Context Protocol-Standard für breite Client-Kompatibilität.