Ü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