mcpsnoop
MCP 透明代理调试工具,实时透视 AI 客户端与服务器之间的所有 JSON-RPC 工具调用
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
MCP 透明代理调试工具,实时透视 AI 客户端与服务器之间的所有 JSON-RPC 工具调用
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
你正在用 Cursor 写代码,让它调用一个 MCP 服务器上的工具。Cursor 显示"调用成功",但你等了半天,界面没有任何变化。去翻服务器日志,发现根本没收到请求——这个工具根本没被真正调用。
这是 MCP 开发中最让人生气的场景:官方提供的 MCP Inspector 根本看不到你的真实客户端(Cursor、Claude Code、Codex)到底发了什么,因为它作为独立客户端接入,永远在"旁观",而不是在"数据路径"上。
mcpsnoop 解决了这个结构性问题。 它是一个透明代理(Transparent Proxy),直接插入你的 AI 客户端和 MCP 服务器之间的数据通道,把每一次 JSON-RPC 调用实时"透视"到你的终端窗口里——就像 Wireshark 之于网络流量。

2024 年 11 月,Anthropic 发布了 Model Context Protocol(MCP),一个让 AI 客户端和服务器用统一协议通信的开放标准。协议设计精巧,但调试工具生态远远跟不上。
2025 年,MCP 势头爆发:Anthropic 将协议捐赠给 Linux Foundation 下的 Agentic AI Foundation,OpenAI、Google DeepMind、Microsoft、AWS 等相继原生支持。到 2026 年 3 月,MCP 月 SDK 下载量突破 9700 万次,活跃公共服务器超过 10000 个。
次级工具(调试、观测、测试)天然滞后于协议采纳曲线。mcpsnoop 正是这个时间窗口里的产物——由独立开发者 kerlenton 于 2026 年 7 月 4 日发布到 GitHub,当天登上了 Hacker News 的 Show HN 榜单。
mcpsnoop 的核心设计思路极为巧妙:用两个进程配合,一个在数据路径上透明转发流量,另一个实时渲染 UI。
Shim(垫片)模式以 mcpsnoop -- <真实服务器命令> 启动。你不需要修改服务器,也不需要修改客户端——只要在客户端的 MCP 配置里,把服务器启动命令"包裹"一层 shim:
[
"mcpServers",
["my-server", ["command", "mcpsnoop", "args", ["--", "node", "build/index.js"]]]
]
Shim 读取标准输入(stdin)作为来自客户端的请求,写入标准输出(stdout)发给服务器,同时把所有 JSON-RPC 帧镜像到 Unix Domain Socket 上,送给 Hub 进程处理。客户端完全感知不到这个中间层——对它们来说,shim 就是服务器。
Hub 进程(直接运行 mcpsnoop 不带参数)监听 Unix Socket,接收所有 Shim 的流量镜像,并以实时终端 TUI 渲染出来。TUI 用 Go 的 Bubble Tea 框架构建,Charm 团队出品的 TUI 组件库保证了交互体验。
如果 Hub 启动前已经有流量发生,Hub 会从磁盘回填历史会话日志,保证启动即能看到所有历史,不需要记住什么启动顺序。
对于使用 Streamable HTTP 的 MCP 服务器,mcpsnoop 还能以反向代理模式运行:
mcpsnoop http --target http://localhost:3000/mcp --listen :7000
HTTP 模式下,每个请求的 HTTP 状态码都直接显示在流里——哪怕响应本身不包含任何 JSON-RPC 消息,也能看到 401 认证挑战、403 跨域拒绝、202 异步确认等状态。
2026 年 7 月 28 日的修订还解决了另一个问题:某些服务器在收到请求后发现需要客户端提供数据,于是自己先发请求给客户端,让客户端重试。旧版 mcpsnoop 会把这些拆成多个独立调用——新版通过"重试链路还原"将重试和原始请求合并显示为一个完整调用。

会话导出与回放:任何捕获的会话都能导出为 .mcpsnoop 便携文件,用 mcpsnoop replay <session> 随时回放任意历史会话,不依赖原始服务器。
搜索与过滤:TUI 内置强大的搜索语法,支持按工具名、调用状态(pending/cancelled/error)、通信方向(c2s/s2c)、消息类型(req/res/notification)过滤。
协议特性标记:自动识别并标记已废弃的协议特性(如 Roots、Sampling、Logging),标注推荐替代方案。
Claude Desktop 一键包裹:直接运行 mcpsnoop wrap my-server 自动修改 Claude Desktop 配置文件,无需手动编辑 JSON。
mcpsnoop 用 Go 1.26 编写,代码结构清晰,模块化程度高:
| 模块 | 职责 |
|---|---|
internal/proxy | JSON-RPC 帧解析、协议处理 |
internal/hub | Unix Socket 收集器、会话合并去重 |
internal/store | 调用状态机(Pending/Completed/Failed/Cancelled)、请求-响应关联 |
internal/tui | Bubble Tea TUI 渲染、搜索过滤 |
internal/exporter | 会话导出/回放 |
internal/otlpsink | OpenTelemetry 追踪导出 |
主要依赖:
代码质量整体较高:单元测试覆盖核心路径,CI 流水线运行 lint + 静态分析(staticcheck),版本通过 GoReleaser 自动化跨平台交叉编译发布。
安装极简:直接下载对应平台的压缩包解压即可运行(Linux/macOS/Windows,amd64/arm64),或通过 go install github.com/kerlenton/mcpsnoop@latest,或 Homebrew / Nix / Winget。
上手门槛:低。内置 mcpsnoop demo 直接看演示,无需任何配置。真实使用只需要把配置文件里的服务器命令前加一层 mcpsnoop --,Claude Desktop 用户甚至一键搞定。
调试效果显著:当工具静默失败、通信 hang 住、参数不匹配时,mcpsnoop 能让你直接看到客户端实际发送了什么——这是官方 Inspector 完全无法提供的价值。
不支持 Docker 部署:没有提供 Dockerfile 或 docker-compose,对于习惯容器化的团队有一定门槛。
依赖 Unix Socket:Hub-Shim 通信依赖 Unix Domain Socket,不支持 Windows(但二进制提供了 Windows 版本,仅部分功能)。
非 Web 界面:纯终端 TUI,不支持远程浏览器访问,不适合团队共享调试视图。
对客户端有侵入性:需要在客户端 MCP 配置中修改服务器启动命令,零侵入式的"透明"有一定条件。
mcpsnoop 代表了 MCP 生态走向成熟的一个信号:当一个协议有了"透视眼"工具,说明它已经过了"能用就行"的阶段,开始进入精细化工程时代。
从工具定位看,mcpsnoop 填补了 MCP Inspector 的核心盲区——观察真实客户端行为,而非模拟流量。随着 MCP 在 AI Agent 架构中越来越普及,这类流量调试工具的需求会持续增长。对于 AI 开发者来说,mcpsnoop 是值得加入工具箱的必备调试神器。