Configuration MCP de Windsurf : marketplace et installation de serveurs dans Devin Desktop

Windsurf est devenu Devin Desktop en juin 2026, et sa configuration MCP s’est scindée en deux. Cet article indique où se trouve chaque fichier de configuration, quel agent dispose du marketplace, comment ajouter à la main des serveurs stdio et distants, et comment corriger un serveur qui n’apparaît jamais, avec PicassoIA comme exemple concret.

Configuration MCP de Windsurf : marketplace et installation de serveurs dans Devin Desktop
Cristian Da Conceicao
Fondateur de Picasso IA

Vous cherchez un tutoriel sur la configuration MCP de Windsurf, vous le suivez pas à pas, et l’icône du marketplace qu’il décrit n’apparaît nulle part à l’écran. Ce n’est pas une erreur de votre part. Windsurf a été renommé Devin Desktop en juin 2026, les anciens documents redirigent désormais vers docs.devin.ai, et l’agent par défaut des nouveaux onglets est passé de Cascade à Devin Local. Les deux agents configurent les serveurs MCP de manières différentes, et un seul dispose d’un marketplace.

Cet article vous aide à identifier la configuration que vous utilisez, à savoir où se trouve chaque fichier de configuration, comment ajouter des serveurs via le marketplace ou à la main, et quoi vérifier lorsqu’un serveur reste muet. Il montre aussi comment connecter les modèles d’image et de vidéo de PicassoIA via MCP, afin que votre éditeur puisse produire des ressources pendant que vous codez. Chaque configuration ci-dessous provient de la documentation officielle de Devin, sauf indication contraire, et lorsque ces pages se contredisent, je le signale.

Ce qui a changé avec Windsurf

Windsurf est désormais Devin Desktop

Cognition a renommé l’éditeur en juin 2026. Les résultats de recherche et les anciens tutoriels mentionnent encore Windsurf, mais le changelog, les pages produit et la documentation sont maintenant regroupés sous le nom Devin. Cascade subsiste comme nom de l’agent historique, tandis que Devin Local est l’agent par défaut.

Cette scission explique pourquoi tant de tutoriels semblent faux. La page officielle sur MCP dans Cascade commence par un avertissement : ses instructions ne s’appliquent qu’à l’agent Cascade historique, et Devin Local configure les serveurs MCP via les fichiers de configuration de la CLI Devin.

Développeur en pull col rond gris anthracite à un bureau debout, avec deux écrans affichant des panneaux d’éditeur flous

Deux agents, deux configurations

FonctionnalitéCascade historiqueDevin Local
Marketplace MCPAucunOui, avec installations en un clic
Ajout d’un serveurModifier mcp_config.json depuis le menu ActionsMarketplace, devin mcp add ou fichiers de configuration
Approbation avant les appels d’outilsNon par défautDemandée par défaut
Plafond d’outils100 outils au totalNon indiqué sur les pages que j’ai consultées
Champs d’un serveur distantserverUrl ou url, plus headersurl, plus transport et headers

💡 Vérification rapide : Les nouveaux onglets s’ouvrent avec Devin Local par défaut. Sauf si vous avez changé d’agent volontairement, considérez que la colonne Devin Local décrit votre éditeur.

Où se trouve le fichier de configuration

Avant de modifier quoi que ce soit, identifiez le fichier que lit votre agent. Une modification correcte dans le mauvais fichier produit le type d’échec le plus déroutant : rien ne se passe, et rien ne signale d’erreur.

Chemins de Cascade historique

La page actuelle de Cascade indique ~/.config/devin/mcp_config.json sous macOS et Linux (ou le même fichier sous $XDG_CONFIG_HOME/devin/ lorsque cette variable est définie) et %APPDATA%\devin\mcp_config.json sous Windows. Pour l’ouvrir depuis l’éditeur, cliquez sur le menu ... (Actions) en haut à droite du panneau Cascade, puis choisissez Open MCP config file dans la section MCPs.

