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/callecho 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/calltrigger-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