mcp-snoop · a real MCP session, browsable frame by frame
Wireshark for MCP — every JSON-RPC frame between the client and server-everything captured by the mcpsnoop transparent stdio shim.
What this session shows
- Handshake — the client's
initialize + its follow-up notifications/initialized, so the wire agreement (protocol version, roots / sampling / elicitation capabilities) is inspectable, not guessed.
- Tools contract — a single
tools/list exchange returns every tool the server actually advertises with its full inputSchema: this is the ground truth against "why isn't the model calling my tool?".
- Fast
tools/call — echo and get-sum return in milliseconds and let you cross-check that a result.content block really matches the schema the caller expects.
- Slow
tools/call — trigger-long-running-operation streams five notifications/progress updates and returns after ~5 s, tagged SLOW so latency is a visible frame in the timeline, not a mystery hang in your IDE.
- Server-initiated request — a
roots/list frame flows server→client mid-tool-call, proving MCP is bidirectional and letting you catch clients that silently drop such requests.
Session timeline
client → serverserver → clientnotificationslowmeta