153 个 MCP 服务,我把工具数一个个数了一遍

0 阅读6分钟

153 个 MCP 服务,我把工具数一个个数了一遍

我最开始只想弄明白一件事:一个「正常」的 MCP 服务,大概挂多少个工具。为了这个问题,我打开了那份 2,601 格的兼容矩阵,一行一行往下翻。翻完之后,答案和我预想的差得有点远。

一句话结论

报有工具数的服务是 103 个,中位 9、p90 40、最大 628;另外 50 个报的是 0,在 241 个真机格里一次没通过。通过率最高的那一档是 21–50(43.0%),不是工具数最多的 101 以上(30.0%)。

怎么算的

项我的做法
数据源站点 mcp-data.json,读 servers[].toolCount 和 servers[].checks[]
快照时间2026-11-02T19:53:24Z,北京时间 11-03 03:53,mode=full
样本161 条记录,删掉 8 条 isFixture,剩 153 条
分档按 toolCount 切六段,外加一段零工具
判定只认 usable=pass 且 evidence=真机 的格子

口径边界

下面几条是我一开始搞错、后来改过来的,先写在这里。

  1. 中位 9 的分母是 103,不是 153。我第一遍拿 153 去除,算出来是另一个数,白忙了半小时。
  2. toolCount 是服务自己报的,不是我一格格数出来的条目。真要逐条核,得给 153 个服务各跑一遍 tools/list,这次没做。
  3. 那 50 个零工具的服务不是都坏了。整份数据里 692 格写的是「这个平台用不了它」,只有 13 格写「它没有对外提供任何工具」。
  4. 2,601 格里只有 756 格是真机,1,248 格是文档推断,597 格是协议实测。这三类不能混着算。
  5. 快照是 11-02 的,我写这篇是 11-11,中间隔了 9 天。

主体数据

指标值
报数服务103
零工具服务50
最小 / 中位 / p90 / 最大1 / 9 / 40 / 628
≥50 / ≥100 个工具7 / 4
工具数区间服务真机格通过通过率
1–5371856937.3%
6–10211052826.7%
11–2018902022.2%
21–50201004343.0%
51–100315320.0%
101 以上420630.0%
0(零工具)5024100%

数据说明:数完之后最意外的四件事

一、中位只有 9,我原以为会是三十几

我平时的印象里,一个 MCP 服务怎么也得有十几个工具才像样。结果一半的报数服务不超过 9 个,1–5 档就占了 37 个,是六个非零档里最大的一档。

再看分位:p90 是 40,意思是九成服务在 40 个以内。这条分布不是「大家都有几十个」,而是「大多数只有个位数,少数几个特别长」。

二、628 那个数字,我盯着看了很久

adbutler__mcp-server 报的是 628 个工具。第二名的 debugbundle__mcp 是 139,第三、第四是 116 和 108。628 是第二名的约 4.5 倍,而第二名到第四名只差 31。

同样是「一个服务」,一个报 1 个,一个报 628 个。我一开始以为数据出错了,回去看了字段才明白:协议只规定每个工具要长什么样(名字、描述、输入 schema),没规定一个服务应该放几个。贴着接口逐个映射的,条目自然多;把多步封成一个入口的,两三个也够。

三、最意外的是通过率不跟着工具数走

这是我最没预料到的一段。我原本的假设是「工具少的好通过,工具多的容易在某个宿主上翻车」,曲线应该是往下走的。

实际是 37.3% → 26.7% → 22.2% → 43.0% → 20.0% → 30.0%,先降、再升、再降、再升。最高点落在 21–50 档,比 1–5 档还高。说实话我试着找了几种解释,比如「中等规模的服务维护得更细」,但数据里没有任何一列能支撑这个说法,所以这句只是我的猜测,不能当结论。

能确定的只有最后一行:工具数为 0 的 50 个服务,241 个真机格,0 通过。

四、17 个宿主报回来的数字,一模一样

我本来以为宿主会按自己的能力裁剪工具数,比如「这个平台只认前 40 个」。于是我把每个服务在 17 个宿主上的 toolCount 摊开对比,结果 0 个服务出现差异——一个都没有。

这说明宿主根本不改这个数字。它能改的是「能不能调」,也就是 usable。整份数据里,因为工具数被判不可用的只有 3 格,note 写着「工具数超过该宿主约 40 / 约 100 个上限,需精简后可用」,对应 628 的两格和 108 的一格。

我踩过的一个坑就在这:一开始我把「17 个宿主数字一致」读成了「宿主对工具数没有限制」,这两件事不是一回事。前者说的是字段来源单一,后者要看那 3 格 note,而那 3 格恰好是反例。

这份复盘本身的局限

第一,我只核了统计过程,没核每一条自报数据。628 是不是真有 628 个可调工具,这份快照回答不了。

第二,真机格只有 756 个,分到六档后最少的一档只剩 15 格。15 格里 3 个通过就是 20%,一个格子的进出就能改写结论。

第三,我只有一天的数据,看不出谁在加工具、谁在删。趋势这件事,这次没法谈。

第四,档边界是我自己切的。换成三档,43.0% 那个峰值大概率会消失。

数据复核

想自己核一遍的话,路径很短:先按 isFixture 删 8 条,得到 153;再看 toolCount > 0 的 103 个;最后只留 evidence=真机 的格子算 usable。

三个数记住就行:153、103、756。站内 MCP 兼容矩阵页可以按 toolCount 字段逐条对照,页面上同一格的结果与本文用的是同一份快照。

适合与不适合

适合:和我一样好奇「一个服务该有多少工具」的人;要引用中位数、p90 这类分位数写材料的人;想验证「工具多是不是更容易通过」的人。

不适合:想找某个服务能不能用的人,这里只有聚合分布;需要最新数据的人,这是 9 天前的快照;想拿 628 当标杆的人,它是个例,不是水位线。

标签:MCP、DeepSeek Harness、第一人称复盘、工具数分布

本文数字由我逐格核对,数据来源于站点 MCP 兼容矩阵快照(2026-11-02)。