Ajouter des serveurs MCP
En ligne de commande
Le moyen le plus rapide d’ajouter un serveur MCP :--command) impliquent stdio.
Les serveurs MCP distants utilisent Streamable HTTP par défaut. Si le serveur répond avec une erreur HTTP 4xx, comme 404 ou 405, la CLI bascule vers SSE sur la même URL. Les erreurs d’authentification (une erreur 401, ou une erreur 403 pour périmètre insuffisant accompagnée d’un challenge
WWW-Authenticate) ne déclenchent pas le fallback : elles sont signalées directement afin que vous puissiez vous authentifier. Définissez "transport": "sse" explicitement si nécessaire — voir basculement vers l’ancien SSE ci-dessous..devin/mcp_config.local.json, ignoré par Git). Utilisez -s/--scope pour le modifier :
Via un fichier de configuration
Ajoutez directement des serveurs à la sectionmcpServers de votre fichier de configuration MCP :
L’emplacement du fichier de configuration MCP a changé dans la version v3000.3 (version Local 3.6). Les versions antérieures (avant v3000.3) stockent les serveurs MCP dans la clé
mcpServers des fichiers de configuration principaux (~/.config/devin/config.json, .devin/config.json, .devin/config.local.json). Les versions plus récentes les stockent dans des fichiers dédiés situés aux mêmes emplacements : ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json sous Windows), .devin/mcp_config.json et .devin/mcp_config.local.json. Au démarrage, toutes les entrées mcpServers présentes dans les fichiers de configuration principaux sont automatiquement migrées vers les fichiers dédiés.- Configuration du projet
- Configuration utilisateur
- Dérogation locale
Les serveurs configurés au niveau du projet sont partagés avec votre Team via le contrôle de version.
Options de configuration des serveurs
Les serveurs MCP peuvent être configurés de deux manières : comme commande locale (transport stdio) ou comme serveur distant (transport HTTP).Commande locale (stdio)
Serveur distant (Streamable HTTP)
Exemples
GitHub (stdio)
GitHub (stdio)
Notion (HTTP avec OAuth)
Notion (HTTP avec OAuth)
Après avoir ajouté un serveur utilisant OAuth, exécutez
devin mcp login notion pour vous authentifier. Voir Authentification ci-dessous.Linear (HTTP avec OAuth)
Linear (HTTP avec OAuth)
Atlassian / Jira (HTTP avec OAuth)
Atlassian / Jira (HTTP avec OAuth)
Après l’avoir ajouté, exécutez
devin mcp login atlassian pour vous authentifier. Chaque client MCP (Windsurf, Claude Code, Devin CLI) conserve sa propre session OAuth. Vous devez donc vous connecter séparément, même si vous vous êtes déjà authentifié dans un autre outil.Serveur personnalisé (stdio)
Serveur personnalisé (stdio)
Authentification
Certains serveurs MCP distants nécessitent une authentification OAuth. Après avoir ajouté un serveur utilisant OAuth à votre configuration, authentifiez-vous à l’aide de la commandelogin :
Si le serveur prend en charge OAuth, une invite d’authentification s’affichera également automatiquement lors de sa première utilisation.
Réauthentification
Les identifiants OAuth enregistrés ne sont pas valables indéfiniment : ils expirent et un administrateur peut les révoquer du côté du fournisseur. Dans ce cas, le serveur signale l’état auth-required au lieu de se connecter, et ses outils (ainsi que les prompts) ne sont plus disponibles jusqu’à ce que vous vous reconnectiez. Pour vous réauthentifier, effacez les identifiants enregistrés et relancez le flux dans le navigateur :logout supprime les tokens persistants de ce serveur ; login relance le flux OAuth et en stocke de nouveaux. Faites de même après avoir modifié oauthClientId, oauthClientSecret ou oauthResource : les identifiants émis avec les anciens paramètres ne sont pas réutilisés.
Les intégrations d’éditeur qui pilotent Devin CLI via ACP affichent le même état nécessitant une authentification, avec une action de réauthentification qui efface les identifiants enregistrés et relance le flux dans le navigateur — l’équivalent de la paire
logout + login ci-dessus.Clients OAuth préenregistrés
La plupart des serveurs MCP utilisant OAuth prennent en charge l’enregistrement dynamique des clients (DCR). Devin CLI s’enregistre donc automatiquement, et vous n’avez pas besoin de fournir d’identifiants client. Certains fournisseurs (p. ex. GitHub) ne prennent pas en charge la DCR et exigent à la place un client OAuth préenregistré. Pour ces fournisseurs, indiquez le Client ID — ainsi qu’un secret client s’il s’agit d’un client confidentiel — viaoauthClientId / oauthClientSecret :
oauthClientId est défini, Devin CLI ignore l’enregistrement dynamique du client et utilise votre client préenregistré lors du flux OAuth. Exécutez devin mcp login <name> (ou déclenchez l’authentification lors de la première utilisation) pour vous authentifier comme d’habitude.
Vous pouvez également les définir depuis la ligne de commande lors de l’ajout d’un serveur ou de la connexion à celui-ci :
oauthClientId / oauthClientSecret sont des identifiants client OAuth utilisés dans le cadre du flux d’autorisation. Il ne s’agit pas d’identifiants génériques envoyés à chaque requête — si un serveur attend un token statique, utilisez plutôt headers (HTTP) ou env (stdio).Dérogation de la ressource OAuth
Lors de l’autorisation OAuth et de l’échange de jetons, Devin CLI envoie un paramètreresource conforme à la RFC 8707 afin que le serveur d’autorisation puisse émettre des jetons restreints à une audience donnée. Par défaut, la valeur correspond à l’URL du serveur MCP. Remplacez-la par oauthResource :
- Non défini (par défaut) : envoie
resourceavec comme valeur l’URL du serveur MCP. - Valeur non vide : remplace la valeur par défaut par votre valeur (p. ex. un URI d’ID d’application spécifique).
- Chaîne vide (
"") : omet entièrement le paramètreresourceà la fois de l’URL d’autorisation et de l’échange du jeton.
oauthResource prend en charge l’expansion des variables ${env:VAR} et ${file:/path}.
Activation et désactivation des serveurs
Vous pouvez temporairement désactiver un serveur MCP sans supprimer sa configuration. Un serveur désactivé est ignoré lors de la découverte des outils : ses outils n’apparaîtront pas et le processus du serveur ne sera pas lancé."disabled": true pour l’entrée de serveur dans le fichier de configuration. Utilisez -s/--scope pour cibler un périmètre spécifique :
Désactiver un serveur est utile lorsque vous souhaitez conserver sa configuration (y compris les variables d’environnement et les identifiants OAuth) tout en cessant temporairement de l’utiliser — par exemple, pour réduire le temps de démarrage ou isoler un problème.
Gestion des secrets
Pour les projets d’équipe, la méthode recommandée est la suivante :- Définissez le serveur dans
.devin/mcp_config.jsonavec des espaces réservés pour les variables d’environnement, ou sans variables d’environnement - Chaque membre de l’équipe ajoute ses clés personnelles dans
.devin/mcp_config.local.json
Autorisations MCP
Vous pouvez approuver à l’avance, refuser ou toujours demander pour des outils MCP spécifiques dans votre configuration des autorisations :Prompts
Les prompts ne nécessitent aucune configuration spécifique : tout serveur connecté qui déclare la capacité MCPprompts ajoute automatiquement des commandes slash /mcp__<server>__<prompt>. Comme le nom de la commande inclut le nom du serveur, renommer un serveur dans mcpServers renomme également ses commandes de prompt. Consultez Vue d’ensemble de MCP — Les prompts en tant que commandes slash.
Restrictions de l’organisation
Si vous faites partie d’une Team Enterprise, votre administrateur peut limiter les serveurs MCP auxquels vous pouvez vous connecter. Un serveur que vous avez configuré peut être bloqué si MCP est désactivé pour votre Team, ou s’il ne figure pas dans la liste d’autorisation de votre Team ni dans un registre MCP imposé — auquel cas il ne pourra pas se connecter et ses outils ne seront pas disponibles. Voir Team Settings — MCP Registry pour plus de détails.Dépannage
Authentification requise / erreurs OAuth avec des serveurs distants
Authentification requise / erreurs OAuth avec des serveurs distants
Si vous voyez des erreurs comme Chaque client MCP s’authentifie indépendamment. Même si vous vous êtes déjà authentifié dans Windsurf ou Claude Code, vous devez exécuter
Auth required ou AuthRequired lors de la connexion à un serveur MCP distant, cela signifie que le serveur nécessite une authentification OAuth.Exécutez :devin mcp login séparément pour Devin CLI.Pour vérifier votre statut d’authentification, essayez de supprimer puis de rajouter les identifiants :Le serveur ne démarre pas
Le serveur ne démarre pas
Vérifiez que la commande fonctionne en dehors de Devin CLI :Vérifiez que toutes les variables d’environnement requises sont bien définies.
Les outils n’apparaissent pas
Les outils n’apparaissent pas
Demandez à l’agent de lister les serveurs MCP et les outils. Le serveur peut avoir besoin d’un instant pour s’initialiser.
Autorisation refusée
Autorisation refusée
Vérifiez la configuration de vos autorisations. Par défaut, les outils MCP demandent une approbation. Ajoutez-les à
permissions.allow pour les approuver automatiquement.Erreurs OAuth dues au paramètre resource
Erreurs OAuth dues au paramètre resource
Certains serveurs d’autorisation rejettent les requêtes OAuth qui incluent le paramètre Authentifiez-vous de nouveau ensuite :Consultez Dérogation de la ressource OAuth pour obtenir la liste complète des comportements de
resource de la RFC 8707. Définissez oauthResource sur une chaîne vide afin d’omettre ce paramètre :oauthResource.Basculement vers l’ancien SSE
Basculement vers l’ancien SSE
Lors de la connexion à un serveur HTTP, Devin CLI essaie d’abord Streamable HTTP. Si le serveur renvoie une erreur HTTP 4xx non liée à l’authentification (p. ex. 404 ou 405), il effectue automatiquement un fallback vers l’ancien SSE sur la même URL configurée. Cela suit les recommandations de rétrocompatibilité de la spécification MCP.Le fallback ne se déclenche que pour les réponses 4xx non liées à l’authentification. Les erreurs de connexion, les délais d’expiration et les réponses 5xx sont signalés directement, sans tentative SSE. Les réponses exigeant une authentification — une réponse 401, ou 403 en cas de périmètre insuffisant, accompagnée d’un challenge
WWW-Authenticate — sont également signalées directement : vous pouvez ainsi exécuter devin mcp login <server-name> (ou accorder le périmètre requis) au lieu de voir une tentative SSE. Consultez Authentification requise / erreurs OAuth avec des serveurs distants.Si l’endpoint SSE de votre serveur se trouve sur un chemin différent (p. ex. /sse au lieu de /mcp), définissez "transport": "sse" avec l’URL SSE pour vous connecter directement, sans tentative préalable via Streamable HTTP.Si les deux transports échouent, le message d’erreur inclut les détails des deux tentatives pour faciliter le dépannage.
