KonfiguracjaMCP

Uwierzytelnianie OAuth MCP

Połącz się z serwerami MCP, które wymagają dostępu delegowanego przez użytkownika, używając OAuth 2.1. Bob zarządza procesem uwierzytelniania i odświeżania tokenów, więc nie musisz zarządzać tokenami ręcznie.

Aby uzyskać ogólną konfigurację MCP, zobacz Używanie MCP w Bob.

Przegląd

Możesz połączyć Boba z serwerami Model Context Protocol (MCP), które działają w twoim imieniu, na przykład uzyskując dostęp do repozytoriów kodu, usług chmurowych lub wewnętrznych narzędzi. Te serwery używają OAuth 2.1, abyś mógł się zalogować i zatwierdzić dostęp.

Bob zarządza przepływem uwierzytelniania bezpośrednio. Gdy skonfigurujesz serwer wymagający OAuth, Bob wyświetla żądanie uwierzytelnienia w ustawieniach MCP. Możesz kliknąć przycisk, aby otworzyć swojego dostawcę tożsamości w oknie przeglądarki, ukończyć logowanie i zatwierdzić uprawnienia. Bob przechowuje i odświeża tokeny dostępu bez konieczności ręcznego zarządzania poświadczeniami.

Użyj OAuth, gdy:

  • Potrzebujesz dostępu do zasobów powiązanych z twoim osobistym lub korporacyjnym kontem użytkownika
  • Serwer używa krótkotrwałych tokenów wymagających automatycznego odświeżania
  • Chcesz przechowywać statyczne poświadczenia i sekrety poza plikami konfiguracyjnymi

Gdy masz już statyczny token API lub osobisty token dostępu, który nie wygasa, możesz zamiast tego użyć tokenu Bearer w headers.

Jak działa przepływ uwierzytelniania

  1. Dodajesz zdalny adres URL serwera MCP do pliku konfiguracyjnego bez poświadczeń headers lub env.
  2. Gdy Bob łączy się z serwerem, Bob wykrywa wymagania OAuth.
  3. Bob otwiera okno logowania w przeglądarce, gdzie przeglądasz żądane uprawnienia i zatwierdzasz dostęp.
  4. Bob otrzymuje tokeny autoryzacji i przechowuje je bezpiecznie w twoich sesjach.
  5. Bob automatycznie odświeża tokeny przed ich wygaśnięciem, abyś mógł pracować bez przerw.
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)                                   |

Konfiguracja serwera z obsługą OAuth

Możesz skonfigurować serwery MCP w globalnej konfiguracji (~/.bob/mcp_settings.json) lub konfiguracji projektu (.bob/mcp.json).

Minimalna konfiguracja (automatyczne wykrywanie)

Gdy serwer MCP udostępnia automatyczne wykrywanie metadanych OAuth, wystarczy podać url:

{
  "mcpServers": {
    "my-oauth-server": {
      "url": "https://mcp.example.com/mcp"
    }
  }
}

Bob wykrywa wymagania OAuth przy połączeniu i przeprowadza przez proces logowania w przeglądarce.

Niestandardowe parametry OAuth

Gdy dostawca tożsamości wymaga wstępnie zarejestrowanego ID klienta, niestandardowych zakresów lub sekretu klienta, skonfiguruj obiekt oauth:

{
  "mcpServers": {
    "my-oauth-server": {
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "enabled": true,
        "clientId": "your-client-id-from-idp",
        "clientSecret": "your-client-secret-if-required",
        "scope": "mcp:connect read:data"
      }
    }
  }
}

Właściwości konfiguracyjne

WłaściwośćTypOpis
urlstringZdalny adres URL punktu końcowego MCP (wymagany).
oauth.enabledbooleanUstaw na false, aby wyłączyć OAuth, lub true, aby wymagać OAuth. Domyślnie włączone, gdy nie ma nagłówka Authorization.
oauth.clientIdstringWstępnie zarejestrowany ID klienta OAuth wydany przez dostawcę tożsamości.
oauth.clientSecretstringSekret klienta OAuth, jeśli serwer autoryzacji wymaga go dla klientów poufnych.
oauth.scopestringOddzielona spacjami lista zakresów OAuth do żądania.
Ostrzeżenie:

