Skip to main content

Aggiungere server MCP

Dalla riga di comando

Il modo più rapido per aggiungere un server MCP:
Il tipo di trasporto viene determinato automaticamente: un URL implica HTTP (Streamable HTTP), mentre gli argomenti in coda (o --command) implicano stdio.
I server MCP remoti usano Streamable HTTP per impostazione predefinita. Se il server risponde con un errore HTTP 4xx, la CLI ripiega su SSE allo stesso URL. Imposta "transport": "sse" esplicitamente, se necessario — vedi fallback SSE legacy di seguito.
Per impostazione predefinita, i server vengono salvati nell’ambito local (.devin/mcp_config.local.json, ignorato da git). Usa -s/--scope per modificarlo:
Puoi anche gestire i server dalla riga di comando:

Tramite file di configurazione

Aggiungi i server direttamente nella sezione mcpServers del file di configurazione MCP:
Il percorso del file di configurazione MCP è cambiato nella versione v3000.3 (release Local 3.6). Nelle versioni precedenti (precedenti alla v3000.3), i server MCP sono archiviati nella chiave mcpServers dei file di configurazione principali (~/.config/devin/config.json, .devin/config.json, .devin/config.local.json). Nelle versioni più recenti, sono archiviati in file dedicati nelle stesse posizioni: ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json su Windows), .devin/mcp_config.json e .devin/mcp_config.local.json. All’avvio, tutte le voci mcpServers presenti nei file di configurazione principali vengono migrate automaticamente nei file dedicati.
I server a livello di progetto vengono condivisi con il team tramite il controllo versione.

Opzioni di configurazione del server

I server MCP possono essere configurati in due modi: come comando locale (trasporto stdio) o come server remoto (trasporto HTTP).

Comando locale (stdio)

Server remoto (Streamable HTTP)

Esempi

Dopo aver aggiunto un server basato su OAuth, esegui devin mcp login notion per autenticarti. Vedi Autenticazione qui sotto.
Dopo averlo aggiunto, esegui devin mcp login atlassian per autenticarti. Ogni client MCP (Windsurf, Claude Code, Devin CLI) mantiene la propria sessione OAuth, quindi devi effettuare l’accesso separatamente anche se ti sei già autenticato in un altro tool.

Autenticazione

Alcuni server MCP remoti richiedono l’autenticazione OAuth. Dopo aver aggiunto un server basato su OAuth alla tua configurazione, autenticati con il comando login:
Ad esempio:
Si apre una finestra del browser in cui è possibile autorizzare l’accesso. I token OAuth vengono archiviati localmente e aggiornati automaticamente. Facoltativamente, è possibile richiedere ambiti OAuth specifici:
Per rimuovere le credenziali OAuth memorizzate per un server:
Se il server supporta OAuth, ti verrà anche chiesto automaticamente di autenticarti al primo utilizzo del server.

Riautenticazione

Le credenziali OAuth archiviate non durano per sempre: scadono e un amministratore può revocarle dal lato del provider. In tal caso, anziché connettersi, il server segnala lo stato auth-required e i relativi strumenti (e i prompt) non sono più disponibili finché non esegui di nuovo l’accesso. Per riautenticarti, cancella le credenziali archiviate ed esegui nuovamente il flusso nel browser:
logout elimina i token salvati per quel server; login ripete il flusso OAuth e ne memorizza di nuovi. Esegui la stessa procedura dopo aver modificato oauthClientId, oauthClientSecret o oauthResource: le credenziali emesse con le impostazioni precedenti non vengono riutilizzate.
Le integrazioni con l’Editor che utilizzano Devin CLI tramite ACP mostrano lo stesso stato di autenticazione richiesta, con un’azione di riautenticazione che cancella le credenziali memorizzate e riapre il flusso nel browser, equivalente alla coppia logout + login sopra descritta.

Client OAuth preregistrati

La maggior parte dei server MCP basati su OAuth supporta la registrazione dinamica del client (DCR), quindi Devin CLI si registra automaticamente e non è necessario fornire credenziali client. Alcuni provider (ad es. GitHub) non supportano DCR e richiedono invece un client OAuth preregistrato. In questi casi, specifica il Client ID — e un client secret se si tratta di un client confidenziale — tramite oauthClientId / oauthClientSecret:
Quando oauthClientId è impostato, Devin CLI non esegue la registrazione dinamica del client e usa il client preregistrato durante il flusso OAuth. Esegui devin mcp login <name> (oppure attiva il primo utilizzo) per autenticarti come di consueto. Puoi anche impostarli dalla riga di comando quando aggiungi o accedi a un server:
oauthClientId / oauthClientSecret sono credenziali client OAuth usate durante il flusso di autorizzazione. Non sono credenziali generiche per ogni richiesta: se un server si aspetta un token statico, usa invece headers (HTTP) o env (stdio).
Non fare commit di un client secret in una configurazione condivisa. Richiamalo da una variabile d’ambiente (${env:VAR}), leggilo da un file (${file:/path}) oppure inseriscilo in .devin/mcp_config.local.json (ignorato da git). Consulta la sezione “Gestione dei segreti” qui sotto.

Override della risorsa OAuth

