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 返回的能力中公告自身的支持。