菜单

你的 MCP server 可能已经在一个你从没注册过的目录里

2026-10-10MCP Checkup

本文译自 2026-09-23 的英文原文。

如果你在一个公开 URL 上运行远程 MCP server,那么 MCP Checkup 很可能已经有一个关于它的页面,而你从没填过任何表单。这篇文章解释为什么会这样,页面到底说什么、不说什么,以及你可以做的两件事:认领这个页面,或者让它消失。

server 怎样进入目录

MCP Checkup 是一个观测型目录。我们不等维护者来登记,而是从已经公开的 endpoint 出发,像任何客户端那样去看它们。

除了一份人工挑选的简短起始名单,我们的 server 都来自官方 MCP registry,任何人都可以往那里发布。我们只从中选取声明了远程 HTTP endpoint 的 server。只有 stdio 的软件包不在范围内,因为检查它们就意味着运行你的代码,而我们不这么做。每台主机我们只保留一个 endpoint,跳过临时隧道域名,并在收录之前读取每台主机的 robots.txt。如果那时某台主机的 robots.txt 禁止我们的 user agent,它就不会被收录,也不会有页面。在那之后,我们不再重新读取 robots.txt;要让一台已经收录的 server 停止被检查,请用下面说的移除方式。

每一次探测都不带凭据,在你的 server 看来也都是只读的:一次握手,一次 tools/list,再加上少量协议层面的观测。我们从不调用你的任何工具。我们发出的那一次 tools/call 调用的是一个虚构的工具,只为看看你的 server 怎样报告这个错误。怎样凭 User-Agent 在日志里认出我们的探测,以及一轮最多会发多少个请求,都写在探测说明页上。

页面说什么,拒绝说什么

目录页是一组带时间戳的观测,不是评判。没有总体等级,也没有任何可以花钱改变的东西。这是有意为之,理由写在我们为什么不给 MCP server 打分里。

还有两点值得知道:

  • 未签名的 run 不给结论。 每一次符合我们发布规则的 run 都会得到一份签名证明,不论是否被认领。当一次 run 没有签名证明时,页面会列出每一项检查测的是什么,以及我们记下的原因(如果有),不着颜色,也不使用有签名的 run 才用的四种断言状态(已通过、未通过、观察到风险、未检查)。页面会写明这一点。未签名的页面并不是「更差」;只是那次 run 我们没能签名,所以不把它的观测打扮成结论。
  • 未认领的 server 每 12 小时探测一次; 已认领的按档位更频繁。页面显示最近一次 run;当这次 run 有签名时,还会显示一条 90 天的条带,每天一格,每一格显示我们当天看到的最差结果。

认领页面

如果这是你的 server,你可以接手这个页面。认领是对着地址做的,不是对着我们的记录:你证明自己控制着 endpoint 的主机,页面就归你,包括那些在你听说我们之前就被我们发现的 server 的页面。流程从 /zh/claim/new 开始,填入你的 endpoint URL:如果这台主机我们已有一个页面,你会被直接带过去;如果有好几个,由你选择是哪一个;如果已经有别人认领了,页面会这样告诉你。

认领从不索要你 server 的凭据,也从不改变探测器发送的请求。它改变的是页面代表谁:页面归你,按你所在档位的周期检查;当它停止应答,或者某项协议检查未通过时,你会收到告警邮件;你还可以在 README 里放一个「claimed」(已认领)徽章。Free 档的徽章是静态的,不带任何结果。

要求移除

你也可以决定根本不要这个页面。按探测说明页上写的方式给我们发邮件,我们就会停止对该 endpoint 的一切检查。这台 server 会从目录中移除,它的报告页和签名证明页从此返回 404。我们不保留公开的「该 server 已退出」占位页;已签发的签名记录原样留在我们的数据库里,但不再对外公开。(robots.txt 只约束我们自行发现的 server:禁止自动客户端的 server 从一开始就不会被收录。)

为什么这样做

一个只列出维护者主动找上门的 server 的目录,就是一份营销名单。真正调用 MCP server 的 agent 需要的恰恰相反:一个已经看过它们即将依赖的那台 server 的地方,不管有没有人要求过。这个目录要补上的就是这个空缺。这也是为什么这些检查故意做得很平淡:可达性、协议版本、工具列表、重定向。都是任何客户端用 curl 就能复现的可观测事实。

如果你发现了一个讲你 server 的页面,上面有东西看起来不对,请告诉我们。我们宁可把探测器修好,也不愿为它辩护。