Durante l’autorizzazione OAuth e lo scambio di token, Devin CLI invia un parametro resource RFC 8707 in modo che il server di autorizzazione possa emettere token limitati a una specifica audience. Per impostazione predefinita, il valore è l’URL del server MCP. Puoi sovrascriverlo con oauthResource:
Il campo ha tre comportamenti:
  • Non impostato (predefinito): invia resource impostato sull’URL del server MCP.
  • Valore non vuoto: sostituisce il valore predefinito con il valore specificato (ad es. un URI ID di un’applicazione specifica).
  • Stringa vuota (""): omette completamente il parametro resource sia dall’URL di autorizzazione sia dallo scambio del token.
Puoi anche impostarlo dalla riga di comando quando aggiungi un server o accedi a un server:
Come gli altri campi OAuth, oauthResource supporta l’espansione di ${env:VAR} e ${file:/path}.

Abilitare e disabilitare i server

Puoi disabilitare temporaneamente un server MCP senza rimuoverne la configurazione. Un server disabilitato viene ignorato durante il rilevamento degli strumenti: i suoi strumenti non verranno visualizzati e il processo del server non verrà avviato.
Questo imposta il flag "disabled": true sulla voce del server nel file di configurazione. Usa -s/--scope per selezionare un ambito specifico:
Puoi anche impostare il flag direttamente nel file di configurazione:
La disattivazione è utile quando vuoi mantenere la configurazione di un server (incluse le variabili d’ambiente e le credenziali OAuth) ma interromperne temporaneamente l’uso — per esempio, per ridurre il tempo di avvio o isolare un problema.

Gestione dei segreti

Non eseguire mai il commit di API key o segreti nel controllo versione. Usa .devin/mcp_config.local.json per i valori sensibili.
Per i progetti di team, l’approccio consigliato è:
  1. Definire il server in .devin/mcp_config.json con segnaposto o senza variabili d’ambiente
  2. Ogni membro del team aggiunge le proprie chiavi personali in .devin/mcp_config.local.json
Il file di configurazione locale viene escluso automaticamente da Git.

Autorizzazioni MCP

Puoi pre-approvare, negare o richiedere sempre una conferma per strumenti MCP specifici nella configurazione delle autorizzazioni:
Pattern di corrispondenza per le autorizzazioni:

Prompt

I prompt non richiedono alcuna configurazione: qualsiasi server connesso che dichiari la funzionalità MCP prompts aggiunge automaticamente i comandi slash /mcp__<server>__<prompt>. Poiché il nome del comando include il nome del server, rinominare un server in mcpServers rinomina anche i relativi comandi prompt. Consulta Panoramica MCP — Prompt come comandi slash.

Restrizioni dell’organizzazione

Se fai parte di un team Enterprise, il tuo amministratore potrebbe limitare i server MCP a cui puoi connetterti. Un server che hai configurato può essere bloccato se MCP è disabilitato per il tuo team, oppure se non è incluso nell’allowlist del team o in un MCP registry obbligatorio; in tal caso non si connetterà e i suoi strumenti non saranno disponibili. Per maggiori dettagli, consulta Team Settings — MCP Registry.

Risoluzione dei problemi

Se durante la connessione a un server MCP remoto visualizzi errori come Auth required o AuthRequired, significa che il server richiede l’autenticazione OAuth.Esegui:
Ogni client MCP si autentica in modo indipendente. Anche se ti sei già autenticato in Windsurf o Claude Code, per Devin CLI devi eseguire devin mcp login separatamente.Per verificare lo stato dell’autenticazione, prova a rimuovere e aggiungere di nuovo le credenziali:
Verifica che il comando funzioni al di fuori di Devin CLI:
Verifica che tutte le variabili d’ambiente richieste siano impostate.
Chiedi all’agente di elencare i server MCP e gli strumenti. Il server potrebbe richiedere qualche istante per inizializzarsi.
Controlla la configurazione delle autorizzazioni. Per impostazione predefinita, gli strumenti MCP richiedono l’approvazione. Aggiungili a permissions.allow per approvarli automaticamente.
Alcuni server di autorizzazione rifiutano le richieste OAuth che includono il parametro resource definito da RFC 8707. Imposta oauthResource su una stringa vuota per omettere il parametro:
Quindi autenticati di nuovo:
Consulta Override della risorsa OAuth per l’elenco completo dei comportamenti di oauthResource.
Durante la connessione a un server HTTP, Devin CLI prova prima Streamable HTTP. Se il server risponde con un errore HTTP 4xx (ad es. 404 o 405), passa automaticamente a SSE legacy sullo stesso URL configurato. Questo segue le linee guida di retrocompatibilità della spec MCP.Il fallback si attiva solo in caso di risposte 4xx — errori di connessione, timeout e risposte 5xx vengono segnalati direttamente senza tentare SSE.Se l’endpoint SSE del server si trova in un percorso diverso (ad es. /sse invece di /mcp), imposta "transport": "sse" con l’URL SSE per connetterti direttamente senza il tentativo Streamable HTTP.Se entrambi i trasporti falliscono, il messaggio di errore include i dettagli di entrambi i tentativi per agevolare la risoluzione dei problemi.