将客户端连接到服务器 URL 并不会授予它访问受保护账户数据的权限。OAuth 允许客户端通过授权服务器(即签发令牌的服务)请求委托访问。
MCP 授权规范为 HTTP 传输定义了此流程。授权对于 MCP 实现是可选的。本地 stdio 服务器使用单独的凭据机制。
客户端如何找到登录地址?
客户端读取 MCP 服务器的受保护资源元数据,以发现其授权服务器。
根据发现规则,服务器可以在 401 响应的 WWW-Authenticate 请求头中提供该元数据 URL。客户端也支持通过 well-known 元数据路径进行发现。
元数据的 authorization_servers 字段标识可用的授权服务器。客户端获取所选服务器的元数据,以找到其端点和支持的功能。
客户端如何标识自身?
客户端通过授权服务器支持的注册机制获取 client ID。
MCP 注册规则优先使用已有的预注册客户端信息。否则,当服务器声明支持时,客户端可以使用 Client ID Metadata Document。
Client ID Metadata Document 是位于 HTTPS URL 上的 JSON 文档,用于描述客户端。该 URL 即作为其 client ID。
这些规则弃用了动态客户端注册,该机制允许客户端通过注册端点请求 ID。规范保留了此机制,以兼容不支持元数据文档的授权服务器。
客户端如何获取令牌?
在授权服务器批准授权后,客户端用授权码换取访问令牌。
授权码保护规则要求使用 PKCE,它将交换绑定到发起请求的客户端。客户端创建一个秘密验证器,并在授权请求中发送派生的 challenge。兑换授权码时提供该验证器,有助于防止被截获的授权码被其他调用方使用。
作用域和目标资源控制什么?
作用域描述请求的权限。目标资源标识客户端为之请求令牌的服务器。
作用域选择规则指导客户端在提供 challenge 的 scope 值时使用该值。客户端应仅请求其操作所需的访问权限。
客户端在授权和令牌请求中包含 resource 参数。它在受保护的 HTTP 请求的 Authorization 请求头中发送所获令牌。接收服务器检查该令牌是否为自身签发。
调用工具的权限并不表明某次特定调用符合用户的任务。宿主仍需决定是否执行所提议的操作。
如何授权客户端使用 Bird?
将 Bird 托管的 MCP URL 添加到兼容的客户端,然后完成浏览器登录。
Bird 的文档化握手流程使用动态客户端注册。这是对 Bird 连接流程的单独描述,与规范首选的元数据文档机制不同。
在同意界面上,选择要委托的工作区或组织权限。授权范围受限于客户端请求的内容、您批准的内容以及您所持有的权限。
客户端显示的名称是自行声明的,请确认它与您启动的客户端一致。您可以在个人资料中的已连接应用里撤销其授权。
当您的授权缺少调用某个工具的权限时,该工具仍可能显示在列表中。成功的 whoami 调用确认了登录身份。请求的操作仍需要其自身的权限。
对于本地 bird mcp 进程,服务器复用 CLI 存储的登录信息。MCP 设置指南描述了该单独路径。