Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
mcp-doorman — Un mcp leggero per prevenire l'avvelenamento CVE (CVE-2025-54136), il dirottamento di Claude Code/Copilot/Gemini da parte di ricercatori tramite prompt injection e centinaia di server MCP esposti senza autenticazione; questo mcp protegge il laptop del singolo sviluppatore, dove in realtà gira la maggior parte dei server MCP. | Kitploit
Strumenti/GitHubGitHub/sushank05/mcp-doorman
Strumenti DifensiviScanner di VulnerabilitàRilevamento SegretiThreat IntelligenceConfigurazione ErrataApprendimento e FormazioneSicurezza delle APISicurezza dell'IA
GitHubsushank05/mcp-doorman

mcp-doorman

Vedi Repository
297 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →

Informazioni

Un mcp leggero per prevenire l'avvelenamento CVE (CVE-2025-54136), il dirottamento di Claude Code/Copilot/Gemini da parte di ricercatori tramite prompt injection e centinaia di server MCP esposti senza autenticazione; questo mcp protegge il laptop del singolo sviluppatore, dove in realtà gira la maggior parte dei server MCP.

Condividi

mcp-doorman

Il gateway di sicurezza per i server MCP — ogni chiamata di strumento viene controllata all'ingresso.

CI npm Licenza: Apache-2.0 PR benvenuti

mcp-doorman è un proxy drop-in che si posiziona tra il tuo agente AI (Claude Desktop, Claude Code, Cursor, VS Code, qualsiasi client MCP) e i server MCP che utilizza. Un solo comando, zero infrastruttura, e ogni tools/list e tools/call passa attraverso una pipeline di protezione:

  • 🛂 Motore di policy — regole allow / deny / require-approval per strumento, con corrispondenza glob
  • 🕵️ Rimozione dei segreti — chiavi AWS, token GitHub/Slack/Stripe/OpenAI/Anthropic, chiavi private, JWT, carte (verifica Luhn)… ripuliti dai risultati degli strumenti prima che raggiungano il modello
  • 💉 Screening delle iniezioni di prompt — segnala o blocca i risultati degli strumenti (e le descrizioni degli strumenti — tool poisoning) che tentano di istruire il modello
  • 📌 Rilevamento rug-pull — le definizioni degli strumenti vengono ancorate tramite hash al primo utilizzo; se un server sostituisce silenziosamente una descrizione, lo strumento viene bloccato finché un umano non lo ri-ancora
  • 🚦 Rate limiting — bucket di token per strumento limitano il raggio d'esplosione di un ciclo di agente fuori controllo
  • 🙋 Cancelli di approvazione umana — gli strumenti sensibili attivano un prompt di approvazione interattivo tramite MCP elicitation, direttamente nel tuo client
  • 🧾 Registro di audit — ogni chiamata, rifiuto, rimozione e segnalazione finisce in un file JSONL append-only

Perché esiste

Chiunque è a un solo npx some-random-mcp-server di distanza dal consegnare a un processo non verificato le proprie chiavi API e una linea diretta nella finestra di contesto del proprio modello. Le classi di attacco documentate sono reali, non ipotetiche:

AttaccoCome funziona
Avvelenamento degli strumentiIstruzioni maligne nascoste nella descrizione di uno strumento, invisibili nella maggior parte delle UI dei client
Rug pullIl server presenta strumenti innocui il primo giorno e sostituisce le definizioni dopo che le hai approvate
Iniezione indiretta di promptUna pagina web/issue/email recuperata da uno strumento legittimo trasporta istruzioni rivolte al modello
Esfiltrazione di segretiUna credenziale trapelata nel risultato di uno strumento + un'istruzione iniettata = la tua chiave sul server di qualcun altro
Loop fuori controlloUn agente confuso o dirottato cancella in massa, invia email in massa, fa scraping in massa

Esistono gateway MCP enterprise per i team di piattaforma con cluster Kubernetes. Nessuno strumento leggero protegge il laptop del singolo sviluppatore — il luogo dove gira davvero il 99% dei server MCP. È il vuoto che questo progetto colma.

Avvio rapido (60 secondi)

# 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

Poi punta il tuo client al gateway invece che ai tuoi server. Claude Desktop / Claude Code / Cursor:

// 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"]
    }
  }
}

Gli strumenti compaiono con namespace come github__create_issue, filesystem__read_file, ecc., più due strumenti integrati: doorman__status e doorman__recent_events (chiedi al tuo agente "cosa ha bloccato di recente doorman?").

Nota per Windows: se una voce di server usa npx direttamente, avviala tramite cmd: "command": "cmd", "args": ["/c", "npx", "-y", "..."].

Guardalo in azione

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

La demo collega il gateway a un server volutamente malfunzionante (examples/demo-server.mjs) che fa trapelare credenziali finte, fornisce un payload di prompt injection e offre uno strumento distruttivo — e mostra ogni protezione che lo intercetta.

Come funziona

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]

Il gateway è un MCP server verso il tuo client e un MCP client verso ogni upstream (processi figli stdio o endpoint streamable-HTTP), aggregandoli dietro un'unica connessione. È costruito sullo TypeScript SDK ufficiale.

Configurazione

Tutto sta in un unico file JSON. Esempio completo con tutte le opzioni:

{
  "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"
}
Scarica lo strumento