Dodanie statycznego nagłówka Authorization do konfiguracji serwera MCP wyłącza OAuth. Gdy nagłówek Authorization jest obecny, Bob nie inicjuje przepływu OAuth. Gdy OAuth jest aktywny, Bob usuwa statyczne nagłówki Authorization przed wysłaniem żądań. Używaj tylko jednej metody uwierzytelniania na serwer.

Rejestracja Boba u dostawcy tożsamości

Gdy dostawca tożsamości (IdP) wymaga zarejestrowania Boba jako aplikacji klienckiej przed połączeniem, użyj następujących ustawień aplikacji:

UstawienieWartość
Typ aplikacji lub klientaPubliczny, natywny lub loopback (Authorization Code z PKCE)
Redirect URIhttp://127.0.0.1:33418/callback
Dodatkowe redirect URIhttp://127.0.0.1:33419/callback do http://127.0.0.1:33427/callback (zalecane, jeśli port 33418 jest zajęty)
Typy grantAuthorization Code (authorization_code) i Refresh Token (refresh_token)
ZakresyZakresy określone w dokumentacji serwera MCP

Skopiuj wydany ID klienta do oauth.clientId w pliku konfiguracyjnym.

Uwierzytelnianie po wyświetleniu monitu

Gdy łączysz się z serwerem z obsługą OAuth po raz pierwszy:

  1. Przejrzyj monit uwierzytelniania otwierający się w IDE lub przeglądarce.
  2. Zweryfikuj uprawnienia, o które żąda serwer.
  3. Zaloguj się na swoje konto i zatwierdź dostęp.
  4. Bob zapisuje twoje poświadczenia i łączy się z narzędziami serwera.

Wyświetlanie i zarządzanie stanem uwierzytelniania

Możesz sprawdzić lub zmienić uwierzytelnianie dla serwera MCP:

  1. Kliknij ikonę w panelu Bob.
  2. Wybierz kartę MCP.
  3. Znajdź serwer na liście.

Połączone serwery wyświetlają wskaźnik stanu. Gdy uwierzytelnienie wygaśnie lub zmienią się uprawnienia, możesz zaktualizować połączenie.

Aby ponownie uwierzytelnić: Kliknij obok nazwy serwera, aby ponownie uruchomić połączenie i zalogować się ponownie.

Rozwiązywanie problemów

Monit uwierzytelniania nie otwiera się

  • Upewnij się, że serwer nie jest oznaczony jako wyłączony w konfiguracji.
  • Sprawdź, czy plik konfiguracyjny nie zawiera statycznego nagłówka Authorization w headers.
  • Uruchom ponownie serwer z karty ustawień MCP.
  • Sprawdź, czy przeglądarka lub zapora sieciowa nie blokuje lokalnych połączeń loopback na 127.0.0.1.

Dostawca tożsamości zwraca błąd niezgodności redirect URI

  • Upewnij się, że rejestracja klienta u dostawcy tożsamości zawiera http://127.0.0.1:33418/callback.
  • Jeśli port 33418 jest zajęty, zarejestruj dodatkowe porty od 33419 do 33427.

Uwierzytelnianie się powiodło, ale serwer nie może się połączyć

  • Sprawdź, czy adres URL serwera jest poprawny i dostępny z twojej sieci.
  • Sprawdź, czy zatwierdziłeś wszystkie wymagane zakresy podczas kroku logowania.
  • Przejrzyj logi serwera lub dokumentację pod kątem wymaganych ról lub uprawnień użytkownika.

Tokeny często wygasają i musisz się ponownie uwierzytelnić

  • Potwierdź, że serwer autoryzacji wydaje tokeny odświeżania.
  • Sprawdź, czy zegar systemowy jest zsynchronizowany, aby zapobiec przedwczesnemu wygaśnięciu tokenu.

Chcesz się wylogować lub zmienić konto

Ponowne uruchomienie serwera nie czyści danych uwierzytelniających OAuth. Aby się wylogować lub zmienić konto, użyj Resetuj auth z karty ustawień MCP. To czyści przechowywane tokeny i wyzwala nowy monit uwierzytelniania przy następnym połączeniu.

Jak oceniasz ten temat?