Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
mcp-doorman — Ein leichtgewichtiges MCP zur Verhinderung von CVE-Vergiftung (CVE-2025-54136), Forscher, die Claude Code/Copilot/Gemini per Prompt-Injection kapern, und Hunderte von MCP-Servern, die ohne Authentifizierung exponiert sind. Dieses MCP schützt den Laptop des einzelnen Entwicklers, wo die meisten MCP-Server tatsächlich laufen. | Kitploit
Tools/GitHubGitHub/sushank05/mcp-doorman
DefensivwerkzeugeSchwachstellenscannerSecret-ErkennungBedrohungsanalyseFehlkonfigurationLernen & BildungAPI-SicherheitKI-Sicherheit
GitHubsushank05/mcp-doorman

mcp-doorman

Repository anzeigen
2vor 7 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Ein leichtgewichtiges MCP zur Verhinderung von CVE-Vergiftung (CVE-2025-54136), Forscher, die Claude Code/Copilot/Gemini per Prompt-Injection kapern, und Hunderte von MCP-Servern, die ohne Authentifizierung exponiert sind. Dieses MCP schützt den Laptop des einzelnen Entwicklers, wo die meisten MCP-Server tatsächlich laufen.

Teilen

mcp-doorman

Das Sicherheits-Gateway für MCP-Server – jeder Tool-Aufruf wird an der Tür geprüft.

CI npm License: Apache-2.0 PRs welcome

