Zurück zu den Updates
New releaseJul 21, 2026

mcpsnoop v0.13.0

Wireshark für MCP. Ein transparenter Proxy, der jeden echten Tool-Aufruf zwischen Ihrem AI-Client und Ihren MCP-Servern live in Ihrem Terminal anzeigt.

Teilen

mcpsnoop

Wireshark für MCP. Ein transparenter Proxy, der jeden echten Tool-Aufruf zwischen deinem KI-Client und deinen MCP-Servern live in deinem Terminal anzeigt.

CI Go Reference MIT Marketplace

mcpsnoop demo

Das Problem

Der offizielle MCP Inspector verbindet sich als eigener Client, sodass er nie sieht, was dein Client (Cursor, Claude Code, Codex) tatsächlich an deinen Server sendet. Und alles, was auf eine eingehende Anfrage wartet, kann den Aufruf nicht anzeigen, den das Modell nie gemacht hat – oder mit den falschen Argumenten. Wenn ein Tool stillschweigend nicht aufgerufen wird, Fähigkeiten nicht übereinstimmen oder ein Aufruf einfach hängt, bleibt dir nur das Durchwühlen von Logs und Raten.

mcpsnoop sitzt stattdessen im echten Datenpfad. Umschließe deinen Server-Befehl damit und beobachte jeden JSON-RPC-Frame live, während dein echter Client und Server miteinander sprechen.

In CI

Diese Seite ist auch der Eintrag für die mcpsnoop GitHub Action, also hier das Ganze. Sie prüft eine aufgezeichnete Sitzung, meldet jeden Befund als Code-Scanning-Alert und lässt den Job bei dem scheitern, worauf du es eingestellt hast.```yaml permissions: security-events: write contents: read

steps:

Pin die gewünschte Version fest. Die neueste findest du auf der
[Releases-Seite](https://github.com/kerlenton/mcpsnoop/releases). Jede Eingabe,
was die Exit-Codes bedeuten und wie du es ohne die Action verdrahtest, steht
weiter unten in [The GitHub Action](#the-github-action).

## Schnellstart

Sieh es dir sofort an, ohne etwas einrichten zu müssen.```bash
mcpsnoop demo

Um es wirklich zu nutzen, binden Sie Ihren Server in die MCP-Konfiguration Ihres Clients ein.```json { "mcpServers": { "my-server": { "command": "mcpsnoop", "args": ["--", "node", "build/index.js"] } } }

Alles nach `--` ist der Befehl, der normalerweise deinen Server startet. Tausche ihn gegen das aus, was du bereits verwendest, wie `python server.py`, `npx -y @scope/server` oder eine kompilierte Binärdatei.

Bei Claude Desktop musst du diese Änderung nicht von Hand vornehmen.```bash
mcpsnoop wrap my-server     # route my-server through mcpsnoop
mcpsnoop unwrap my-server   # put it back

wrap findet claude_desktop_config.json, kopiert es beim ersten Mal nach claude_desktop_config.json.mcpsnoop.bak und überschreibt nur den Eintrag dieses einen Servers, sodass deine Formatierung und alle anderen Server unangetastet bleiben. Innerhalb des überschriebenen Eintrags erscheinen die Schlüssel wieder in alphabetischer Reihenfolge. unwrap stellt die Datei wieder her und entfernt das Backup, sobald kein Server mehr gewrappt ist. Starte Claude Desktop nach beiden Vorgängen neu, da MCP-Server nur einmal beim Start gestartet werden.

Verwende dann deinen Client wie gewohnt und öffne die UI.```bash mcpsnoop

Keine Flags, keine Socket-Pfade, keine Startreihenfolge, die man sich merken muss. Der Shim und die UI finden
sich von selbst, und die UI füllt vergangene Sitzungen von der Festplatte nach.

Für einen streambaren HTTP-Server führen Sie mcpsnoop als Reverse-Proxy aus.```bash
mcpsnoop http --target http://localhost:3000/mcp --listen :7000

