Show HN:我为 87 个 MCP 服务器进行代理权限卫生扫描 – 排行榜
capframe.ai 发布了一个 MCP 服务器安全排行榜,基于确定性规则引擎对 87 个已发布的 MCP 服务器进行评分。满分 100 分,每个严重发现扣 10 分,高严重性扣 4 分,中等扣 2 分,低扣 1 分。排行榜显示了多个获得满分 100 的服务器(如 magicnpm、Cloudflare MCP 等),同时也揭示了多个服务器存在中等或高严重性问题,包括未限制字符串输入长度、缺少副作用声明等。
capframe.ai 发布了一个针对 MCP(Model Context Protocol)服务器的安全排行榜,旨在评估这些服务器的“代理权限卫生”(agent-authority hygiene)。该排行榜基于一个名为 capframe 的确定性规则引擎,对已发布的 MCP 服务器进行自动化扫描和评分。评分标准为满分 100 分,每发现一个严重(Critical)问题扣 10 分,高严重性(High)问题扣 4 分,中等(Medium)扣 2 分,低(Low)扣 1 分。规则引擎和评分公式完全公开。
根据排行榜数据,截至 2026 年 6 月 26 日,共扫描了 89 个服务器(实际显示 87 个,可能包含重复或已移除的条目)。其中多个知名项目获得了满分 100 分,且未发现任何安全问题。这些高分服务器包括 magicnpm(@21st-dev/magic)、Cloudflare MCP Server(@cloudflare/mcp-server-cloudflare)、E2B MCP Server、Elasticsearch MCP Server、Playwright MCP Server、Stripe MCP、Notion MCP 等。这些服务器在工具定义、权限声明等方面表现良好,没有发现任何违反规则引擎的问题。
然而,排行榜也揭示了大量服务器存在中等或高严重性的安全问题。最常见的中等严重性问题(扣 2 分)是工具参数缺少 maxLength 约束。例如,Find-A-Domain MCP 的 check_domain 工具、Astro Docs MCP 的 search_astro_docs 工具、Exa Search MCP 的 web_search_exa 工具等,都允许无限制长度的字符串输入。这可能导致攻击者通过间接注入(indirect-injection)在工具中放入恶意负载。修复建议是为每个字符串属性添加 maxLength 约束,或使用 enum 或 pattern 进行限制。
另一个中等严重性问题是工具描述中引用了金钱(money)相关词汇,但未在 side_effects 声明中标注 money。例如,Cloudflare Docs MCP 的 search_cloudflare_documentation 工具描述了与账单相关的内容,但没有声明 money 副作用,这可能导致策略绕过。
高严重性问题(扣 4 分)出现在 OpenZeppelin Stellar Contracts MCP 中。其 stellar-non-fungible 工具的 tokenUri 参数接受 URL,但未设置 pattern 或 enum 限制。攻击者可能通过间接注入让代理调用内部服务(如 http://169.254.169.254/),从而导致云元数据泄露或 SSRF(服务器端请求伪造)攻击。修复建议包括对 URL 参数进行白名单限制,并在服务端验证。
排行榜还提供了多个服务器的详细发现报告,包括工具名称、问题描述和修复建议。该项目的目的是提高 MCP 服务器生态的安全性,通过公开透明的评分机制让开发者了解其服务器的安全状况。