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