Les tutoriels rédigés avant le renommage pointent ailleurs : ~/.codeium/windsurf/mcp_config.json, ou %USERPROFILE%\.codeium\windsurf\mcp_config.json sous Windows. Des articles tiers indiquent qu’une entrée de l’ancien fichier se charge encore, mais les pages officielles ne le confirment pas. Considérez l’ancien chemin comme une solution de repli, et non comme la marche à suivre.

Gros plan de mains tapant au clavier tout en modifiant un fichier de configuration sur un ordinateur portable

Couches de configuration de Devin Local

Devin Local lit les fichiers de configuration de la CLI Devin, qui se répartissent en trois couches :

PortéeFichierRemarques
Utilisateur~/.config/devin/mcp_config.json ou %APPDATA%\devin\mcp_config.jsonS’applique à tous les projets
Projet.devin/mcp_config.jsonSe trouve dans le dépôt, il peut donc être partagé
Surcharge locale.devin/mcp_config.local.jsonIgnoré par Git, personnel

Un point délicat : la page de Devin Local répertorie des fichiers config.json avec les mêmes trois portées, tandis que la page de la CLI indique que les anciennes versions (avant la v3000.3) conservaient mcpServers dans les fichiers de configuration principaux, et que les versions récentes utilisent le fichier séparé mcp_config.json. Les documents ne s’accordent pas sur la version à retenir. Exécutez devin mcp list pour voir ce que votre installation a réellement chargé avant de modifier un fichier.

Utiliser le marketplace MCP

La page officielle de Cascade est catégorique : Cascade ne dispose ni de marketplace MCP ni d’installation en un clic, ces fonctionnalités n’existent que pour l’agent Devin Local. Si un tutoriel vous demande de cliquer sur l’icône MCPs du panneau Cascade puis sur Install, il décrit l’ancien éditeur.

Où le trouver

Dans Devin Local, les notes de version renvoient à la page Customize de la barre latérale, où Browse marketplace se trouve dans l’onglet Plugins. Les intitulés des menus changent d’une version à l’autre : si vous ne les voyez pas, commencez par Customize et cherchez à partir de là.

De nombreuses fiches sont des intégrations OAuth en un clic. Les notes de version citent des services tels que Dropbox, ClickHouse Cloud, Typeform, Coda, GitBook, Railway, Retool, Smartsheet et Make. L’installation renvoie une URL d’autorisation, vous l’approuvez dans le navigateur, et le serveur se connecte sans qu’aucun jeton ne soit collé dans un fichier. Si les identifiants enregistrés expirent plus tard, le serveur affiche un état Needs auth accompagné d’un bouton Authenticate.

Vue en plongée d’un bureau de développeur bien rangé, avec un ordinateur portable, un carnet, des post-it et une plante

Quand s’en passer

Le marketplace est la voie la plus rapide, mais pas toujours la bonne. Modifiez la configuration à la main lorsque :

  • Vous devez figer la version d’un paquet dans args au lieu de prendre la dernière version disponible.
  • Le serveur est interne et n’apparaîtra jamais dans une liste publique.
  • Vous voulez que la configuration soit versionnée dans le dépôt pour que vos coéquipiers la récupèrent au moment du clonage.
  • Vous avez besoin d’un contrôle précis des variables d’environnement et des arguments de lancement.

Les installations OAuth sacrifient le contrôle au profit de la commodité : aucun secret ne se trouve sur votre disque, mais vous n’avez pas non plus votre mot à dire sur les arguments de lancement. Une entrée modifiée à la main vous offre les deux, au prix de renouveler vous-même les jetons.

Ajouter un serveur à la main

Exemple de serveur stdio

Un serveur stdio est un processus local que l’éditeur démarre et avec lequel il communique via l’entrée et la sortie standard. Voici l’exemple officiel de GitHub, avec le jeton déplacé dans une variable d’environnement :

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${env:GITHUB_PERSONAL_ACCESS_TOKEN}"
      }
    }
  }
}

