設定MCP

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設定ファイルに長期間有効なシークレットを保存したくない場合

認証フローの仕組み

  1. OAuth対応のMCPサーバーを設定ファイルに追加します(headersまたはenvの認証情報は不要)
  2. Bobが初めてサーバーに接続すると、サーバーのOAuth認証メタデータを検出します
  3. Bobはブラウザベースの認証プロンプトを開き、サインインして同意を求めます
  4. 認証後、Bobはアクセストークンとリフレッシュトークンをセッション間で安全に保存します
  5. 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: サーバーのOAuthを無効にするにはfalseに設定し、明示的に有効にするには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ヘッダーを削除します。1つの方法のみを使用してください。

プロンプトが表示されたら認証する

BobがOAuth対応サーバーに初めて接続する場合:

  1. IDEに認証プロンプトが表示されます
  2. サーバーが要求している権限を確認します
  3. 必要なアカウントでサインインし、同意を付与します
  4. Bobはトークンを保存し、自動的に接続を完了します

プロンプトは、認証サーバーに応じて、ブラウザウィンドウまたは埋め込みWebビューに表示される場合があります。

認証ステータスの表示と管理

MCPサーバーの認証を確認または管理するには:

  1. Bobパネルのアイコンをクリックします。
  2. MCPタブを選択します。
  3. リストでサーバーを見つけます。

認証されたサーバーには、接続ステータスインジケーターが表示されます。認証の有効期限が切れているか取り消されている場合、サーバーにはエラーステータスが表示されます。

再認証するには: サーバーの横にあるをクリックして、接続を再起動します。Bobは認証プロンプトを再度開きます。

トラブルシューティング

認証プロンプトが表示されない

  • 設定でサーバーが無効としてマークされていないことを確認します
  • MCP設定タブからサーバーを再起動します
  • ブラウザまたはWebビューが認証ページをブロックしていないことを確認します

認証は成功するがサーバーが接続に失敗する

  • サーバーURLが正しく、到達可能であることを確認します
  • 同意ステップ中にすべての必要な権限を付与したことを確認します
  • 追加のセットアップ要件については、サーバーのドキュメントを確認します

トークンが頻繁に期限切れになり、再認証が必要

  • 認証サーバーがリフレッシュトークンをサポートしていることを確認します。一部のサーバーは、短い有効期間のアクセス専用トークンを発行します。
  • システムクロックが正確であることを確認します。クロックのずれにより、トークンが早期に期限切れになる可能性があります

サインアウトまたはアカウントの切り替えを希望する

サーバーを再起動してもOAuth認証情報はクリアされません。サインアウトまたはアカウントを切り替えるには、MCP設定タブから認証をリセットを使用します。これにより、保存されたトークンがクリアされ、次回の接続時に新しい認証プロンプトがトリガーされます。

このトピックはいかがですか?