MCP OAuth 身份验证
Bob 支持需要用户委托访问的 MCP 服务器的 OAuth 2.1。Bob 自动处理身份验证流程,包括令牌刷新,因此你无需手动管理令牌。
有关一般 MCP 配置,请参阅在 Bob 中使用 MCP。
概述
某些 MCP 服务器需要代表你作为用户执行操作,例如读取你的 GitHub 仓库或访问你的 Google Drive 文件。这些服务器使用 OAuth 2.1 在访问任何数据之前请求你的同意。
Bob 自动处理完整的 OAuth 流程。当你连接到需要 OAuth 的服务器时,服务器会在 MCP 设置中标记为需要身份验证警告,并出现身份验证按钮。点击按钮在浏览器中打开授权流程。授权后,Bob 会管理令牌存储和刷新,无需进一步的手动步骤。
这与静态身份验证方法不同,例如 headers 中的 Bearer 令牌或 env 中的 API 密钥,它们适用于服务帐户或不会过期的令牌。在以下情况下使用 OAuth:
- 服务器需要访问你的用户帐户拥有的资源
- 服务器的授权服务器发出必须刷新的短期令牌
- 你希望避免在 MCP 配置文件中存储长期密钥
身份验证流程的工作原理
- 你将启用 OAuth 的 MCP 服务器添加到配置文件(不需要
headers或env凭据) - 当 Bob 首次连接到服务器时,它会检测服务器的 OAuth 授权元数据
- Bob 打开基于浏览器的身份验证提示,要求你登录并授予同意
- 授权后,Bob 会在会话之间安全地存储访问和刷新令牌
- Bob 会在令牌过期之前自动刷新。除非刷新失败,否则不会再次提示你。
Bob IDE Authorization Server MCP Server
| | |
|-- connect to server ---------->| |
|<-- OAuth metadata (401) -------| |
|-- open auth prompt ----------->| |
| (user signs in & consents) | |
|<-- authorization code ---------| |
|-- exchange for tokens -------->| |
|<-- access + refresh tokens ----| |
|-- authenticated requests ---------------------------------> |
| (auto-refresh when needed) |配置启用 OAuth 的服务器
启用 OAuth 的 MCP 服务器会自动通告其授权要求。在大多数情况下,你只需要服务器 URL — OAuth 字段是可选的。Bob 还支持以下可选的 OAuth 属性:
oauth:设置为false以禁用服务器的 OAuth,或设置为true以显式启用它clientId:OAuth 客户端 ID,如果授权服务器需要clientSecret:OAuth 客户端密钥,如果授权服务器需要scope:要请求的 OAuth 范围的空格分隔列表
示例配置:
{
"mcpServers": {
"my-oauth-server": {
"url": "https://your-server-url.com/mcp"
}
}
}Bob 在连接时检测 OAuth 要求并启动流程。不需要 headers 或 env 凭据。
向启用 OAuth 的服务器添加静态 Authorization 标头会完全禁用自动 OAuth。Bob 不会尝试 OAuth 流程。相反,当 OAuth 处于活动状态时,Bob 会在发送请求之前删除任何静态 Authorization 标头。仅使用一种方法。
在提示时进行身份验证
当 Bob 首次连接到启用 OAuth 的服务器时:
- IDE 中出现身份验证提示
- 查看服务器请求的权限
- 使用所需帐户登录并授予同意
- Bob 存储令牌并自动完成连接
提示可能出现在浏览器窗口或嵌入式 webview 中,具体取决于授权服务器。
查看和管理身份验证状态
要检查或管理 MCP 服务器的身份验证:
- 点击 Bob 面板中的 图标。
- 选择 MCP 选项卡。
- 在列表中找到服务器。
已验证的服务器显示已连接状态指示器。如果身份验证已过期或被撤销,服务器会显示错误状态。
要重新验证: 点击服务器旁边的 以重新启动连接。Bob 会再次打开身份验证提示。
故障排除
身份验证提示未出现
- 确认服务器在你的配置中未标记为已禁用
- 从 MCP 设置选项卡重新启动服务器
- 检查你的浏览器或 webview 是否未阻止授权页面
身份验证成功但服务器无法连接
- 验证服务器 URL 是否正确且可访问
- 检查你在同意步骤中是否授予了所有必需的权限
- 查看服务器的文档以了解任何其他设置要求
令牌频繁过期且需要重新验证
- 确认授权服务器支持刷新令牌。某些服务器发出具有短生命周期的仅访问令牌。
- 检查你的系统时钟是否准确,因为时钟偏差可能导致令牌过早过期
你想注销或切换帐户
重新启动服务器不会清除 OAuth 凭据。要注销或切换帐户,请使用 MCP 设置选项卡中的重置身份验证。这会清除存储的令牌并在下次连接时触发新的身份验证提示。