command et args sont ce que vous taperiez dans un terminal. L’option -y permet à npx d’installer le paquet sans s’arrêter pour demander confirmation. Le bloc env est transmis au processus, et rien d’autre de votre shell n’est garanti de l’atteindre.

Vue en contre-plongée d’une allée de baies de serveurs noires avec des faisceaux de câbles réseau soigneusement rangés

Exemple de serveur distant

Les serveurs distants demandent une URL au lieu d’une commande. Cascade historique accepte serverUrl ou url :

{
  "mcpServers": {
    "remote-http-mcp": {
      "serverUrl": "<your-server-url>/mcp",
      "headers": {
        "Authorization": "Bearer ${env:AUTH_TOKEN}"
      }
    }
  }
}

Le format de la CLI Devin utilise url et un champ transport explicite :

{
  "mcpServers": {
    "server-name": {
      "url": "https://mcp.example.com/mcp",
      "transport": "http",
      "headers": {},
      "disabled": false
    }
  }
}

Lorsque transport vaut "http" ou est omis, la CLI tente d’abord Streamable HTTP, puis bascule sur SSE si le serveur répond 404. Cascade documente au total trois transports : stdio, Streamable HTTP et SSE, chacun avec la prise en charge d’OAuth.

Voici une brève référence des champs pour les deux formats :

ChampUtilisé parRôle
command, argsStdioLe programme à démarrer et ses arguments
envStdioVariables transmises au processus
serverUrl ou urlDistantAdresse où le serveur écoute
transportDistant, format CLIÀ laisser sur "http" pour tenter d’abord Streamable HTTP
headersDistantEn-têtes de requête supplémentaires, comme un jeton Bearer
oauthClientId, oauthClientSecret, oauthResourceDistant, format CLIParamètres pour les serveurs qui nécessitent OAuth
disabledStdio et distant, format CLIDésactive une entrée sans la supprimer
disabledToolsCascadeMasque certains outils à l’agent

Développeur travaillant à une table près de la fenêtre d’un café un après-midi pluvieux, avec un ordinateur portable et un flat white

Commandes CLI et secrets

Vous pouvez vous passer entièrement du JSON. La CLI Devin gère les serveurs avec ces commandes :

CommandeAction
devin mcp add <name> -- <command> [args...]Ajoute un serveur stdio
devin mcp add <name> <URL>Ajoute un serveur HTTP
devin mcp list et devin mcp getAffichent ce qui est chargé et inspectent un serveur
devin mcp login <name> et logoutDémarrent ou effacent la connexion OAuth
devin mcp enable et disableActivent ou désactivent un serveur
devin mcp remove <name>Supprime l’entrée

Les fichiers de configuration acceptent deux schémas d’interpolation : ${env:VAR_NAME} insère une variable d’environnement, et ${file:/path/to/file} remplace par le contenu d’un fichier, avec des chemins ~ autorisés.

💡 Conseil : Placez vos jetons personnels dans .devin/mcp_config.local.json, ignoré par Git, et gardez le fichier partagé .devin/mcp_config.json sans aucun secret. Un jeton validé une seule fois reste dans l’historique Git.

Limites, approbations et listes d’autorisation

Le plafond de 100 outils

Cascade peut accueillir 100 outils au total sur l’ensemble des serveurs connectés. Les gros serveurs consomment ce budget très vite, et une fois la limite dépassée, certains outils ne sont tout simplement pas disponibles. Retirez ce dont vous n’avez pas besoin grâce au tableau disabledTools :

{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "disabledTools": ["create_repository"]
    }
  }
}

Un jeu d’outils plus réduit aide aussi l’agent à choisir le bon outil. Désactiver ceux que vous n’appelez jamais vaut donc la peine, même en dessous de la limite.

Mains écrivant dans un classeur à anneaux à côté de pages imprimées de code et d’une règle

Demandes d’approbation dans Devin Local

