YoyoLin008/mcreplay
开发工具把一次麦当劳中国 MCP 查询变成去掉真实值、可比对、可本地回放的结构样本,用于回归测试。
如果你在维护针对麦当劳中国 MCP 的解析器或适配器,McReplay 提供了一条具体路径:把一次真实响应冻结成结构样本,之后比对变化,并通过 stdio MCP 在本地回放,让回归测试不依赖线上服务。它的适用范围很窄,这正是价值所在;采用前先确认工具覆盖面和导入格式。
解决什么问题
原本解析器能跑,某天字段类型变了、活动字段消失了,或者文本返回为空,适配器就悄悄返回空结果。排查时只能再查一次线上服务,再凭记忆猜昨天和今天哪里不同。McReplay 把这一步改成:接收一次完整的 CallToolResult,删掉字符串、数字、布尔值等原值,保留字段结构和 MCP 协议标记,再把两个结构包比较,输出可定位的变化报告。最终得到的是可复现的测试产物,而不是一次性的手工对照。
有什么不同
核心机制是选择性去值和结构化差异比较。响应先经过校验,值被替换为占位符,字段结构与协议标记保留;compare 报告工具被删除、新增必填参数、字段消失、类型或封装变化,并分为破坏性、待复核和信息三类。另一条 replay 路径通过官方 Python MCP SDK 以 stdio 启动本地 MCP 服务,把已记录的样本送给适配器。
实际好处是适合 CI 的反馈:离线命令、明确的退出码(0 无变化、2 有破坏性风险、3 仅需人工复核、1 输入或执行失败)以及独立 HTML 报告 演示报告。代价是保真度换安全:值被替换意味着回放验证的是结构和解析,无法覆盖依赖真实值的业务逻辑。README 把范围限定在三个只读工具——now-time-info、campaign-calendar、list-nutrition-foods——所以它不是通用的 MCP mock 工具。作者称三项工具已于 2026-10-24 完成官方查询与本地回放验证 实测记录,这属于项目自述,并非独立验证。
谁值得试
适合:维护麦当劳 MCP Skill、解析器或演示应用的个人开发者,尤其是已经被一次结构或字段变化弄坏过,希望先保存样本、再比对、最后改适配器的人;也适合想基于记录结构搭一个小型 CI 检查的人。不适合:需要测试依赖真实值的行为、要给任意第三方 MCP 服务做 mock,或在 Windows 上开发的人——文档写明运行环境是 Python 3.11+,Linux 或 macOS。只想先看一眼的话,用合成样本的离线 mcreplay demo 即可,不需要官方凭证。
使用条件与边界
Python 3.11+ 以及 Linux 或 macOS 是硬性前提。本地回放要求客户端配置指向虚拟环境内的绝对路径;接收服务要求父目录已存在、输出文件尚不存在,一次接收进程只写一个新文件,要新观察就得换路径并重启。从官方服务接收还需要能访问 https://mcp.mcd.cn、使用 Streamable HTTP 和 Bearer Token,并且客户端要支持导入 SKILL.md 技能目录;环境变量展开方式因客户端而异,得按对应客户端文档配置 配置示例。
持续维护比安装更关键:输入输出放在本地 private/ 目录,每次导入使用新的输出文件名,凭证放在客户端的安全配置里而不是项目文件里 本地数据说明。比较规则有明确的适用范围 比较规则,导入格式与字段含义另有专门文档 集成文档。多客户端行为没有统一承诺,README 是按单个客户端来描述配置的。
HotRepo 点评
HotRepo 从 2026-10-24 开始追踪该项目,只记录到一个快照:2026-10-25 的 python 新项目榜上有 190 个总 star、第 15 名。这只是单日观察,不是每日增长序列,因此还不能判断热度能否持续。范围窄对一个开发者的工作流来说是自洽的,但在投入时间前,请先读比较规则的适用范围,并确认那三个已记录工具覆盖了你适配器实际解析的响应。
本文由 AI 根据项目 README 生成,更新于 2026年10月25日,以项目官方文档为准。