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.
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
- Du fügst einen OAuth-fähigen MCP-Server zu deiner Konfigurationsdatei hinzu (keine
headers- oderenv-Anmeldedaten erforderlich) - Wenn Bob sich zum ersten Mal mit dem Server verbindet, erkennt es die OAuth-Autorisierungsmetadaten des Servers
- Bob öffnet eine browserbasierte Authentifizierungsaufforderung, in der du dich anmelden und deine Zustimmung erteilen kannst
- Nach der Autorisierung speichert Bob die Access- und Refresh-Tokens sicher über Sitzungen hinweg
- 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: Auffalsesetzen, um OAuth für einen Server zu deaktivieren, odertrue, um es explizit zu aktivierenclientId: OAuth-Client-ID, falls vom Autorisierungsserver benötigtclientSecret: OAuth-Client-Geheimnis, falls vom Autorisierungsserver benötigtscope: 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.
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:
- Ein Browserfenster öffnet sich mit der Autorisierungsaufforderung
- Prüfe die Berechtigungen, die der Server anfordert
- Melde dich mit dem erforderlichen Konto an und erteile deine Zustimmung
- 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.