Sur ce point, Devin Local se comporte différemment de Cascade. Sa configuration par défaut demande une approbation avant d’appeler tout outil MCP. Vous pouvez accorder l’autorisation à un seul outil ou à un serveur entier, pour la session en cours ou de façon permanente. Les administrateurs Enterprise peuvent autoriser par défaut certains serveurs ou outils précis, afin que les intégrations de confiance cessent d’interrompre les utilisateurs.

Listes d’autorisation d’équipe

Les administrateurs des offres Teams et Enterprise peuvent définir un registre MCP personnalisé ainsi qu’une liste d’autorisation. Deux règles comptent. Dès qu’un serveur figure dans la liste, tous les serveurs qui n’y figurent pas sont bloqués pour l’ensemble de l’équipe. Et les motifs sont des expressions régulières comparées à la chaîne complète, si bien qu’un motif trop souple ne correspondra pas comme vous l’attendez. Les utilisateurs Enterprise doivent également activer MCP manuellement dans les paramètres.

Un déploiement prudent suit ce schéma : listez les serveurs que votre équipe utilise déjà, écrivez un motif ancré par serveur, activez la liste d’autorisation pour un petit groupe de test, puis demandez à une personne de ce groupe d’ajouter un serveur que vous n’avez pas listé et vérifiez qu’il est bloqué. Ce n’est qu’ensuite que vous l’étendez à tout le monde.

Quatre collègues debout autour d’un tableau blanc couvert de boîtes et de flèches dessinées à la main, dans un open space

Dépanner un serveur muet

Vérifier les bases

Parcourez cette liste dans l’ordre :

  1. Validez le JSON. Une virgule en trop ou un guillemet manquant rend tout le fichier illisible.
  2. Exécutez la commande dans un terminal. Si npx -y @modelcontextprotocol/server-github échoue là-bas, il échouera aussi dans l’éditeur.
  3. Vérifiez Node.js. Les guides d’installation tiers indiquent Node.js 18 ou une version plus récente pour les serveurs npx.
  4. Lancez devin mcp list. Cette commande montre ce qui est réellement chargé, ce qui vaut mieux que de deviner.
  5. Redémarrez l’éditeur. La page officielle ne précise pas si un redémarrage est nécessaire, alors que les guides tiers le recommandent : redémarrer ne coûte donc pas cher et met à l’abri d’une mauvaise surprise.
  6. Examinez l’environnement. Un serveur qui fonctionne dans votre terminal peut dépendre d’une variable que l’éditeur n’a jamais vue. Définissez-la dans env, ou utilisez ${env:VAR} et lancez l’éditeur depuis un shell qui la contient.

Gros plan d’un développeur à lunettes en écaille de tortue, fronçant les sourcils devant son ordinateur portable pendant le débogage

Écarter le mauvais fichier

Si le serveur n’apparaît jamais, vérifiez que vous avez modifié le fichier que lit votre agent. Un tutoriel antérieur au renommage vous envoie vers ~/.codeium/windsurf/mcp_config.json, alors que Devin Local lit les couches de la CLI. Ajoutez une entrée jetable, puis confirmez qu’elle apparaît dans devin mcp list avant de construire la configuration définitive.

Si vous migrez une ancienne configuration Windsurf, copiez son bloc mcpServers dans votre fichier mcp_config.json au niveau utilisateur, exécutez devin mcp list, et ne supprimez l’ancien fichier qu’ensuite. En procédant dans cet ordre, vous ne perdez jamais un serveur fonctionnel pendant vos tests.

Lorsqu’une liste d’autorisation d’équipe est active, la documentation propose quatre vérifications : confirmer que le motif correspond exactement à la configuration de l’utilisateur, vérifier l’échappement des expressions régulières, consulter les journaux (les motifs invalides y sont signalés par des avertissements) et tester les motifs dans un testeur d’expressions régulières.

Utiliser PicassoIA via MCP

Une fois la configuration en ordre, un serveur MCP n’est utile que s’il apporte quelque chose à votre projet. Un bon premier candidat est la génération d’images, car les visuels d’en-tête d’articles, les captures d’écran d’application et les bannières de README surgissent en plein développement. PicassoIA propose quatre modèles via son connecteur MCP et son API développeur :

