MCP OAuth-Authentifizierung

Bob Shell unterstützt OAuth 2.1 für MCP-Server, die nutzerdelegierten Zugriff erfordern. Bob übernimmt den Authentifizierungsablauf automatisch, einschließlich der Token-Aktualisierung, sodass du keine Tokens manuell verwalten musst.

Hinweis:

Für die allgemeine MCP-Konfiguration, siehe MCP-Server konfigurieren.

Übersicht

Einige MCP-Server müssen in deinem Namen handeln – zum Beispiel, um deine GitHub-Repositories zu lesen oder auf deine Google-Drive-Dateien zuzugreifen. Diese Server verwenden OAuth 2.1, um deine Zustimmung zu erbitten, bevor auf Daten zugegriffen wird.

Bob übernimmt den gesamten OAuth-Ablauf automatisch. Wenn du dich mit einem Server verbindest, der OAuth erfordert, öffnet Bob den Autorisierungsablauf in deinem Browser. Nach der Autorisierung verwaltet Bob die Token-Speicherung und -Aktualisierung ohne weitere manuelle Schritte.

Dies unterscheidet sich von statischen Authentifizierungsmethoden wie einem Bearer-Token in headers oder einem API-Schlüssel in env, die für Dienstkonten oder nicht ablaufende Tokens geeignet sind. Verwende OAuth, wenn:

  • Der Server Zugriff auf Ressourcen benötigt, die deinem Nutzerkonto gehören
  • Der Autorisierungsserver des Servers kurzlebige Tokens ausstellt, die aktualisiert werden müssen
  • Du vermeiden möchtest, langlebige Geheimnisse in deinen MCP-Konfigurationsdateien zu speichern

Wie der Authentifizierungsablauf funktioniert

  1. Du fügst einen OAuth-fähigen MCP-Server zu deiner Konfigurationsdatei hinzu (keine headers- oder env-Anmeldedaten erforderlich)
  2. Wenn Bob sich zum ersten Mal mit dem Server verbindet, erkennt es die OAuth-Autorisierungsmetadaten des Servers
  3. Bob öffnet eine browserbasierte Authentifizierungsaufforderung, in der du dich anmelden und deine Zustimmung erteilen kannst
  4. Nach der Autorisierung speichert Bob die Access- und Refresh-Tokens sicher über Sitzungen hinweg
  5. Bob aktualisiert Tokens automatisch, bevor sie ablaufen. Du wirst nicht erneut aufgefordert, es sei denn, die Aktualisierung schlägt fehl.
Bob Shell                   Autorisierungsserver              MCP-Server
   |                                |                               |
   |-- Verbindung zum Server ------>|                               |
   |<-- OAuth-Metadaten (401) ------|                               |
   |-- Auth-Aufforderung öffnen --->|                               |
   |   (Nutzer meldet sich an       |                               |
   |    und erteilt Zustimmung)     |                               |
   |<-- Autorisierungscode ---------|                               |
   |-- Tokens austauschen --------->|                               |
   |<-- Access + Refresh Tokens ----|                               |
   |-- Authentifizierte Anfragen ----------------------->          |
   |   (automatische Aktualisierung bei Bedarf)                    |

Einen OAuth-fähigen Server konfigurieren

OAuth-fähige MCP-Server geben ihre Autorisierungsanforderungen automatisch bekannt. In den meisten Fällen benötigst du nur die Server-URL – OAuth-Felder sind optional. Bob unterstützt außerdem die folgenden optionalen OAuth-Eigenschaften:

  • oauth: Auf false setzen, um OAuth für einen Server zu deaktivieren, oder true, um es explizit zu aktivieren
  • clientId: OAuth-Client-ID, falls vom Autorisierungsserver benötigt
  • clientSecret: OAuth-Client-Geheimnis, falls vom Autorisierungsserver benötigt
  • scope: Leerzeichen-getrennte Liste der anzufordernden OAuth-Scopes

Beispielkonfiguration in ~/.bob/mcp_settings.json (global) oder .bob/mcp.json (Projekt):

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

Bob erkennt die OAuth-Anforderung beim Verbinden und initiiert den Ablauf. Es sind keine headers- oder env-Anmeldedaten erforderlich.

Warnung:

Das Hinzufügen eines statischen Authorization-Headers zu einem OAuth-fähigen Server deaktiviert den automatischen OAuth-Ablauf vollständig. Bob versucht den OAuth-Ablauf nicht. Umgekehrt entfernt Bob bei aktivem OAuth jeden statischen Authorization-Header, bevor Anfragen gesendet werden. Verwende nur eine Methode.

Bei Aufforderung authentifizieren

Wenn Bob sich zum ersten Mal mit einem OAuth-fähigen Server verbindet:

  1. Ein Browserfenster öffnet sich mit der Autorisierungsaufforderung
  2. Prüfe die Berechtigungen, die der Server anfordert
  3. Melde dich mit dem erforderlichen Konto an und erteile deine Zustimmung
  4. Bob speichert die Tokens und schließt die Verbindung automatisch ab

Die Aufforderung öffnet sich in deinem Standardbrowser. Nachdem du die Autorisierung abgeschlossen hast, setzt Bob Shell die Verbindung automatisch fort.

Fehlerbehebung

Die Authentifizierungsaufforderung erscheint nicht

  • Bestätige, dass der Server in deiner Konfiguration nicht als deaktiviert markiert ist
  • Starte Bob Shell neu, um die Serververbindung neu zu initiieren
  • Prüfe, ob dein Browser die Autorisierungsseite nicht blockiert

Authentifizierung erfolgreich, aber der Server verbindet sich nicht

  • Überprüfe, ob die Server-URL korrekt und erreichbar ist
  • Prüfe, ob du alle erforderlichen Berechtigungen während des Zustimmungsschritts erteilt hast
  • Prüfe die Dokumentation des Servers auf etwaige zusätzliche Einrichtungsanforderungen

Tokens laufen häufig ab und eine erneute Authentifizierung ist erforderlich

  • Bestätige, dass der Autorisierungsserver Refresh-Tokens unterstützt. Einige Server stellen nur Access-Tokens mit kurzer Laufzeit aus.
  • Prüfe, ob deine Systemuhr korrekt eingestellt ist, da Zeitabweichungen zu einem vorzeitigen Token-Ablauf führen können

Du möchtest dich abmelden oder das Konto wechseln

Entferne oder benenne den Servereintrag in deiner Konfigurationsdatei um und füge ihn erneut hinzu. Dadurch behandelt Bob ihn als neuen Server und löst beim nächsten Verbindungsaufbau eine neue Authentifizierungsaufforderung aus.

Wie ist dieses Thema?