Skip to main content
Glama
YuCPbit
by YuCPbit

🧾 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.

ci python checks transports license

English · 简体中文

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/cacheScope auf 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; --pdf für den Druck. Dasselbe versionierte Modell wird als --json (Schema v1), --junit für jede CI und --sarif fü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: readOnlyHint rettet schreibgeschützte Tools, die der Regex übermäßig blockieren würde, destructiveHint fängt Mutatoren, die er übersehen würde; nicht annotierte Tools fallen auf die konservative Heuristik zurück. mcp-proof plan zeigt genau, was die Auto-Baseline aufrufen würde und auf welcher Grundlage, bevor irgendetwas die Produktion berührt; --include-destructive und --edge-cases ermöglichen mehr.

  • 📋 Ein Vertrags-Diff für CI — mcp-proof inspect friert die bediente Oberfläche (Fähigkeiten + Tools + Ressourcen + Prompts, vollständig paginiert) in ein fingerabdruckbasiertes Manifest ein; mcp-proof diff klassifiziert jede Änderung als BREAKING / ADDITIVE / METADATA und 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.html

Stattdessen 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 breaking

Sehen 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 (@modelcontextprotocol/server-filesystem)

✅ SHIP-READY — 11/11 MUST-Prüfungen, 34/34 Replays sauber, 4 Schreib-Tools automatisch übersprungen

HTML · PDF

Server der modernen Ära 2026-07-28 (zero-dep, kreuzvalidiert gegen das offizielle v2-SDK)

✅ SHIP-READY — Ära automatisch erkannt via server/discover, 21/21 MUST inkl. Negativproben, 2/2 Replays

HTML

Demo-Server mit 9 eingepflanzten Verstößen

❌ NOT SHIP-READY — 5 MUST-Fehler + 3 Sicherheitsbefunde, jeder einzelne mit Beleg erfasst

HTML

Wohlverhaltener Demo-Server

✅ SHIP-READY — 16/16 MUST, voller Drei-Spur-Durchlauf inkl. Regressions-Baseline

HTML

🔬 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 2026-07-28 (server/discover, zustandsloses _meta)

✅ Konformitätsspur, automatisch erkannt — --era auto|modern|legacy

Legacy-Ära (Initialize-Handshake, 2024-11-05 → 2025-11-25)

✅ 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 inspect / diff mit Gate für brechende Änderungen · Annotations-zuerst-Aufrufplan

v0.5

✅ Versioniertes JSON-Berichtsmodell · JUnit- & SARIF-Ausgaben · wiederverwendbare GitHub Action (uses: YuCPbit/mcp-proof@v0.5.0) · Berichts-UI: klebrige Navigation, Anker, Filter

v0.6

✅ Zwei-Phasen-Argumentsynthese ($ref / allOf / const / pattern / format / Grenzen / multipleOf) · verifizierte schemaverletzende Negativproben (TOOL-07) mit minimalen Reproduktionsbeispielen

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).

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    A 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.
    6
    6
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Audits 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 PyPI
    4
    MIT