ModèleFonction
PicassoIA ImageTexte vers image
PicassoIA Image Editor ProModifie une image existante
PicassoIA VideoVidéo à partir d’un texte ou d’une image
Seedance 2.5 LiteVidéo avec audio

Voici comment le brancher :

  1. Ouvrez votre page de connexions MCP. Elle se trouve à l’adresse picassoia.com/en/mcp/accounts et nécessite de vous connecter. Créez une connexion et copiez l’URL du serveur affichée. Cette URL n’est pas publiée sur le site public, ne la devinez donc pas.
  2. Ajoutez-la depuis la CLI. Exécutez devin mcp add picassoia <URL from step 1>. C’est la forme de commande documentée pour un serveur HTTP.
  3. Connectez-vous si on vous le demande. Si le serveur utilise OAuth, exécutez devin mcp login picassoia.
  4. Vérifiez qu’il est chargé. devin mcp list doit afficher picassoia.
  5. Demandez une ressource. Indiquez à l’agent ce dont vous avez besoin, par exemple une photo d’en-tête au format 16:9 pour un article. Il lance la tâche avec PicassoIA Image, puis interroge son état jusqu’à ce qu’il passe à succeeded et vous donne l’URL.

Bureau de graphiste avec un grand écran affichant une photo de lac de montagne, une tablette graphique et un appareil photo

Outils du connecteur et limites

Le connecteur PicassoIA expose neuf outils : generate_image, edit_image, generate_video_picassoia, generate_video_seedance, get_generation, list_generations, cancel_generation, list_models et get_account. C’est une petite partie d’un budget de 100 outils.

Les tâches sont asynchrones. Un appel de génération renvoie un identifiant de prédiction, et l’agent interroge get_generation jusqu’à ce que la tâche réussisse ou échoue. Un échec est définitif : relancez alors une nouvelle génération. La plateforme autorise 5 prédictions simultanées par compte, partagées entre les tokens API et les connexions MCP, et les prompts sont limités à 4 000 caractères.

Vous préférez les scripts à l’éditeur ? L’API développeur se trouve à https://api.picassoia.com/v1 et accepte un jeton Bearer qui commence par pia_sk_, créé depuis la section API de votre compte. Les prédictions se créent avec POST /v1/models/{owner}/{name}/predictions et se consultent avec GET /v1/predictions/{id}. La page tarifaire et la documentation de l’API ne décrivent pas l’accès par forfait de la même façon : vérifiez donc le forfait dont votre compte a besoin avant un déploiement en équipe.

💡 Conseil : Besoin d’aide pour rédiger un prompt avant que l’agent ne l’exécute ? La collection de grands modèles de langage de PicassoIA comprend Claude Sonnet 5 et GPT 5.6 Sol.

Essayez avec vos propres images

Votre configuration ne vaut que par ce qu’elle produit en premier, alors produisez quelque chose. Connectez le serveur, demandez une image d’en-tête pour le projet sur lequel vous travaillez aujourd’hui, et voyez le résultat. Modifiez l’éclairage, l’objectif et le cadrage dans votre prompt, relancez, puis comparez. Quelques essais suffisent pour trouver un style qui convient à votre blog ou à votre application.

Trois premiers prompts font de bons tests de connexion :

  • Une photo d’en-tête. Demandez à PicassoIA Image une photographie au format 16:9 d’un bureau à l’heure dorée, avec un objectif et un éclairage précis indiqués dans le prompt.
  • Une retouche. Confiez une capture d’écran ou une photo existante à PicassoIA Image Editor Pro et demandez une modification précise.
  • Un court clip. Transformez la photo d’en-tête en mouvement avec PicassoIA Video, puis vérifiez le résultat avant de lancer un rendu plus long.

Ouvrez Picasso IA, choisissez un modèle dans la liste et générez votre première image. Chaque modèle, du texte vers image à la vidéo et au langage, est répertorié sur picassoia.com/en/all-models.

Partager cet article

Choisissez votre langue