网易首页 > 网易号 > 正文 申请入驻

15755/15977:一个开源工具给MCP服务器做全身体检

0
分享至

一个Agent靠不靠谱,取决于它调用的工具。但大多数MCP服务器,从来没被任何东西检查过。


工具没写描述,永远不会被选中。参数写成 str = None,反而拒绝了它自己声明的默认值。写入工具回一句"Successfully wrote",实际上什么都没写。

mcp-doctor 就是为了抓这些坑而生的。它已经长成一个覆盖MCP服务器完整生命周期的开源工具:上线前、每个PR里、以及运行中的Agent内部。

1. 上线之前

装法很简单:pip install mcp-server-lint,然后 mcp-doctor path/to/your/server。

Lint会读取Python、TypeScript和Go源码,不运行代码,把质量和安全分开打分。这样做的用意很直接:一个文档写得漂亮的服务器,没法用一个混合分数把安全漏洞藏起来。

质量项覆盖的是那些真正会让Agent翻车的问题:工具缺描述、参数没文档、None默认值拒绝null、stdio上乱写stdout、两个工具的描述让人分不清区别。

安全项覆盖:工具投毒话术、动态exec、易受SSRF攻击的请求、不安全的反序列化、硬编码密钥,以及说谎的只读注解。

--fix 只应用不需要判断的修复:可空的None默认值、缺失的Args条目、裸except。在三个仓库上,针对同一个bug手写PR,它产出的类型改动完全一致。

--diff-against 用来对比两个版本,标出被删掉的工具、被删掉的参数、或者新增的必填参数——这些改动会悄悄弄坏一个已经学会旧结构的Agent。

2. 每个PR里

GitHub Action(uses: vishalhabib99/mcp-doctor@v1)会在每个PR下评论,在它改动的行上给出一键修复建议,还能让分数跌破阈值的PR直接失败。pre-commit钩子则在提交落地前跑同一套检查。

3. Agent内部:guard

静态检查看不出一次调用到底有没有成功。mcp-doctor guard 把任意stdio MCP服务器跑在实时检查后面,每条消息原样通过;当某个"成功"并不是成功时,它加上一条Agent能读到的警告。

它会标记这些情况:

  • 写入报告成功,但对应的读取找不到它
  • schema里没有的参数,被服务器悄悄丢掉
  • 等待提前返回,却声称等满了全部时间
  • 错误或拒绝被当成成功答案返回、空读取、破坏工具自身outputSchema的输出
  • 疑似提示注入泄露:一次调用读到的密钥即将被另一次调用发出去,或者一个仓库的文本在会话读过外部内容后即将被写进另一个仓库

同一个坏掉的 write_file、同一个提示词,在Claude Code里:没有guard时,回答是"Yes, the file was saved.";有guard时,回答是"I can't confirm the file was saved."

对编码Agent,mcp-doctor-guard 的Claude Code插件把同样的思路用在Agent自己的工具上(shell、文件写入、网页抓取)。一次用Haiku在bypassPermissions下的实跑中,没有guard的Agent读了一个网页,然后埋了个 .git 钩子,把 .env 里的token发给了服务器。有guard时,两个动作都被拦下,Agent也没再尝试别的路径。

4. 在哪儿都能用

  • 浏览器里:粘贴仓库、npm或PyPI名字。真正的mcp-doctor在页面里跑(Pyodide),不上传也不执行任何东西
  • GitHub issue:开一个扫描请求,机器人回复报告
  • Claude Code插件:说一句"check my MCP server",Claude扫描、解释每条发现,并在你同意后修复它能修的
  • fix-upstream:一个把发现变成带测试PR的Agent,由人review后发出

它凭什么可信

召回率是公开的:在5个框架的805个真实服务器上,它找到了15977个工具中的15755个,每一次漏报都列在 docs/coverage.md 里。

mcp-doctor自己身上有113个bug,都是拿它在真实服务器上跑出来的,全部已修(有构建日志)。外部仓库的维护者合并了48个修复,分布在46个仓库里,包括langflow和ha-mcp。第一个外部CI用户是jupyter-mcp-server,其维护者主动要求后,当天就加上了这个Action。

边界在哪

guard目前只覆盖stdio服务器,还不支持HTTP;只有当服务器有对应的读取工具时,它才能确认一次写入;它匹配的是被复制的文本,所以改写过措辞的泄露可能溜过去。它是模型被骗时的一张网,不是最小权限token的替代品。

拿它跑跑你的服务器,然后告诉它哪里判断错了:github.com/vishalhabib99/mcp-doctor

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
小杨哥能换号,东北雨姐不能。差的不只是罚了多少钱

小杨哥能换号,东北雨姐不能。差的不只是罚了多少钱

小椰的奶奶
2026-10-18 04:23:26
悲催!心脏三院院士在西安参会猝死,满屋同行无力施救,网友:这是自己刀,削不了自己把儿吗

悲催!心脏三院院士在西安参会猝死,满屋同行无力施救,网友:这是自己刀,削不了自己把儿吗

火山詩话
2026-10-14 20:21:36
张本智和接受日媒采访:下次再战中国队,日本胜出的可能性也很高

张本智和接受日媒采访:下次再战中国队,日本胜出的可能性也很高

失宠的小野猪
2026-10-17 17:05:50
1980年,邓小平说:毛主席的错误,要毫不含糊地批评,但要实事求是

1980年,邓小平说:毛主席的错误,要毫不含糊地批评,但要实事求是

