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
评论区
登录后可评论。