Skip to main content

mcp-snoop

Transparent stdio interceptor for MCP JSON-RPC traffic.

Like strace, but for the Model Context Protocol. Wrap any MCP server and see every message in real time — tool calls, responses, errors. Zero dependencies.

$ mcp-snoop -- python3 my_server.py
mcp-snoop intercepting: python3 my_server.py
[03:14:22.847] →SERVER #1 initialize claude-desktop v1.0
[03:14:22.912] ←CLIENT #1 → server: my-server v0.1.0
[03:14:22.913] →SERVER notifications/initialized
[03:14:22.914] →SERVER #2 list tools
[03:14:22.916] ←CLIENT #2 → 8 tools
[03:14:23.201] →SERVER #3 call search_files(path="/tmp", pattern="*.py")
[03:14:23.847] ←CLIENT #3 → text: "['server.py', 'handler.py']"

mcp-snoop: 7 messages intercepted

Install

pip install mcp-snoop

Or run without installing:

uvx mcp-snoop -- python3 my_server.py

Usage

# Basic — logs all messages to stderr
mcp-snoop -- python3 my_server.py

# Verbose — print full JSON for each message
mcp-snoop --verbose -- node server.js

# Save trace to file
mcp-snoop --output trace.log -- uvx my-mcp-server

# No color (for CI/log files)
mcp-snoop --no-color -- python3 server.py

What you see

Each log line shows:

  • timestamp — HH:MM:SS.mmm UTC
  • direction — →SERVER (client→server) or ←CLIENT (server→client)
  • message ID — #1, #2, etc. (pairs requests with responses)
  • summary — parsed tool name, arguments, result preview

With --verbose, the full JSON follows.

Why

You're building an MCP server. Your agent keeps calling the wrong tool. Something's returning garbage. The MCP Inspector requires a browser. You want to script against the logs.

mcp-snoop gives you the raw protocol traffic, right in your terminal.

Use in Claude Desktop / cline / any MCP client

Replace your server command with mcp-snoop -- <your command>:

{
  "mcpServers": {
    "my-server": {
      "command": "mcp-snoop",
      "args": ["--output", "/tmp/trace.log", "--", "python3", "my_server.py"]
    }
  }
}

All traffic between the client and your server is now logged to /tmp/trace.log.

Relationship to other tools

Tool What it does
agent-friend Grades MCP schema quality (A+ to F)
mcp-patch AST security scanner for MCP servers
mcp-pytest pytest integration for testing MCP servers
mcp-snoop Stdio interceptor — debug live protocol traffic

License

MIT

Metadata

Release files for mcp-snoop 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-snoop 0.1.0
File Size Uploaded
mcp_snoop-0.1.0.tar.gz 5.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-snoop 0.1.0
File Interpreter ABI Platform
mcp_snoop-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 11.9 kB

Release files / mcp_snoop-0.1.0.tar.gz

Download URL mcp_snoop-0.1.0.tar.gz
Size 5.3 kB
Tags Source
SHA-256 checksum
How to use checksums
e841c74f261425262980802e58bc539e342a1dcbde05e25756ac683ca18a5849
BLAKE2b-256 checksum
How to use checksums
b535d538bbab5617826cffa8d6317101ae9f0d586f6cb84bcc1ce9fe5eae75c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / mcp_snoop-0.1.0-py3-none-any.whl

Download URL mcp_snoop-0.1.0-py3-none-any.whl
Size 6.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ccb12f19fc8cd9323272ee53a99ac9ecd082534c91a06ec96bb2bccbc7520823
BLAKE2b-256 checksum
How to use checksums
838815256dcaf96c73e96ae42b36278549babb22201702a2a5b2389521eac951
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page