MCP 工具静默返假成功:一个值得命名的 bug 类型与检测法
Goaimoat · reddit · 2026-09-26
作者运营几十个基于 HTTP 的 MCP 数据查询服务,发现一类隐蔽 bug:上游异步 API 的慢查询会返回 run ID 而非结果,但响应里 ok: true,Agent 视角下调用「成功」,实际拿到的只是一张作业票据。
为什么难发现
- 无异常、无错误码,日志看起来一切正常
- 「调用一次不抛错」式的测试全部通过
- 使用量统计显示调用都在发生,实则调用方一无所获
修法与检测
- 修复很简单:包一层轮询,检测到 run handle 且未完成就轮询到完成(带超时)再返回真实结果
- 作者建议把断言从「没抛错」改成:Agent 拿到这个响应能不能完成任务? run ID、queued、pending、稍后再查都是「穿 200 外衣的失败」
- 团队写了十分钟脚本扫全部服务器,调用每个工具并标记含队列类字样的响应,又抓出两个同类 bug
作者观点:「MCP server 能跑」和「MCP server 有用」是两个标准——如果工具能递回一张收据还显得成功,目录收录和评分徽章都救不了它,Agent 试一次拿到垃圾就不会再调。
「编程与Agent」频道最新
- OpenAI 文档上线电话外呼能力,AI 可直接拨打号码代你通话 — imjustnewatai · 2026-09-26
- You.com 用 Jev 做重排层:token 省 3 倍、RTK 基准 84% 准确率 — PolarBearby · 2026-09-26
- 烧掉 2 亿 token 才换 3000 万有用代码:重度用户谈 max 模型体验 — gaganghotra_ · 2026-09-26
- 开发者实测 Opus 5.5:需大量提示词迭代,账单翻倍回退旧模型 — bindureddy · 2026-09-26
- 一条 API key 搞定:用 Muse 自建 Grok 连接器检索 X 信息 — vista8 · 2026-09-26
- Codex 还是 Claude Code?个人项目编码助手怎么选 — Over_Credit_9238 · 2026-09-26