Der HTTP-Status jeder Antwort erscheint im Stream, sodass eine Antwort, die keine eigene JSON-RPC-Nachricht enthält, dennoch als sichtbarer Frame statt als Nichts erscheint: die 401-Herausforderung, die 403 bei einer abgelehnten Origin, die 202, die eine Benachrichtigung bestätigt, und die 502, wenn das Ziel überhaupt nicht erreichbar ist. Ein WWW-Authenticate-Header einer 401 wird wörtlich beibehalten und im Inspektor angezeigt, da er das Authentifizierungsschema und die Ressourcenmetadaten für den nächsten Schritt benennt. Filtere nach Status mit status:401 in der TUI oder nach jedem Fehler mit status:err. Ein 4xx- oder 5xx-Status gilt als Fehler, sodass ein standardmäßiger mcpsnoop check-Lauf dabei fehlschlägt.

Keinen eigenen Server? Probier es real aus gegen einen veröffentlichten Testserver, gesteuert von deinem eigenen Client. Um eine Sitzung im Nachhinein zu untersuchen, siehe frühere Sitzungen aus Logs überprüfen.

Konfigurationsdatei

Wenn du dieselben Shim-Flags projektweit wiederverwendest, lege sie in einer .mcpsnoop.toml-Datei im aktuellen Arbeitsverzeichnis ab.```toml label = "filesystem" trace-file = "trace.jsonl" redact-secrets = true redact-key = "token,authorization" redact-value = "sk-[A-Za-z0-9]+" redact-path = "$.params.arguments.password" no-trace = false

Wiederholen Sie `redact-key`, `redact-value` und `redact-path` jeweils in einer eigenen Zeile, um
mehrere Einträge von jeder Art hinzuzufügen.

Das sind alle Schlüssel, die es unterstützt.

Die Datei wird nur im aktuellen Arbeitsverzeichnis gesucht, nicht in übergeordneten
Verzeichnissen.

Explizite Befehlszeilen-Flags überschreiben Werte aus der Konfigurationsdatei.

## Befehle

| Befehl | Funktion |
|---|---|
| `mcpsnoop -- <server>` | einen Stdio-Server als transparenten Shim umschließen |
| `mcpsnoop` | die Live-TUI öffnen |
| `mcpsnoop http --target <url>` | einen Streamable-HTTP-Server proxieren |
| `mcpsnoop export` | eine Sitzung als json, html, text, har oder otlp rendern |
| `mcpsnoop check` | CI bei Fehlern, ungültigen Frames, Warnungen, Routing-Abweichungen, hängenden Aufrufen, verspäteten Ergebnissen oder einem Latenzbudget fehlschlagen lassen |
| `mcpsnoop baseline` | vertrauenswürdige Tool-Definitionen prüfen, akzeptieren oder zurücksetzen |
| `mcpsnoop diff` | Tools und Aufrufe über zwei erfasste Sitzungen hinweg vergleichen |
| `mcpsnoop open` | eine gespeicherte Sitzung in der TUI öffnen |
| `mcpsnoop inventory` | jeden Server auflisten, der auf diesem Rechner über mcpsnoop gelaufen ist |
| `mcpsnoop stats` | alle gespeicherten Erfassungen zu einer Zeile pro Server und Tool zusammenfassen |
| `mcpsnoop prune` | gespeicherte Sitzungsprotokolle löschen, die älter als ein Grenzwert sind |
| `mcpsnoop wrap <server>` | einen der Server von Claude Desktop über mcpsnoop leiten |
| `mcpsnoop unwrap <server>` | den Eintrag dieses Servers wieder in den ursprünglichen Zustand versetzen |
| `mcpsnoop remote <user@host>` | den SSH-Tunnel-Befehl ausgeben |
| `mcpsnoop demo` | eine skriptgesteuerte Sitzung abspielen |

Führen Sie `mcpsnoop help` für die vollständige Liste aus, oder `mcpsnoop help <command>` für die Flags eines einzelnen Befehls.

## Vergleich

Kategorien