CommunityCodierung & Entwicklunggithub.com

sushant-me/mcpaudit-mcp-security

Überprüft, was ein MCP-Server deklariert, bevor ein Agent eine Verbindung herstellt – Prompt-Injection-Text in Tool-Beschreibungen, unsichtbare Unicode-Zeichen (einschließlich des Tag-Blocks, der druckbares ASCII mit Nullbreite kodiert), Look-alike- und doppelte Tool-Namen, Framework-Namenskollisionen und uneingeschränkte Shell-Senken. Verwenden Sie dies, wenn Sie einen MCP-Server überprüfen, eine MCP-Integration installieren, einen Drittanbieter-Tool-Anbieter prüfen oder wenn jemand fragt: „Ist dieser MCP-Server sicher?“ oder „Auditiere diese Tool-Definitionen.“

Was ist mcpaudit-mcp-security?

Dieses Skill überprüft die Deklarationen eines MCP-Servers, die über `tools/list` an einen Agenten gesendet werden, bevor eine Verbindung hergestellt wird. Es ist nützlich, um Prompt-Injection-Text in Tool-Beschreibungen, unsichtbare Unicode-Zeichen (einschließlich des Tag-Blocks, der mit Nullbreite druckbares ASCII kodiert), Look-alike- und doppelte Tool-Namen, Framework-Namenskollisionen sowie uneingeschränkte Shell-Senken zu identifizieren. Das Tool unterstützt alle MCP-kompatiblen Plattformen (Claude Code, Cursor, Codex usw.) und führt elf Prüfungen durch, die von kritisch bis niedrig eingestuft werden. Installieren Sie es über das GitHub-Repository, nicht über PyPI, und verwenden Sie es, indem Sie eine `tools.json`-Datei oder die Ausgabe von `mcp-client --list` an `mcpaudit audit` übergeben. Ein sauberes Ergebnis mit null Funden ermöglicht eine schnelle Genehmigung, während kritische Funde als Stoppsignal vor der Verbindung dienen.

Funktioniert mit~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 Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Überprüfen, was ein MCP-Server deklariert

Eine Tool-Beschreibung ist keine Dokumentation. Der Client erhält Tool-Namen und -Beschreibungen über tools/list, bevor ein Tool aufgerufen wird, und sie gelangen in den Kontext des Modells – daher ist eine Beschreibung in dem einzigen relevanten Sinne ausführbar: Sie kann Anweisungen enthalten.

Wann dies zutrifft

  • Hinzufügen eines MCP-Servers zu einem Agenten und Wissen, was er offenlegen wird
  • Eine Sicherheitsüberprüfung, die fragt, welche Drittanbieter-Tools der Agent aufrufen kann
  • Ein Agent verhält sich seltsam, und eine Tool-Beschreibung steht im Verdacht

Ausführen

pip install "git+https://github.com/sushant-me/mcpaudit"
mcpaudit audit tools.json        # exit 1 bei Funden, 0 wenn sauber

Installieren Sie aus dem Repository, nicht von PyPI – der Name mcpaudit auf PyPI ist ein anderes, nicht verwandtes Projekt, dessen CLI kein Dateiargument akzeptiert.

Holen Sie sich tools.json von dem, was der Client erhalten hat: mcp-client --list > tools.json, oder die Veröffentlichungsdatei des Anbieters (am besten, da nichts ausgeführt wird). Piping funktioniert auch: mcp-client --list | mcpaudit audit -

Die elf Prüfungen

critical – reserved-name-collision: ein Tool, das einen Namen trägt, den das Framework außerhalb der Tool-Tabelle installiert (set_model_response, google_search, finish), verdrängt so stillschweigend ein Primitiv.

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.

Zwei davon sind nicht sichtbar, wenn man die Deklaration liest. Der Unicode-Tag-Block kodiert druckbares ASCII in Text mit null sichtbarer Breite, und mcpaudit berichtet, was er dekodiert. Zwei Namen, die auf dasselbe ASCII normalisiert werden (search / ѕearch), umgehen eine aus dem Gedächtnis geschriebene Positivliste.

Triage

Von oben nach unten nach Schweregrad arbeiten. Ein critical-Fund ist ein Stopp: Lösen Sie ihn oder lassen Sie sich das Risiko schriftlich bestätigen, bevor Sie die Verbindung herstellen. Ein sauberes Ergebnis ist ein Ergebnis – ein gutmütiger Server erzeugt null Funde, was einem Prüfer ermöglicht, ihn schnell zu genehmigen.

Einschränkung

Dies liest Deklarationen, nicht Verhalten. Es kann Ihnen nicht sagen, ob die Implementierung eines Servers korrekt ist, sondern nur, ob das, was er bewirbt, sicher ist, um es vor ein Modell zu stellen.

Die Durchsetzungshälfte

Das Festlegen des genehmigten Tool-Sets als Richtliniendatei, sodass ein Server, der nach einer Überprüfung stillschweigend eine Beschreibung ändert, in CI fehlschlägt, anstatt sich still zu verändern, ist die kostenpflichtige Version: MCP Server Security Review, aufgeführt bei Agensi. Bis diese Auflistung live ist, befindet sich die Referenz der Regeln mit ausgearbeiteten Beispielen unter https://github.com/sushant-me/mcpaudit-mcp-security

Verwandte Skills