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 設定標籤中的重設驗證。這會清除儲存的權杖並在下次連線時觸發新的驗證提示。