Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
mcp-doorman — Un mcp léger pour prévenir l'empoisonnement de CVE (CVE-2025-54136), le détournement de Claude Code/Copilot/Gemini par des chercheurs via l'injection de prompt, et des centaines de serveurs MCP exposés sans aucune authentification, ce mcp protège l'ordinateur portable du développeur individuel, là où la plupart des serveurs MCP s'exécutent réellement. | Kitploit
Outils/GitHubGitHub/sushank05/mcp-doorman
Outils DéfensifsScanners de VulnérabilitésDétection de SecretsRenseignement sur les MenacesMauvaise ConfigurationApprentissage et ÉducationSécurité des APISécurité de l'IA
GitHubsushank05/mcp-doorman

mcp-doorman

Voir le dépôt
28il y a 5 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

Un mcp léger pour prévenir l'empoisonnement de CVE (CVE-2025-54136), le détournement de Claude Code/Copilot/Gemini par des chercheurs via l'injection de prompt, et des centaines de serveurs MCP exposés sans aucune authentification, ce mcp protège l'ordinateur portable du développeur individuel, là où la plupart des serveurs MCP s'exécutent réellement.

Partager

mcp-doorman

La passerelle de sécurité pour les serveurs MCP — chaque appel d'outil est vérifié à l'entrée.

CI npm License: Apache-2.0 PRs welcome

mcp-doorman est un proxy prêt à l'emploi qui se place entre votre agent IA (Claude Desktop, Claude Code, Cursor, VS Code, n'importe quel client MCP) et les serveurs MCP qu'il utilise. Une commande, zéro infrastructure, et chaque tools/list et tools/call passe par un pipeline de garde :

  • 🛂 Moteur de politiques — règles d'autorisation / refus / approbation requise par outil, avec correspondance par glob
  • 🕵️ Masquage de secrets — clés AWS, tokens GitHub/Slack/Stripe/OpenAI/Anthropic, clés privées, JWT, cartes (vérification Luhn)… nettoyés des résultats d'outils avant qu'ils n'atteignent le modèle
  • 💉 Détection d'injection de prompt — signale ou bloque les résultats d'outils (et les descriptions d'outils — empoisonnement d'outil) qui tentent d'instruire le modèle
  • 📌 Détection de rug pull — les définitions d'outils sont hachées et épinglées à la première utilisation ; si un serveur échange silencieusement une description, l'outil est bloqué jusqu'à ce qu'un humain le ré-épingle
  • 🚦 Limitation de débit — des buckets par jeton par outil limitent l'impact d'une boucle d'agent incontrôlée
  • 🙋 Portes d'approbation humaine — les outils sensibles déclenchent une invite d'approbation interactive via l'élicitation MCP, directement dans votre client
  • 🧾 Journal d'audit — chaque appel, refus, masquage et signalement atterrit dans un fichier JSONL en mode append-only

Pourquoi cela existe

Tout le monde est à un npx some-random-mcp-server de confier ses clés API à un processus non vérifié et une ligne directe dans la fenêtre de contexte de son modèle. Les classes d'attaques documentées sont réelles, pas hypothétiques :

AttaqueComment ça marche
Empoisonnement d'outilInstructions malveillantes cachées dans la description d'un outil, invisibles dans la plupart des interfaces client
Rug pullLe serveur présente des outils innocents le premier jour, puis échange les définitions après que vous les ayez approuvées
Injection indirecte de promptUne page web / issue / email récupérée par un outil légitime contient des instructions destinées au modèle
Exfiltration de secretsUn identifiant divulgué dans un résultat d'outil + une instruction injectée = votre clé sur le serveur de quelqu'un d'autre
Boucles incontrôléesUn agent confus ou détourné supprime en masse, envoie en masse, scrape en masse

Les passerelles MCP d'entreprise existent pour les équipes de plateforme avec des clusters Kubernetes. Rien de léger ne protège l'ordinateur portable du développeur individuel — l'endroit où 99 % des serveurs MCP s'exécutent réellement. C'est le vide que ce projet comble.

Démarrage rapide (60 secondes)

# 1. Créez une configuration
npx -y mcp-doorman init

# 2. Modifiez doorman.config.json — mettez-y vos vrais serveurs

# 3. Épinglez les définitions d'outils actuelles (confiance à la première utilisation)
npx -y mcp-doorman pin --config doorman.config.json

Puis pointez votre client vers la passerelle au lieu de vos serveurs. Claude Desktop / Claude Code / Cursor :

// AVANT — chaque serveur parle directement au modèle
{
  "mcpServers": {
    "github":     { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] },
    "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/repos"] }
  }
}

// APRÈS — un seul doorman les garde tous
{
  "mcpServers": {
    "doorman": {
      "command": "npx",
      "args": ["-y", "mcp-doorman", "run", "--config", "/absolute/path/to/doorman.config.json"]
    }
  }
}

Les outils apparaissent avec un espace de noms comme github__create_issue, filesystem__read_file, etc., plus deux outils intégrés : doorman__status et doorman__recent_events (demandez à votre agent "qu'est-ce que doorman a bloqué récemment ?").

Remarque Windows : si une entrée de serveur utilise npx directement, lancez-la via cmd : "command": "cmd", "args": ["/c", "npx", "-y", "..."].

Voir en action

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

La démo connecte la passerelle à un serveur volontairement malveillant (examples/demo-server.mjs) qui fuit de faux identifiants, sert une charge utile d'injection de prompt et offre un outil destructeur — et montre chaque garde l'arrêter.

Comment ça fonctionne

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]

La passerelle est un serveur MCP vers votre client et un client MCP vers chaque amont (processus enfants stdio ou endpoints HTTP streamables), les agrège derrière une seule connexion. Elle est construite sur le SDK TypeScript officiel.

Configuration

Tout se trouve dans un seul fichier JSON. Exemple complet avec toutes les options :

{
  "servers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}" }   // ${VAR} = lire depuis l'environnement de la passerelle
    },
    "remote": { "url": "https://mcp.example.com/mcp", "headers": { "Authorization": "Bearer ${MCP_TOKEN}" } }
  },

  "policy": {
    "defaultAction": "allow",                    // "allow" | "deny" | "approve"
    "rules": [                                   // la première correspondance gagne, évaluée de haut en bas
      { "match": "*__delete*",  "action": "deny",    "reason": "pas d'outils destructeurs" },
      { "match": ["github__create_*", "*__send_*"], "action": "approve" },
      { "match": "filesystem__*", "action": "allow" }
    ]
  },

  "redaction": {
    "enabled": true,
    "disable": [],                               // noms des règles intégrées à désactiver
    "enableOptIn": ["email"],                    // opt-ins : "email", "us-ssn", "ipv4"
    "custom": [{ "name": "acme-id", "pattern": "ACME-[0-9]{6}" }],
    "redactArguments": false                     // également nettoyer les arguments fournis par le modèle
  },

  "injection": {
    "action": "flag",                            // "flag" (avertir le modèle) | "block" | "off"
    "scanToolDescriptions": true,                // vérification d'empoisonnement d'outil sur tools/list
    "custom": []
  },

  "pinning": {
    "enabled": true,
    "onNewTool": "pin",                          // "pin" (TOFU) | "block" (jusqu'à `mcp-doorman pin`)
    "onChangedTool": "block"                     // "block" | "warn"
  },

  "rateLimit": { "perMinute": 120, "perTool": { "*__send_*": 5 } },
Télécharger l’outil