mcp-proof
🧾 mcp-proof
Liefern Sie einen MCP-Server mit Quittung.
Ein einziger Befehl prüft jeden MCP-Server — Tools, Ressourcen und Prompts, egal welche Protokoll-Ära, stdio oder Streamable HTTP — und übergibt Ihrem Client einen fingerabdruckbasierten, reproduzierbaren Lieferbericht plus eine CI-Regressionssuite, die er behält.
Ein echtes Audit des offiziellen MCP-Dateisystem-Servers: 25 Konformitätsprüfungen, MSSS-Konformitätstabelle, 34 Regressions-Fixtures — alles grün.
✨ Was Sie bekommen
🔍 Wire-Level-Protokollprüfungen über jede Oberfläche und beide Ären — mcp-proof spricht rohes JSON-RPC mit Ihrem Server und erkennt seine Ära automatisch: 30 Prüfungen für die moderne Ära 2026-07-28 (
server/discover,_meta-Envelope-Durchsetzung,resultType,ttlMs/cacheScopeauf jedem cachebaren Ergebnis,-32022-Versionsablehnung, HTTP-Routing-Header-Durchsetzung) und 25 für die Initialize-Handshake-Ära — exakte Fehlercodes, Schema-Gültigkeit, strukturierte Ausgabe, stdout-Hygiene, Paginierungssicherheit, dedizierte Ressourcen- und Prompt-Spuren sowie verifizierte Negativproben: TOOL-07 sendet Eingaben, die nachweislich das deklarierte inputSchema verletzen, und warnt, wenn der Server sie normal beantwortet, mit Zitat des minimalen Reproduktionsbeispiels. In beide Richtungen fähigkeitsbewusst: Oberflächen, die ein Server nicht bewirbt, werden übersprungen; Oberflächen, die er bewirbt, müssen funktionieren.🛡️ Sicherheitsaudit, gebunden an einen öffentlichen Standard — 6 deterministische Prüfungen (Tool-Beschreibungs-Vergiftung, unsichtbare/Bidi-Zeichen, durchgesickerte Zugangsdaten, uneingeschränkte Injektionsflächen, beworbene Shell-Ausführung), jeweils zugeordnet zu kanonischen Kontroll-IDs des 24-Kontrollen umfassenden MCP Server Security Standard, dargestellt als vollständige Konformitätstabelle in jedem Bericht.
📼 Eine Regressionssuite, die Ihr Client behält — zeichnet in beiden Protokoll-Ären auf; Goldene Fixtures mit SHA-256-Provenienz frieren das Serververhalten ein; Replay bewertet jede Abweichung (
BREAKING/VALUE/COSMETIC/LATENCY), versteht strukturierte Ausgabe, bewahrt die Reihenfolge zustandsbehafteter Aufrufe und wird mit einem einsatzbereiten GitHub-Actions-Gate geliefert.📄 Ein Bericht für Menschen und Maschinen — eigenständiges HTML mit klebriger Navigation, Anker pro Prüfung (
report.html#SEC-03), Aufmerksamkeits-/Bestanden-Filtern und einer einklappbaren MSSS-Matrix;--pdffür den Druck. Dasselbe versionierte Modell wird als--json(Schema v1),--junitfür jede CI und--sariffür den GitHub-Sicherheits-Tab geliefert.🔁 Von Natur aus reproduzierbar — null LLM-Aufrufe, null API-Schlüssel. Jeder Hash wird allein aus dem Verhalten berechnet — Zeitstempel und Latenz leben in einer separaten, ungehashten Beobachtungsebene — sodass identisches Serververhalten einen identischen Berichts-Fingerabdruck erzeugt und Akzeptanz Verifikation ist, nicht Vertrauen.
🧯 Annotations-zuerst-Aufrufplanung — MCP-Tool-Annotationen schlagen die Namensheuristik in beide Richtungen:
readOnlyHintrettet schreibgeschützte Tools, die der Regex übermäßig blockieren würde,destructiveHintfängt Mutatoren, die er übersehen würde; nicht annotierte Tools fallen auf die konservative Heuristik zurück.mcp-proof planzeigt genau, was die Auto-Baseline aufrufen würde und auf welcher Grundlage, bevor irgendetwas die Produktion berührt;--include-destructiveund--edge-casesermöglichen mehr.📋 Ein Vertrags-Diff für CI —
mcp-proof inspectfriert die bediente Oberfläche (Fähigkeiten + Tools + Ressourcen + Prompts, vollständig paginiert) in ein fingerabdruckbasiertes Manifest ein;mcp-proof diffklassifiziert jede Änderung alsBREAKING/ADDITIVE/METADATAund beendet sich bei brechenden Änderungen mit Nicht-Null-Status — Schema-Verschärfungen, Enum-Verengungen, Required-Flips, entfernte Ausgabefelder und abgeschwächte Sicherheitsannotationen zählen alle.
Related MCP server: MCProbe
🚀 Schnellstart
pip install git+https://github.com/YuCPbit/mcp-proof
mcp-proof run python my_server.py --fixtures fixtures/ --out report.htmlStattdessen einen laufenden HTTP-Server prüfen? mcp-proof run --url http://localhost:8000/mcp --out report.html
Exit-Code 0 bedeutet: jede MUST-Prüfung bestanden, null Sicherheitsbefunde, null Verhaltensabweichungen — ein einzeiliges CI-Gate.
mcp-proof plan python my_server.py # what would auto-baselining call, and why
mcp-proof record python my_server.py --fixtures fixtures/ # freeze the behavioural contract
mcp-proof replay --fixtures fixtures/ -- python my_server.py # fail on any drift
mcp-proof inspect python my_server.py --out baseline.json # freeze the contract surface
mcp-proof diff baseline.json current.json # BREAKING / ADDITIVE / METADATA, exit 1 on breakingSehen Sie den Unterschied in 60 Sekunden mit dem eingebauten Demo-Paar — einem sauberen Server und einem mit neun eingepflanzten Verstößen:
mcp-proof run python demo/good_server.py --fixtures demo/fixtures-good --out report-good.html # → SHIP-READY
mcp-proof run python demo/bad_server.py --out report-bad.html # → 5 MUST failures, 3 security findings📊 Echte Audits, echte Berichte
Ziel | Urteil | Bericht |
Offizieller MCP-Dateisystem-Server ( | ✅ SHIP-READY — 11/11 MUST-Prüfungen, 34/34 Replays sauber, 4 Schreib-Tools automatisch übersprungen | |
Server der modernen Ära 2026-07-28 (zero-dep, kreuzvalidiert gegen das offizielle v2-SDK) | ✅ SHIP-READY — Ära automatisch erkannt via | |
Demo-Server mit 9 eingepflanzten Verstößen | ❌ NOT SHIP-READY — 5 MUST-Fehler + 3 Sicherheitsbefunde, jeder einzelne mit Beleg erfasst | |
Wohlverhaltener Demo-Server | ✅ SHIP-READY — 16/16 MUST, voller Drei-Spur-Durchlauf inkl. Regressions-Baseline |
🔬 Die drei Spuren
Spur | Was sie beweist | Wie |
Protokollkonformität | Der Server implementiert MCP korrekt auf der Leitung — Ära-Aushandlung, JSON-RPC-Fehlersemantik, Tool-/Ressourcen-/Prompt-Oberflächen, Ausgabeschemas, Fähigkeitskonsistenz, Paginierung, stdout-Hygiene | Eine handgebaute JSON-RPC-Sonde beobachtet den rohen Bytestrom, sodass nichts geglättet wird |
Sicherheit & Hygiene | Tool-Metadaten sind sauber: keine injizierten Anweisungen, verstecktes Unicode, durchgesickerte Geheimnisse oder uneingeschränkte Ausführungsoberflächen | Deterministische statische Analyse, jeder Befund trägt seine MSSS-Kontroll-ID |
Verhaltensregression | Der Server tut immer noch genau das, was er bei der Lieferung tat | Aufzeichnung/Wiedergabe von provenienz-fingerabdruckbasierten goldenen Fixtures, Abweichungen nach Schweregrad bewertet |
Jede Spur speist einen Bericht — und der Bericht endet mit einer priorisierten Fix-Liste, sodass er zugleich als Sanierungsplan dient.
📡 Protokollunterstützung
Transporte | stdio ✅ · Streamable HTTP ✅ |
Oberflächen | tools ✅ · resources ✅ · prompts ✅ — in beide Richtungen fähigkeitsbewusst |
Moderne Ära | ✅ Konformitätsspur, automatisch erkannt — |
Legacy-Ära (Initialize-Handshake, | ✅ alle Spuren |
Regressionsspur | ✅ beide Ären — SDK-Session (Legacy) · Sonden-gestützte Session (modern) |
Die moderne Spur ist gegen das offizielle v2-SDK in beide Richtungen validiert: Der offizielle Client
übernimmt mcp-proofs handgebauten modernen Testserver via server/discover, und mcp-proof führt alle
drei Spuren vollständig grün gegen offizielle v2-SDK-Server auf beiden Transporten aus — stdio und
Streamable HTTP mit SSE-Antworten (scripts/crosscheck_modern_server.py).
Funktioniert mit Servern in jeder Sprache — mcp-proof spricht mit dem Prozess (oder der URL), nicht mit Ihrer Codebasis.
⚙️ CI in einem Schritt
- uses: YuCPbit/mcp-proof@v0.5.0
with:
server-command: python my_server.py
fixtures: fixtures/Der Job schlägt fehl, es sei denn, der Server ist ship-ready, und hinterlässt mcp-proof-report.html / .json /
.junit.xml / .sarif zum Hochladen. Bevorzugen Sie rohe Befehle? mcp-proof run … --junit r.xml --sarif r.sarif
plus mcp-proof diff ist dasselbe Gate.
🏗️ Auf der audit-sauberen Vorlage aufbauen
Bauen Sie einen Server statt einen zu prüfen? templates/server-starter/ ist ein fastmcp-Server, der dieses Audit standardmäßig besteht — eingeschränkte Eingabeschemas, korrekte Fehlersemantik, strukturierte Ausgabe, jede Praxis mit der Prüf-ID annotiert, die sie erfüllt. Kopieren, Tools implementieren, auditieren, mit dem Bericht ausliefern.
🖥️ Plattformen
macOS | ✅ entwickelt & vollständig validiert |
Linux | ✅ in CI ausgeführt |
Windows | ✅ in CI ausgeführt |
🗺️ Roadmap
Release | Fokus |
v0.3 | ✅ Dual-Ära-Protokollunterstützung, auf main ausgeliefert — Ära-Erkennung, 19 Prüfungen der modernen Ära, Dual-Ära-Regressionssessions, gegen das offizielle v2-SDK auf beiden Transporten validiert |
v0.4 | ✅ Fähigkeitsbewusste Ressourcen- & Prompts-Spuren · Vertrags-Manifest |
v0.5 | ✅ Versioniertes JSON-Berichtsmodell · JUnit- & SARIF-Ausgaben · wiederverwendbare GitHub Action ( |
v0.6 | ✅ Zwei-Phasen-Argumentsynthese ( |
Später | Optionale semantische Spur (LLM-bewertete Assertions) — geparkt, bis der deterministische Kern vollständig ist |
🔍 Einschränkungen
mcp-proof beweist, was deterministisch beweisbar ist, und sagt, was was ist:
Sicherheitsprüfungen decken die beobachtbare Protokoll- und Metadatenoberfläche ab. MSSS-Kontrollen, die Bereitstellungs-, Quell- oder Prozessnachweise benötigen, werden immer als manuelle Überprüfung gemeldet — niemals als bestanden.
Auto-Baselining klassifiziert Tools anhand einer konservativen Namens-/Beschreibungs-Heuristik. Überprüfen Sie die Überspringungsliste im fixtures-Manifest, bevor Sie einer gegen die Produktion aufgezeichneten Baseline vertrauen.
Semantische Korrektheit (bedeutet die Antwort das Richtige?) liegt bewusst außerhalb des deterministischen Kerns.
📄 Lizenz
MIT — die Taxonomie im MSSS-Konformitätsabschnitt folgt dem MCP Server Security Standard (CC BY-SA 4.0).
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP Spec Compliance MCP — audits any MCP server.json against the official Model Context Protocol
Scans remote MCP servers for protocol, security, and TLS issues; exposes scan tools via MCP.
MEOK MCP Test MCP — golden-file + schema-drift + tool-failure tests for any MCP server. Drop-in
Grade MCP servers A to F with the open behavioral litmus. npm: full toolset; hosted: lookups only.
Related MCP Servers
- AlicenseAqualityAmaintenanceA stdio MCP server that audits other MCP servers over the live protocol. It connects to any MCP target (stdio or HTTP), lints every tool's schema for agent-usability, then actually calls the tools with deliberately broken inputs to see how the server handles them, and returns a 0–100 conformance score with a per-dimension breakdown rendered as Markdown.66MIT
- AlicenseAqualityCmaintenanceA stdio MCP server that audits other MCP servers by linting their tool schemas and calling tools with malformed inputs to produce a 0–100 conformance score and Markdown report.6353 npmMIT
- AlicenseNot gradedqualityCmaintenanceAudits any MCP server against the official spec, providing HMAC-signed conformity reports.24 PyPIMIT
- AlicenseNot gradedqualityAmaintenanceAudits MCP server configurations for security risks including capability inventory, SSRF, prompt injection, and drift detection. Works in read-only mode and can also be used as an MCP server to let AI agents audit their own attack surface.411 PyPI4MIT