
Nicht für Bildungszwecke: Ein MCP-Server für professionelle Penetrationstester mit STDIO/HTTP/SSE-Unterstützung, nmap, go/dirbuster, nikto, JtR, hashcat, Wörterlistenerstellung und mehr.
Professioneller MCP-Server für Penetrationstests mit moderner Transport-/Authentifizierungsunterstützung und erweiterten Recon-Werkzeugen.
@modelcontextprotocol/sdk@^1.26.0 aktualisiert@modelcontextprotocol/inspector@^0.20.0) mit gebündeltem LauncherMCP_TRANSPORT=http)subfinderEnum, httpxProbe, ffufScan, nucleiScan, trafficCapture, hydraBruteforce, privEscAudit, extractionSweeplistEngagementRecords, getEngagementRecordscopeMode=ask) mit sicherem Template-Fallback hinzugefügthttpx-toolkit (bevorzugt) oder validiertes ProjectDiscovery-httpx verwendet und Kollisionen mit der Python-httpx-CLI vermieden werdenpentest-mcp inspector)nmapScanrunJohnTheRipperrunHashcatgobusterniktosubfinderEnumhttpxProbeffufScannucleiScantrafficCapturehydraBruteforceprivEscAuditextractionSweepgenerateWordlistnpm install -g pentest-mcp
pentest-mcp
pentest-mcp inspector
Sie können Inspector-Flags direkt durchreichen:
pentest-mcp inspector --help
MCP_TRANSPORT=http MCP_SERVER_HOST=0.0.0.0 MCP_SERVER_PORT=8000 pentest-mcp
MCP_TRANSPORT=sse MCP_SERVER_PORT=8001 pentest-mcp
stdio: Standard für lokale MCP-Clients.http: moderner Netzwerktransport. Empfohlen.sse: nur Kompatibilität. Veraltet und wird in einem zukünftigen Hauptrelease entfernt.pentest-mcp inspector startet die gebündelte @modelcontextprotocol/inspector-CLI.node <this-package-entrypoint> stdioSetzen Sie diese Umgebungsvariablen bei Verwendung von MCP_TRANSPORT=http (oder bei Bedarf sse):
MCP_AUTH_ENABLED=true
MCP_AUTH_MODE=bearer
MCP_AUTH_SCOPES=read,write
MCP_AUTH_AUDIENCE=
MCP_OIDC_ISSUER=https://issuer.example.com
MCP_OIDC_JWKS_URL=https://issuer.example.com/.well-known/jwks.json
# optionale alternative/Backup-Validierungsmethode:
MCP_OIDC_INTROSPECTION_URL=https://issuer.example.com/oauth/introspect
MCP_OAUTH_CLIENT_ID=...
MCP_OAUTH_CLIENT_SECRET=...
Legacy-Aliasse werden vorübergehend weiterhin akzeptiert:
MCP_OAUTH_ENABLEDMCP_OAUTH_PROVIDER_URLMCP_OAUTH_SCOPEScreateClientReport unterstützt jetzt SoW-Verarbeitungsmodi:
scopeMode=ask: Benutzer per MCP-Elicitation auffordern (empfohlen)scopeMode=provided: den Wert scopeOfWork direkt verwendenscopeMode=template: eingebaute generische Vorlage für autorisierte Tests verwendenWenn die Elicitation abgelehnt/nicht verfügbar ist, fällt der Bericht automatisch auf die Vorlage zurück.
Es gibt noch keine separate Datei-Upload-API. Die aktuellen Optionen sind:
{
"tool": "createClientReport",
"arguments": {
"title": "Q1 External Pentest",
"assessmentType": "external-network",
"scopeMode": "ask"
}
}
scopeOfWork einfügen{
"tool": "createClientReport",
"arguments": {
"title": "Q1 External Pentest",
"assessmentType": "external-network",
"scopeMode": "provided",
"scopeOfWork": "Authorized targets: ...\nOut-of-scope: ...\nTesting window: ...\nRules of engagement: ..."
}
}
{
"tool": "createClientReport",
"arguments": {
"title": "Q1 External Pentest",
"assessmentType": "external-network",
"scopeMode": "template"
}
}
recordId=...) mit Aufrufkontext.listEngagementRecords, um alle Arbeitsartefakte schnell abzurufen.recordIds (oder standardmäßig den neuesten Datensätzen) anstatt manuellem Kopieren/Einfügen.ask)provided)template)Diese Punkte sind geplant, um den Verwaltungsaufwand bei Pentests gezielt zu reduzieren.
scopeFilePath-Übernahme (SoW aus einem lokalen Dateipfad auf dem MCP-Host laden)scopeDocument-Upload in Blöcken (SoW-Inhalt direkt über MCP für entfernte Clients senden)recordId) mit Befunden und Berichtsabschnittennuclei, nikto, usw.)Adoptionshinweis:
scopeFilePath und scopeDocument wird eine starke Nutzung erwartet, da die meisten Teams SoW bereits in Dokumenten/PDFs pflegen und wiederholte Kopier- und Neuformatierungsschritte vermeiden möchten.{
"tool": "subfinderEnum",
"arguments": {
"domain": "example.com",
"recursive": true,
"allSources": true
}
}
{
"tool": "httpxProbe",
"arguments": {
"targets": ["example.com", "api.example.com"],
"includeTitle": true,
"includeStatusCode": true
}
}
{
"tool": "ffufScan",
"arguments": {
"targetUrl": "https://example.com/FUZZ",
"wordlist": "/usr/share/seclists/Discovery/Web-Content/common.txt",
"threads": 40
}
}
{
"tool": "nucleiScan",
"arguments": {
"targets": ["https://example.com"],
"severities": ["medium", "high", "critical"]
}
}
{
"tool": "trafficCapture",
"arguments": {
"networkInterface": "eth0",
"packetCount": 200,
"bpfFilter": "tcp port 80"
}
}
{
"tool": "hydraBruteforce",
"arguments": {
"target": "10.10.10.20",
"service": "ssh",
"usernameList": "/usr/share/seclists/Usernames/top-usernames-shortlist.txt",
"passwordList": "/usr/share/seclists/Passwords/Common-Credentials/10k-most-common.txt"
}
}
{
"tool": "extractionSweep",
"arguments": {
"targetUrl": "https://target.local/item.php?id=1",
"risk": 2,
"level": 3
}
}
docker-compose --profile http up
docker-compose --profile stdio up
docker-compose --profile sse up
Das Docker-Image installiert:
nmap, john, hashcat, gobuster, nikto, ffuf, hydra, sqlmap, tcpdumpsubfinder, httpx + httpx-toolkit-Alias, nucleiStellen Sie sicher, dass die Binärdateien im PATH liegen:
which nmap john hashcat gobuster nikto subfinder httpx-toolkit ffuf nuclei hydra sqlmap tcpdump
Wenn httpx-toolkit nicht installiert ist, wird ein validiertes ProjectDiscovery-httpx-Binärprogramm als Fallback akzeptiert.
Nur für autorisierte Nutzung. Führen Sie es nur gegen Systeme/Netzwerke aus, für die Sie eine ausdrückliche schriftliche Genehmigung haben.
Zuletzt aktualisiert: 2026-03-23
Das Model Context Protocol (MCP) ist weiterhin eine der nützlichsten Interoperabilitätsschichten für Tools und Agenten. Der Nachteil: Große MCP-Server können viele Tools bereitstellen, und naiver Tool-Aufruf kann Kontextfenster mit Schemas, Tool-Kommunikation und irrelevanten Aufrufspuren überfluten.
In der Praxis bedeutet „mehr Tools“ nicht immer „bessere Ergebnisse“. Die Tool-Oberfläche muss mit Ausführungsmustern kombiniert werden, die den Tokenverbrauch begrenzen und das Verhalten vorhersehbar halten.
Neuere Arbeitsabläufe verlagern komplexe Orchestrierung zunehmend aus dem Chat-Kontext in Codeausführungsschleifen. Dies reduziert wiederkehrende Schema-Tokens und macht die Tool-Nutzung prüfbar und testbar.
Kernlektüre:
Für Benutzer, die reproduzierbare und rauschärmere MCP-Nutzung wünschen, beginnen Sie mit einem codemode-orientierten Setup:
Praktischer Hinweis: Selbst bei einem guten Setup kann das Modellverhalten über Anbieter und Versionen hinweg inkonsistent sein. Behalten Sie Wiederholungen, Schutzmechanismen und deterministische Fallbacks bei.
Ein Muster mit hoher Hebelwirkung besteht darin, MCP-Server in aufrufbare Code-Schnittstellen und aufgabenorientierte CLIs zu verpacken, anstatt jedes rohe Tool jederzeit dem Modell auszusetzen.
Referenzwerkzeuge:
Dieser Bereich verändert sich schnell. Wenn Sie dies jetzt lesen, könnten Teile dieser Anleitung bereits veraltet sein.
Prompt Injection bleibt ein offenes Sicherheitsproblem für Tool-verwendende Agenten. Es ist beherrschbar, aber nicht „gelöst“.
Hauptrisiken:
Folgen:
Basis-Gegenmaßnahmen:
Behandeln Sie jede Tool-Ausgabe als nicht vertrauenswürdige Eingabe, sofern sie nicht ausdrücklich verifiziert wurde.
Dieser Server zielt auf die MCP-Protokollversion 2025-11-25 und das SDK @modelcontextprotocol/sdk@^1.27.1.
listEngagementRecordsgetEngagementRecordcreateClientReportcancelScan| Funktion | Status |
|---|
| stdio-Transport | Unterstützt (Standard) |
| Streamable-HTTP-Transport | Unterstützt (MCP_TRANSPORT=http) |
| SSE-Transport (Legacy) | Veralteter Kompatibilitätsmodus |
| Tool-Annotationen | Alle Tools mit title, readOnlyHint, destructiveHint, idempotentHint, openWorldHint annotiert |
| Bearer-Auth (OIDC/JWKS) | Unterstützt |
| Ursprungsvalidierung (HTTP) | 403 bei ungültigem Origin, wenn MCP_ALLOWED_ORIGINS gesetzt ist |
| JSON Schema 2020-12 | Zod-generierte Schemas |
| Strukturierte Tool-Fehler | isError-Flag mit beschreibenden Meldungen zur Modell-Selbstkorrektur |
| Elicitation | Wird für die SoW-Erfassung bei der Berichterstellung verwendet |