扫描器如何判定
扫描器如何判定
三种判定,规则公开。觉得哪个不对就告诉我们:正是这种反馈让它变得更好。
- 智能体就绪
- 页面至少注册了一个 WebMCP 工具,linter 没有发现错误,且智能体就绪评分达到 70 或以上。名称过长之类的警告不影响。
- 差一点
- 页面注册了工具,但至少有一个存在 linter 错误(
invalid-name,duplicate-name,missing-description,invalid-input-schema,invisible-unicode,或者大小超过硬性上限),或者评分低于 70。 - 还没有
- 页面没有注册任何 WebMCP 工具。我们会显示智能体改为阅读页面要花多少 token。
扫描如何进行
- 我们在自己的服务器上用无头 Chrome 打开页面,不带 Cookie,也不登录。
- 在页面脚本运行之前,我们加入一个 WebMCP 宿主,让页面像在智能体的浏览器里一样注册工具。它也接受旧的 navigator.modelContext 和 provideContext,基于它们构建的网站也能显示工具。
- 页面加载完成、工具稳定后,我们读取每个工具的名称、描述、输入 schema 和注解,并用 linter 检查。
- token 数根据页面文本估算:字符数除以 4。
- 为了计算评分,同一个浏览器会获取网站的 robots.txt、llms.txt、站点地图、Markdown 版本、Link 响应头、Agent Skills 索引和 API 目录(每项 3 s,同源,不带 Cookie),只记录每一项是否存在。
- 评分满分 100:WebMCP 50(工具 25、无 lint 错误 15、每个工具都有描述 5、每个工具都有注解 5),智能体成本 15(有工具即满分,否则按页面 token 数计),可读性 20,可发现性 15(每项检查 5)。
- 结果会复用 10 分钟;每位访客每分钟可以发起一次新的扫描。
觉得判定有误?附上扫描链接提交 issue。