Autenticazione OAuth MCP

Bob Shell supporta OAuth 2.1 per i server MCP che richiedono accesso delegato dall'utente. Bob gestisce il flusso di autenticazione automaticamente, incluso il refresh dei token, quindi non è necessario gestire i token manualmente.

Nota:

Per la configurazione generale di MCP, consulta Configurare i server MCP.

Panoramica

Alcuni server MCP devono agire per conto dell'utente, ad esempio per leggere i tuoi repository GitHub o accedere ai tuoi file su Google Drive. Questi server usano OAuth 2.1 per richiedere il tuo consenso prima di accedere a qualsiasi dato.

Bob gestisce l'intero flusso OAuth automaticamente. Quando ti connetti a un server che richiede OAuth, Bob apre il flusso di autorizzazione nel tuo browser. Dopo aver autorizzato, Bob gestisce la memorizzazione dei token e il loro refresh senza ulteriori interventi manuali.

Questo è diverso dai metodi di autenticazione statici come un Bearer token in headers o una chiave API in env, che sono adatti agli account di servizio o ai token che non scadono. Usa OAuth quando:

  • Il server deve accedere a risorse di proprietà del tuo account utente
  • Il server di autorizzazione emette token a breve durata che devono essere aggiornati
  • Vuoi evitare di memorizzare segreti a lunga durata nei file di configurazione MCP

Come funziona il flusso di autenticazione

  1. Aggiungi un server MCP abilitato a OAuth al tuo file di configurazione (non sono necessarie credenziali headers o env)
  2. Quando Bob si connette al server per la prima volta, rileva i metadati di autorizzazione OAuth del server
  3. Bob apre un prompt di autenticazione basato su browser chiedendoti di accedere e concedere il consenso
  4. Dopo aver autorizzato, Bob memorizza i token di accesso e di refresh in modo sicuro tra le sessioni
  5. Bob aggiorna automaticamente i token prima della scadenza. Non ti verrà richiesto di nuovo a meno che il refresh non fallisca.
Bob Shell                   Server di autorizzazione              Server MCP
   |                                |                               |
   |-- connessione al server ------>|                               |
   |<-- metadati OAuth (401) -------|                               |
   |-- apertura prompt auth ------->|                               |
   |   (utente accede e consente)   |                               |
   |<-- codice di autorizzazione ---|                               |
   |-- scambio per token ---------->|                               |
   |<-- access + refresh token -----|                               |
   |-- richieste autenticate ---------------------------->          |
   |   (auto-refresh quando necessario)                             |

Configurare un server abilitato a OAuth

I server MCP abilitati a OAuth pubblicizzano automaticamente i propri requisiti di autorizzazione. Nella maggior parte dei casi hai solo bisogno dell'URL del server — i campi OAuth sono opzionali. Bob supporta anche le seguenti proprietà OAuth opzionali:

  • oauth: Imposta su false per disabilitare OAuth per un server, o true per abilitarlo esplicitamente
  • clientId: ID client OAuth, se richiesto dal server di autorizzazione
  • clientSecret: Segreto client OAuth, se richiesto dal server di autorizzazione
  • scope: Elenco separato da spazi degli scope OAuth da richiedere

Configurazione di esempio in ~/.bob/mcp_settings.json (globale) o .bob/mcp.json (progetto):

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

Bob rileva il requisito OAuth quando si connette e avvia il flusso. Non sono necessarie credenziali headers o env.

Avviso:

Aggiungere un'intestazione Authorization statica a un server abilitato a OAuth disabilita completamente OAuth automatico. Bob non tenta il flusso OAuth. Al contrario, quando OAuth è attivo, Bob rimuove qualsiasi intestazione Authorization statica prima di inviare le richieste. Usa solo un metodo.

Autenticarsi quando richiesto

Quando Bob si connette per la prima volta a un server abilitato a OAuth:

  1. Si apre una finestra del browser con il prompt di autorizzazione
  2. Esamina i permessi che il server sta richiedendo
  3. Accedi con l'account richiesto e concedi il consenso
  4. Bob memorizza i token e completa la connessione automaticamente

Il prompt si apre nel tuo browser predefinito. Dopo aver completato l'autorizzazione, Bob Shell riprende la connessione automaticamente.

Risoluzione dei problemi

Il prompt di autenticazione non appare

  • Verifica che il server non sia contrassegnato come disabilitato nella tua configurazione
  • Riavvia Bob Shell per reinizializzare la connessione al server
  • Controlla che il browser non stia bloccando la pagina di autorizzazione

L'autenticazione ha successo ma il server non si connette

  • Verifica che l'URL del server sia corretto e raggiungibile
  • Controlla di aver concesso tutti i permessi richiesti durante il passaggio di consenso
  • Consulta la documentazione del server per eventuali requisiti di configurazione aggiuntivi

I token scadono frequentemente ed è richiesta la ri-autenticazione

  • Verifica che il server di autorizzazione supporti i refresh token. Alcuni server emettono solo token di accesso con durata breve.
  • Controlla che l'orologio di sistema sia preciso, poiché lo sfasamento dell'orologio può causare la scadenza prematura dei token

Vuoi effettuare il logout o cambiare account

Rimuovi o rinomina la voce del server nel tuo file di configurazione e aggiungila di nuovo. Questo fa sì che Bob la tratti come un nuovo server e attivi un nuovo prompt di autenticazione alla prossima connessione.

Come valuti questo argomento?