帝哥说史
2026-10-11 16:14:43
演员童瑶发文告别

演员童瑶发文告别

背包旅行
2026-10-16 11:55:16
CBA首轮!辽宁男篮VS山东男篮,赛前带来辽宁男篮赵继伟、库珀、段睿骐以及山东男篮王岚钦最新消息

CBA首轮!辽宁男篮VS山东男篮,赛前带来辽宁男篮赵继伟、库珀、段睿骐以及山东男篮王岚钦最新消息

凯丰侃球
2026-10-18 00:17:04
从海参崴到图瓦到库页岛,俄罗斯对中国态度发生了逆转?心态变了

从海参崴到图瓦到库页岛,俄罗斯对中国态度发生了逆转?心态变了

玫瑰与花海
2026-10-16 00:53:56
3-1!6万多球迷现场见证,中超第2豪取3连胜,成都蓉城无缘提前夺冠

3-1!6万多球迷现场见证,中超第2豪取3连胜,成都蓉城无缘提前夺冠

足球狗说
2026-10-17 20:56:01
因为一条朋友圈,抖音和京东吵起来了!抖音起诉京东员工,京东声明将帮员工反诉

因为一条朋友圈,抖音和京东吵起来了!抖音起诉京东员工,京东声明将帮员工反诉

都市快报橙柿互动
2026-10-17 09:33:06
大马丁头部重伤送医,出击时与争顶的布兰斯韦特发生碰撞

大马丁头部重伤送医,出击时与争顶的布兰斯韦特发生碰撞

懂球帝
2026-10-17 22:44:20
浙江队两红牌,全员帮助克雷桑与瓦科5比0胜,发型是硬伤

浙江队两红牌,全员帮助克雷桑与瓦科5比0胜,发型是硬伤

铿锵格斗
2026-10-17 22:42:40
90%的家长都搞错了:频繁出行,正悄悄毁掉孩子专注力

90%的家长都搞错了:频繁出行,正悄悄毁掉孩子专注力

辣妈当小小
2026-10-08 18:10:35
对越作战打响前夕,新疆军区司令员刘震突然被免职,政委连夜向中央密报;直到档案解密后人们才看明白:南方正准备出兵,北方早已提前布防

对越作战打响前夕,新疆军区司令员刘震突然被免职,政委连夜向中央密报;直到档案解密后人们才看明白:南方正准备出兵,北方早已提前布防

人生录
2026-10-17 14:42:48
美国“快餐之王”在中国翻红:门店超过1200家,同店销售额双位数增长

美国“快餐之王”在中国翻红:门店超过1200家,同店销售额双位数增长

火星人杂谈
2026-10-11 20:15:31
正式签约!张镇麟完成新签约,更换东家

正式签约!张镇麟完成新签约,更换东家

兰亭墨未干
2026-10-17 09:07:51
诈骗2.7万亿的缅北电诈老大,竟然是女星赵薇的小叔子,真的吗?

诈骗2.7万亿的缅北电诈老大,竟然是女星赵薇的小叔子,真的吗?

铜臭的历史味
2026-10-16 12:08:19
美国总统特朗普公开表示:我仍然可以对美国前总统克林顿、前国务卿希拉里、前总统奥巴马展开刑事调查,我掌握了有关这三人的“大量信息”

美国总统特朗普公开表示:我仍然可以对美国前总统克林顿、前国务卿希拉里、前总统奥巴马展开刑事调查,我掌握了有关这三人的“大量信息”

吉刻新闻
2026-10-17 10:18:00
随着辽宁铁人4-0,产生3大不争事实,安以恩替补双响,保级形势大好

随着辽宁铁人4-0,产生3大不争事实,安以恩替补双响,保级形势大好

老牛体育解说
2026-10-17 22:32:38
小菲带玥儿湾湾逛街,玥儿和筱梅关系好,筱梅妈妈幸福抱小外孙!

小菲带玥儿湾湾逛街,玥儿和筱梅关系好,筱梅妈妈幸福抱小外孙!

孤芳自赏的小李
2026-10-18 01:47:49
铁了心对付中国?暴跌58%,俄罗斯大幅加税,中国汽车出口骤降

铁了心对付中国?暴跌58%,俄罗斯大幅加税,中国汽车出口骤降

听风喃
2026-10-17 08:00:36
2026-10-18 05:48:49
野生运营
野生运营
懂点产品,懂点AI,正在努力给平淡日子搞点新花样。
192文章数 97关注度
往期回顾 全部

科技要闻

刘煜辉:99%的黄金分析师报告一钱不值

头条要闻

普京:包围并消灭2000人的乌军集群 这非比寻常

头条要闻

普京:包围并消灭2000人的乌军集群 这非比寻常

体育要闻

升级版杨瀚森再闯难关:当上开拓者第三中锋还得拼

娱乐要闻

庾澄庆罕谈前妻 撕下伊能静仅剩的体面

财经要闻

新一轮大跌源头,找到了!

汽车要闻

星瑞L PLUS限时售价10.97万元起 开启智混3L时代

态度原创

数码
房产
旅游
健康
教育

数码要闻

超七成笔记本OLED被三星拿捏!中国面板厂开始反击了

房产要闻

利好密集落地+现房好房断档,广州楼市买入窗口,正在倒计时!

旅游要闻

打造移动旅游驿站 满足不同群体需求

看着很健康的人,怎么会突然猝死?

教育要闻

史上最难逃课的学一下,这样的学校你喜欢吗?

无障碍浏览 进入关怀版