MCP服务器OAuth合规性大抽检:30个里只有1个拿到A

你知道吗?30 个主流 MCP 服务器里,只有 1 个能拿到 OAuth 安全 A 级评分。

这个数据来自最近一次公开扫描——被扫的对象包括 Notion、Stripe、Cloudflare、Figma、Linear 等明星产品。换句话说:当各大厂拼命上线 MCP Server 时,他们的 OAuth 实现一塌糊涂。

这就是 authgent 出现的背景。

这个工具干嘛的

authgent 是一个开源的 MCP-OAuth 合规性扫描器。它用 15 项检查项去审计任意 MCP 服务器的 OAuth 实现是否合规,每一项都直接映射到 RFC 条款。

15 项检查覆盖:

  • RFC 7636(PKCE)
  • RFC 8414(AS 元数据)
  • RFC 8707(资源标识符)
  • RFC 9207(iss 参数)
  • RFC 9449(DPoP)
  • RFC 9728(受保护资源元数据)
  • 以及 MCP 2025-11-25 授权规范 & EMA(企业托管授权)扩展

工具提供三种使用方式:CLI(authgent-server lint <url>)、GitHub Action(每次 PR 自动跑)、网页版(authgent.dev/scan,直接贴 URL)。

为什么这事值得关注

MCP(Model Context Protocol)正在快速成为 AI Agent 连接外部工具的标准。Anthropic 在 2025 年底发布 MCP 授权规范,今年六月又推出企业托管授权(EMA),合作方包括 Asana、Atlassian、Canva、Figma、Granola、Linear 和 Supabase。

但问题来了:协议规范有了,实现质量参差不齐。

扫描结果显示,30 个被测服务器中:
– 3 个正确实现了新的 id-jag 授权配置文件
– 2 个同时用了 OAuth 2.1 明确禁止的 plain PKCE 方法
– 大量服务器存在 PKCE “advertise-drift”(宣称支持但实际不强制)问题

这意味着:你的 AI Agent 连接这些服务时,理论上受保护的资源可能实际上裸奔。

一条命令扫一个服务器

pip install authgent-server
authgent-server lint https://your-mcp-server.example.com

输出大概长这样:

[CRITICAL] MCP-PRM-001: Missing Protected Resource Metadata
[ERROR] MCP-PKCE-002: PKCE method not enforced at /authorize
[ERROR] MCP-AUD-001: RFC 8707 resource indicators not supported

如果扫出了问题,还有配套的 authgent-server 可以直接部署成一个符合 OAuth 2.1 标准的参考实现服务器,修复它扫出来的所有问题。

Apache 2.0 开源,525+ 测试用例,还被两份 IETF 草案直接引用——算是安全圈里相当有分量的项目了。

怎么用

快速扫描:
直接访问 authgent.dev/scan,输入任意 MCP 服务器地址,10 秒出结果。

接入 CI:
在 MCP Server 仓库加一个 GitHub Action,PR 每次自动审计,还能设置基线,只报新出现的问题。

想修复?
pip install authgent-server 后直接运行,它就是一个完整实现 identity-chaining 和 transaction-tokens 的 OAuth 2.1 授权服务器。


说到底,MCP 生态现在有点像 2015 年的 HTTPS——标准有了,但部署质量七零八落。authgent 至少让你能看见这个问题,而不是靠运气。

GitHub:https://github.com/authgent/authgent


GitHub: https://github.com/authgent/authgent

评论区

0 条评论

登录后可评论。

沈星河 442 阅读