mcp-doorman ist ein Drop-in-Proxy, der sich zwischen Ihren KI-Agenten (Claude Desktop, Claude Code, Cursor, VS Code, jeder MCP-Client) und die von ihm genutzten MCP-Server setzt. Ein Befehl, keine Infrastruktur, und jeder tools/list- und tools/call-Aufruf durchläuft eine Schutz-Pipeline:

  • 🛂 Policy-Engine – Erlauben/Verweigern/Genehmigung erforderlich-Regeln pro Tool, Glob-Matching
  • 🕵️ Geheimnis-Schwärzung – AWS-Keys, GitHub/Slack/Stripe/OpenAI/Anthropic-Tokens, private Schlüssel, JWTs, Karten (Luhn-geprüft)… aus Tool-Ergebnissen bevor sie das Modell erreichen, entfernt
  • 💉 Prompt-Injection-Screening – kennzeichnet oder blockiert Tool-Ergebnisse (und Tool-Beschreibungen – Tool-Poisoning), die versuchen, das Modell zu instruieren
  • 📌 Rug-Pull-Erkennung – Tool-Definitionen werden bei erster Nutzung per Hash gepinnt; wenn ein Server stillschweigend eine Beschreibung austauscht, wird das Tool blockiert, bis ein Mensch es neu pinnt
  • 🚦 Ratenbegrenzung – Token-Buckets pro Tool begrenzen die Schadensreichweite einer außer Kontrolle geratenen Agenten-Schleife
  • 🙋 Menschliche Genehmigungs-Gates – sensible Tools lösen eine interaktive Genehmigungsaufforderung via MCP-Elicitation direkt in Ihrem Client aus
  • 🧾 Audit-Log – jeder Aufruf, jede Verweigerung, Schwärzung und Markierung landet in einer append-only JSONL-Datei
  • Warum es das gibt

    Jeder ist nur einen npx some-random-mcp-server davon entfernt, einem ungeprüften Prozess seine API-Schlüssel und eine direkte Leitung in das Kontextfenster seines Modells zu übergeben. Die dokumentierten Angriffsklassen sind real, nicht hypothetisch:

    AngriffFunktionsweise
    Tool-PoisoningBösartige Anweisungen, die in der Beschreibung eines Tools versteckt sind, in den meisten Client-Oberflächen unsichtbar
    Rug PullServer präsentiert am ersten Tag harmlose Tools, tauscht die Definitionen aus, nachdem Sie sie genehmigt haben
    Indirekte Prompt-InjectionEine von einem legitimen Tool abgerufene Webseite/Issue/E-Mail enthält Anweisungen, die auf das Modell abzielen
    Geheimnis-ExfiltrationEin durchgesickertes Credential in einem Tool-Ergebnis + eine injizierte Anweisung = Ihr Schlüssel auf dem Server eines anderen
    Außer-Kontrolle-SchleifenEin verwirrter oder entführter Agent löscht massenhaft, mailt massenhaft, scraped massenhaft

    Enterprise-MCP-Gateways gibt es für Plattform-Teams mit Kubernetes-Clustern. Nichts Leichtes schützt den Laptop des einzelnen Entwicklers – den Ort, an dem 99% der MCP-Server tatsächlich laufen. Diese Lücke schließt dieses Projekt.

    Schnellstart (60 Sekunden)

    root@kitploit:~
    # 1. Create a config
    npx -y mcp-doorman init
    
    # 2. Edit doorman.config.json — put your real servers in it
    
    # 3. Pin the current tool definitions (trust on first use)
    npx -y mcp-doorman pin --config doorman.config.json
    

    Richten Sie dann Ihren Client auf das Gateway anstelle Ihrer Server. Claude Desktop / Claude Code / Cursor:

    root@kitploit:~
    // BEFORE — every server talks straight to the model
    {
      "mcpServers": {
        "github":     { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] },
        "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/repos"] }
      }
    }
    
    // AFTER — one doorman guards them all
    {
      "mcpServers": {
        "doorman": {
          "command": "npx",
          "args": ["-y", "mcp-doorman", "run", "--config", "/absolute/path/to/doorman.config.json"]
        }
      }
    }
    

    Tools erscheinen namespace-gescoped als github__create_issue, filesystem__read_file, usw., plus zwei Built-ins: doorman__status und doorman__recent_events (fragen Sie Ihren Agenten "Was hat doorman kürzlich blockiert?").

    Windows-Hinweis: Wenn ein Server-Eintrag direkt npx verwendet, starten Sie ihn über cmd: "command": "cmd", "args": ["/c", "npx", "-y", "..."].

    In Aktion sehen

    root@kitploit:~
    git clone https://github.com/Sushank05/mcp-doorman && cd mcp-doorman
    npm install
    npm run demo
    

    Die Demo verbindet das Gateway mit einem absichtlich fehlverhaltenden Server (examples/demo-server.mjs), der gefälschte Zugangsdaten preisgibt, eine Prompt-Injection-Nutzlast ausliefert und ein zerstörerisches Tool anbietet – und zeigt, wie jede Schutzmaßnahme es abfängt.

    Wie es funktioniert

    root@kitploit:~
    flowchart LR
        A["MCP client\n(Claude Desktop, Cursor, ...)"] -- stdio --> D
        subgraph D [mcp-doorman]
            direction TB
            P[policy] --> R[rate limit] --> AP[approval] --> RD[redaction] --> I[injection scan] --> AU[(audit log)]
        end
        D -- stdio --> S1[github server]
        D -- stdio --> S2[filesystem server]
        D -- streamable HTTP --> S3[remote server]

    Das Gateway ist ein MCP-Server gegenüber Ihrem Client und ein MCP-Client gegenüber jedem Upstream (stdio-Kindprozesse oder streamable-HTTP-Endpunkte), die hinter einer Verbindung aggregiert werden. Es basiert auf dem offiziellen TypeScript SDK.

    Konfiguration

    Alles lebt in einer JSON-Datei. Vollständiges Beispiel mit jeder Option:

    root@kitploit:~
    {
      "servers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}" }   // ${VAR} = read from gateway env
        },
        "remote": { "url": "https://mcp.example.com/mcp", "headers": { "Authorization": "Bearer ${MCP_TOKEN}" } }
      },
    
      "policy": {
        "defaultAction": "allow",                    // "allow" | "deny" | "approve"
        "rules": [                                   // first match wins, evaluated top-down
          { "match": "*__delete*",  "action": "deny",    "reason": "no destructive tools" },
          { "match": ["github__create_*", "*__send_*"], "action": "approve" },
          { "match": "filesystem__*", "action": "allow" }
        ]
      },
    
      "redaction": {
        "enabled": true,
        "disable": [],                               // built-in rule names to turn off
        "enableOptIn": ["email"],                    // opt-ins: "email", "us-ssn", "ipv4"
        "custom": [{ "name": "acme-id", "pattern": "ACME-[0-9]{6}" }],
        "redactArguments": false                     // also scrub model-supplied arguments
      },
    
      "injection": {
        "action": "flag",                            // "flag" (warn the model) | "block" | "off"
        "scanToolDescriptions": true,                // tool-poisoning check on tools/list
        "custom": []
      },
    
      "pinning": {
        "enabled": true,
        "onNewTool": "pin",                          // "pin" (TOFU) | "block" (until `mcp-doorman pin`)
        "onChangedTool": "block"                     // "block" | "warn"
      },
    
      "rateLimit": { "perMinute": 120, "perTool": { "*__send_*": 5 } },
    
      "approval": { "fallback": "deny", "timeoutMs": 120000 },  // fallback when client lacks elicitation
    
      "audit": { "enabled": true, "includeArguments": true, "includeResults": false },
    
      "logLevel": "info"
    }
    

    Pin-Zustand und Audit-Log standardmäßig in <config-name>.pins.json / <config-name>.audit.jsonl neben der Konfigurationsdatei.

    CLI

    BefehlWas es tut
    mcp-doorman run --config <path>Startet das Gateway über stdio (Standardbefehl)
    mcp-doorman pin --config <path>Verbindet sich mit allen Upstreams und pinnt (vertraut) deren aktuelle Tool-Definitionen
    mcp-doorman initSchreibt eine Starter-Konfiguration mit sinnvollen Standardwerten

    Ehrliche Einschränkungen

    Sicherheitstools, die übertreiben, sind schlimmer als gar keine. Lesen Sie diesen Teil.

    • Heuristiken sind umgehbar. Die Injection-Muster erkennen dokumentierte, gängige Angriffsformen. Ein motivierter Angreifer kann jedes Regex umgehen. Verwenden Sie deny/approve-Richtlinien als harte Grenze; Screening ist Defense-in-Depth.
    • Schwärzung ist nach bestem Bemühen. Bekannte Token-Formate werden zuverlässig erkannt; ein zufälliges Hex-Geheimnis ohne Kontext nicht. Richten Sie Agenten nicht auf Credential-Stores.
    • Dies ist keine Sandbox. Upstream-Server laufen weiterhin als Kindprozesse mit den Privilegien Ihres Benutzers. Doorman schützt das Protokoll; kombinieren Sie es mit Containern (ToolHive-Stil), um den Prozess zu schützen.
    • TOFU vertraut dem ersten Anblick. Pinning erkennt Änderungen, nicht Tools, die von Anfang an bösartig waren – dafür sind der Beschreibungs-Scanner und Ihre eigene Überprüfung da.
    • Genehmigungs-Gates benötigen Elicitation. Clients ohne Elicitation-Support fallen auf approval.fallback zurück (standardmäßig verweigern).

    Roadmap – Hilfe gesucht 🙌

    • resources/*- und prompts/*-Proxying (derzeit nur Tools)
    • Durchleitung für Sampling und Roots
    • Community-Regelpakete (doorman-rules-finance, doorman-rules-healthcare…)
    • Lernmodus: eine Woche beobachten, ein Least-Privilege-Policy vorschlagen
    • OPA / Cedar-Policy-Backends
    • mcp-doorman audit-Unterbefehl: JSONL-Log hübsch ausgeben und abfragen
    • Web-Dashboard zur Audit-Visualisierung
    • Entropie-basierte generische Geheimnis-Erkennung

    Schnappen Sie sich etwas aus der Liste oder beginnen Sie mit einem [good first issue](https://github.com/YOUR_GITHUB_USERNAME/mcp-doorman/labels/good%20first%20issue). Neue Erkennungsregeln sind der einfachste Beitrag: ein Regex + zwei Tests. Siehe CONTRIBUTING.md und docs/detection-rules.md.

    Entwicklung

    root@kitploit:~
    npm install
    npm test          # 69 tests: unit + full stdio e2e
    npm run build
    npm run demo      # watch the guards fire live
    

    Lizenz

    Apache-2.0 – kostenlos für jede Nutzung, mit einer ausdrücklichen Patentgewährung.

    Tool herunterladen