modelcontextprotocol/ext-auth
MCP 授权扩展的源代码、规范和参考实现。
为什么需要授权扩展?
核心 MCP 规范包含一个基于 OAuth 2.0 构建的稳健的 授权框架。该框架很好地处理了常见情况:用户交互式地授予 MCP 客户端代表他们访问服务器的权限。 但并非每个 MCP 部署都符合此模式:- 机器对机器集成没有人工参与。后台服务、CI 管道和自动化工作流需要在没有交互式用户同意流程的情况下进行身份验证。
- 企业环境通常拥有集中式的身份提供商 (IdP),在所有应用程序中强制执行策略。要求员工单独授权每个 MCP 服务器会产生摩擦并绕过现有的安全控制。
可用扩展
OAuth 客户端凭证
使用 OAuth 2.0 客户端凭证流程进行机器对机器身份验证。不需要用户交互。
企业托管授权
通过企业身份提供商进行集中式访问控制。员工通过其组织的 IdP 访问 MCP 服务器。
选择合适的扩展
客户端支持
授权扩展支持因客户端而异。请参阅 客户端矩阵 了解完整细分。这两个扩展都需要 MCP 客户端的明确支持——它们默认永远不会激活。规范
这两个扩展都在 ext-auth 仓库 中指定。它们使用标准的 MCP 扩展协商 机制:客户端在每个请求的_meta 中发送的 io.modelcontextprotocol/clientCapabilities 的 extensions 字段里声明支持,而服务器则在 server/discover 返回的 capabilities 中声明它们的支持。