一个远程 MCP server 暴露多少个工具?中位数是 7 个
探测器读一个 server 的工具列表时,最先知道的就是回来了多少个工具。在整个目录里,这个数从 1 到至少 1,000。这篇文章看的是完整的分布,用的是每个 server 最近一次的列表。
统计了谁
2026 年 10 月 8 日,我们的列表上有 2,982 个远程 MCP endpoint。其中 1,903 个我们至少不带凭据读到过一份工具列表,这 1,903 个就是本文的范围。其余 1,079 个从没给过我们列表:
| 为什么没有工具列表 | endpoint 数 |
|---|---|
| server 先要密钥 | 959 |
tools/list 的应答不是可用的 JSON-RPC 结果 |
112 |
| 其他:超时、超过我们 2 MiB 的响应上限、被限流,或域名解析失败 | 8 |
这 1,079 个不是「零个工具」的 server。它们有多少工具,我们不知道。第一行的情况见每 10 个公开的 MCP 端点里,有 3 个先要密钥。
这 1,903 个 server,每个都取我们最近一次读到的列表。大多数是最近一两天读到的;有 29 个已经超过一周,因为那之后 server 不再应答,或者开始要密钥。
分布
| 最近一次列表里的工具数 | server 数 | 占比 |
|---|---|---|
| 0 | 0 | 0% |
| 1 | 79 | 4% |
| 2 到 5 | 683 | 36% |
| 6 到 10 | 547 | 29% |
| 11 到 20 | 334 | 18% |
| 21 到 50 | 178 | 9% |
| 51 到 100 | 56 | 3% |
| 101 到 999 | 25 | 1% |
| 1,000 及以上 | 1 | 不到 0.1% |
中位数是 7 个工具。四分之一的 server 不超过 4 个,四分之三不超过 13 个,十分之九不超过 26 个。762 个 server(40%)只有 5 个或更少;28 个有 100 个或更多。平均数是 14,被长尾拉高了:1,903 份列表加起来一共 26,579 个工具。
统计页用更粗的分组展示同一个分布。它每天重算一次,所以可能和这里的数字差几个 server。
零意味着什么
零的意思是 server 对 tools/list 回了一个有效的空列表。这和 server 根本没有应答不一样,后者没有任何计数。最近一次的列表里没有零。8 月以来我们存下的全部列表里,只有一份是空的:某个 server 的第一次读取是空列表,12 小时后它列出了两个工具。
那个 1,000
最大的计数正好是 1,000,来自一个 server,而这不是我们这边的上限。探测器会把收到的应答里的每个工具都存下来,计数就是 server 发来的列表长度。探测器不做的,是继续往下要。MCP 的 tools/list 结果可以带一个 nextCursor,表示还有下一页,而我们只读第一页。这个 server 那份 1,000 个工具的应答带了游标,所以它真实的工具数是 1,000 或更多。
另外两个 server 也带了游标,第一页分别是 50 个和 60 个工具。它们分别在上表 21 到 50 和 51 到 100 两行里,真实数量可能更多。除此之外,本文其余的最近一次列表都没有带游标;只是有 22 个 server 的最近一次列表早于 9 月 29 日,而我们关于游标的记录从那天才开始,所以这 22 个说不准。列表分页时探测器还有哪些不同做法,见探测器有时会扣下的那一次调用。
描述不会变短
我们还量了每个工具附带的描述。26,579 个工具里只有 13 个没有描述。描述长度的中位数是 254 个字符,而且几乎不随 server 的工具数变化:
| 最近一次列表里的工具数 | server 数 | 每个工具描述长度的中位数 | 每个 server 描述总长的中位数 |
|---|---|---|---|
| 1 | 79 | 337 | 337 |
| 2 到 5 | 683 | 241 | 911 |
| 6 到 10 | 547 | 227 | 2,104 |
| 11 到 20 | 334 | 287 | 4,497 |
| 21 到 50 | 178 | 287 | 10,017 |
| 51 到 100 | 56 | 262 | 21,852 |
| 101 及以上 | 26 | 217 | 57,300 |
长度以字符计。每个工具的描述长度差不多,所以总文字量随工具数增长。6 到 10 这一行的 server,描述总长的中位数约 2,100 个字符;超过 100 个工具的 server 约 57,300 个,这还没算输入 schema。
实际意味着什么
给 agent 开发者:多数 server 都不大。超过三分之二的 server 不超过 10 个工具,描述加起来几千个字符。但长尾很长。一个 agent 如果把一个超过 100 个工具的 server 的全部定义都载入,按中位数算,光描述就有约 57,000 个字符,还不算 schema。如果 server 的列表是分页的,只读第一页的客户端(我们的探测器就是这样)只能看到其中一部分。工具数也会变:我们在另一篇里发现,工具越多的 server 越常换工具。
给维护者:目录里你的 server 页面会列出我们最近一次读到的工具及其数量。如果那里的数量和你预期的不一样,说明匿名客户端拿到的列表和你看到的不同。密钥、地区或分页应答,都可能造成这种差别。
我们怎么数的
范围:2026 年 10 月 8 日我们列表上的 2,982 个 endpoint,其中 1,903 个至少存有一份工具列表;每个取最近一次的列表。时间:2026 年 10 月 8 日 UTC 13:23 到 13:30,对生产数据库的只读查询。这些列表没有一份来自首页的试用:我们查过,试用 run 不存工具列表。
一份工具列表,是探测器不带凭据发出 tools/list 后得到的一次成功应答。工具数是应答里的条目数。分页列表是带 nextCursor 的应答。描述长度是 server 发来的描述文字的字符数。
已知局限。分页列表只读第一页,所以有三个计数是下限。应答超过 2 MiB 时,其中的工具列表完全不计入。先要密钥的 server 不在统计里,所以我们说不出它们比能读到的那些大还是小。一个计数是匿名客户端在那一刻拿到的;server 可能会给登录用户看不同的工具。探测器的说明见方法论页面。