The MCP debugging tools I found were all *interactive* — TUIs and web UIs you drive yourself to call tools. None of them help when the bug only reproduces inside Claude Desktop,
Cursor, or CI. You need to see what actually flowed on the wire during a real session.
mcp-scope is passive. You prepend `mcp-scope capture --` before your server command and it silently records every JSON-RPC frame between client and server to a `.jsonl` file. Then
offline:
- `view` — pipe-friendly pretty-printer with grep-style filters, plus `--follow` for live tail
- `tui` — interactive two-pane explorer (bubbletea)
- `stats` — per-method p50/p95/p99/max latency + error counts
- `diff` — schema diff across `tools/list` / `resources/list` / `prompts/list` between two captures, classifies every change as BREAKING / SAFE / INFO, **exits 1 on breaking
changes** (drop into CI to gate server upgrades)
- `check` — JSON-RPC protocol validator with CI exit codes
- `replay` — fire recorded calls at a different server for regression testing
Single static Go binary. No Node, no Python, no browser, no localhost port. Works with stdio, SSE, and streamable HTTP.
Repo: https://github.com/SSanju/mcp-scope
Install: `brew tap SSanju/mcp-scope && brew install mcp-scope` or grab a binary from releases.
Would love feedback — especially from anyone who's debugged a flaky MCP integration in production.