sushant-me/mcpaudit-mcp-security

Vérifiez ce qu’un serveur MCP déclare avant qu’un agent ne s’y connecte — texte d’injection d’instructions dans les descriptions d’outils, Unicode invisible (y compris le bloc de balises qui encode l’ASCII imprimable à largeur nulle), noms d’outils similaires ou en double, collisions de noms avec le framework, et paramètres shell non contraints. Utilisez-le lors de la révision d’un serveur MCP, de l’installation d’une intégration MCP, de l’évaluation d’un fournisseur tiers, ou lorsque quelqu’un demande « ce serveur MCP est-il sûr » ou « auditez ces définitions d’outils ».

Qu'est-ce que mcpaudit-mcp-security ?

Cette compétence permet d’auditer les déclarations d’un serveur MCP avant qu’un agent ne s’y connecte. Elle analyse le fichier `tools.json` reçu via `tools/list` pour détecter onze types de risques allant de critique (collision avec des noms réservés du framework) à faible (outil non documenté). L’outil détecte notamment les injections d’instructions dans les descriptions, les caractères Unicode invisibles (comme le bloc de balises), les noms d’outils visuellement identiques ou en double, et les paramètres shell non contraints. `mcpaudit` s’installe depuis le dépôt GitHub (pas depuis PyPI) et s’utilise en ligne de commande via `mcpaudit audit tools.json`. Idéal pour les revues de sécurité, les intégrations tierces, ou simplement pour vérifier la fiabilité d’un serveur MCP avant de l’exposer à un modèle.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/sushant-me/mcpaudit-mcp-security/tree/HEAD/plugins/mcp-tool-audit/skills/mcp-tool-audit

Installed? Explore more Développement et programmation skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Vérifier ce qu’un serveur MCP déclare

Une description d’outil n’est pas de la documentation. Le client reçoit les noms et descriptions des outils via tools/list, avant qu’un outil ne soit appelé, et ils sont intégrés dans le contexte du modèle — donc une description est exécutable dans le seul sens qui compte : elle peut porter des instructions.

Quand cela s’applique

  • ajouter un serveur MCP à un agent et vouloir savoir ce qu’il exposera
  • une revue de sécurité demandant quels outils tiers l’agent peut appeler
  • un agent se comportant étrangement, où une description d’outil est suspecte

Exécution

pip install "git+https://github.com/sushant-me/mcpaudit"
mcpaudit audit tools.json        # sortie 1 si des problèmes sont trouvés, 0 si tout est propre

Installez depuis le dépôt, pas depuis PyPI — le nom mcpaudit sur PyPI est un projet différent et non lié dont l’interface en ligne de commande n’accepte pas d’argument de fichier.

Obtenez tools.json à partir de ce que le client a reçu : mcp-client --list > tools.json, ou le fichier de déclaration publié par le fournisseur (c’est le meilleur, car rien n’est exécuté). Le tube fonctionne aussi : mcp-client --list | mcpaudit audit -

Les onze vérifications

critical — reserved-name-collision : un outil nommé avec un nom que le framework installe en dehors de la table des outils (set_model_response, google_search, finish), ce qui déplace silencieusement une primitive.

high — instruction-in-declaration, invisible-characters, look-alike-tool-names, destructive-declared-read-only, duplicate-tool-name.

medium / low — confusable-tool-name, missing-annotations, unconstrained-sink-parameter, url-in-description, undocumented-tool.

Deux d’entre elles ne peuvent pas être détectées en lisant la déclaration. Le bloc de balises Unicode encode l’ASCII imprimable en texte de largeur nulle visible, et mcpaudit rapporte ce qu’il décode. Deux noms qui se normalisent vers le même ASCII (search / ѕearch) contournent une liste autorisée écrite de mémoire.

Triage

Travaillez du haut vers le bas par sévérité. Un résultat critical est un arrêt : résolvez-le, ou faites accepter le risque par écrit, avant de vous connecter. Un résultat propre est un résultat — un serveur bien comporté produit zéro problème, ce qui permet à un réviseur de l’approuver rapidement.

Limite

Ceci lit les déclarations, pas le comportement. Il ne peut pas vous dire si l’implémentation d’un serveur est correcte, seulement si ce qu’il annonce est sûr à exposer à un modèle.

Vous voulez la partie application

Fixer l’ensemble d’outils approuvé comme fichier de politique, de sorte qu’un serveur qui modifie silencieusement une description après une revue échoue dans l’intégration continue au lieu de changer silencieusement, est la version payante : MCP Server Security Review, listée sur Agensi. En attendant que cette liste soit active, la référence des règles avec des exemples travaillés est à https://github.com/sushant-me/mcpaudit-mcp-security

Limite

Ceci lit les déclarations, pas le comportement. Il ne peut pas vous dire si l’implémentation d’un serveur est correcte, seulement si ce qu’il annonce est sûr à exposer à un modèle.

Skills associés