modelcontextprotocol/ext-auth
MCP 授权扩展的源码、规范和参考实现。
为什么需要授权扩展?
核心 MCP 规范包含一个基于 OAuth 2.0 的健壮授权框架。该框架很好地处理了常见场景:用户通过交互方式授权 MCP 客户端代表自己访问服务器。 但并非每个 MCP 部署都适合这种模式:- 机器到机器集成没有人在环。后台服务、CI 流水线和自动化工作流需要在没有交互式用户同意流程的情况下完成认证。
- 企业环境通常有集中式身份提供商(IdPs),用于跨所有应用执行策略。要求员工单独授权每个 MCP 服务器会造成摩擦,也会绕过现有安全控制。
可用扩展
OAuth Client Credentials
使用 OAuth 2.0 client credentials 流程进行机器到机器认证。不需要用户交互。
Enterprise-Managed Authorization
通过企业身份提供商实现集中访问控制。员工通过组织的 IdP 访问 MCP 服务器。
选择合适的扩展
客户端支持
授权扩展支持情况因客户端而异。完整说明见客户端矩阵。这两个扩展都需要 MCP 客户端显式支持,默认永远不会启用。规范
这两个扩展都在 ext-auth 仓库 中定义。它们使用标准 MCP 扩展协商机制:客户端和服务器会在初始化期间,在各自能力的extensions 字段中声明支持。