内容
# mcp-snoop
**用于MCP JSON-RPC流量的透明标准输入输出拦截器**
类似于 `strace`,但用于模型上下文协议。包装任何MCP服务器并实时查看每个消息 — 工具调用、响应、错误。零依赖。
```
$ mcp-snoop -- python3 my_server.py
mcp-snoop 拦截中: python3 my_server.py
[03:14:22.847] →服务器 #1 初始化 claude-desktop v1.0
[03:14:22.912] ←客户端 #1 → 服务器: my-server v0.1.0
[03:14:22.913] →服务器 notifications/initialized
[03:14:22.914] →服务器 #2 列出工具
[03:14:22.916] ←客户端 #2 → 8 个工具
[03:14:23.201] →服务器 #3 调用 search_files(path="/tmp", pattern="*.py")
[03:14:23.847] ←客户端 #3 → 文本: "['server.py', 'handler.py']"
mcp-snoop: 拦截了 7 条消息
```
## 安装
```bash
pip install mcp-snoop
```
或在不安装的情况下运行:
```bash
uvx mcp-snoop -- python3 my_server.py
```
## 用法
```bash
# 基本 — 将所有消息记录到标准错误输出
mcp-snoop -- python3 my_server.py
# 详细 — 打印每个消息的完整 JSON
mcp-snoop --verbose -- node server.js
# 将跟踪信息保存到文件
mcp-snoop --output trace.log -- uvx my-mcp-server
# 无颜色(用于 CI/日志文件)
mcp-snoop --no-color -- python3 server.py
```
## 您会看到的内容
每行日志显示:
- **时间戳** — `HH:MM:SS.mmm` UTC
- **方向** — `→服务器`(客户端→服务器)或 `←客户端`(服务器→客户端)
- **消息 ID** — `#1`、`#2` 等(将请求与响应配对)
- **摘要** — 解析的工具名称、参数、结果预览
使用 `--verbose` 时,会显示完整的 JSON。
## 为什么
您正在构建一个 MCP 服务器。您的代理不断调用错误的工具。某些工具返回了错误数据。MCP 检视器需要一个浏览器。您想根据日志进行脚本编写。
`mcp-snoop` 为您提供原始协议流量,直接在您的终端中。
## 在 Claude Desktop / cline / 任何 MCP 客户端中使用
将您的服务器命令替换为 `mcp-snoop -- <您的命令>`:
```json
{
"mcpServers": {
"my-server": {
"command": "mcp-snoop",
"args": ["--output", "/tmp/trace.log", "--", "python3", "my_server.py"]
}
}
}
```
客户端和您的服务器之间的所有流量现在都记录到 `/tmp/trace.log`。
## 与其他工具的关系
| 工具 | 功能 |
|------|-------------|
| [agent-friend](https://github.com/0-co/agent-friend) | MCP 模式质量评分(A+ 至 F) |
| [mcp-patch](https://github.com/0-co/mcp-patch) | MCP 服务器的 AST 安全扫描器 |
| [mcp-pytest](https://github.com/0-co/mcp-test) | 用于测试 MCP 服务器的 pytest 集成 |
| **mcp-snoop** | 标准输入输出拦截器 — 调试实时协议流量 |
## 许可证
MIT