> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuration MCP de Cascade

> Configurez des serveurs MCP pour l’ancien agent Cascade dans mcp_config.json afin d’accéder à des outils comme GitHub et des bases de données, avec des contrôles d’administration pour les Teams.

**MCP (Model Context Protocol)** est un protocole qui permet aux LLM d’accéder à des outils et services personnalisés.
Un client MCP (Cascade, dans ce cas) peut envoyer des requêtes à des serveurs MCP pour accéder aux outils qu’ils fournissent.
Cascade s’intègre désormais nativement à MCP, ce qui vous permet d’utiliser votre propre sélection de serveurs MCP dans Cascade.
Consultez la [documentation officielle de MCP](https://modelcontextprotocol.io/) pour en savoir plus.

<Note>Les utilisateurs Enterprise doivent l’activer manuellement dans les Settings</Note>

<Warning>
  **La configuration MCP de cette page s’applique uniquement à l’ancien agent Cascade.** Le [Local Agent de Devin](/fr/desktop/devin-local) — l’agent par défaut pour les nouveaux onglets — configure à la place les serveurs MCP dans les [fichiers de configuration](/fr/cli/extensibility/mcp/configuration) du Devin CLI.
</Warning>

<div id="adding-a-new-mcp">
  ## Ajouter un nouveau MCP
</div>

Les serveurs MCP de Cascade s'ajoutent en modifiant directement le fichier `mcp_config.json` (voir la section `mcp_config.json` ci-dessous).
Pour ouvrir le fichier, cliquez sur le menu `...` (Actions) en haut à droite du panneau Cascade, puis cliquez sur l'icône
`Open MCP config file` dans la section MCPs. Ajoutez une entrée pour chaque serveur sous `mcpServers` et enregistrez le fichier.

<Note>Cascade ne dispose pas de MCP Marketplace ni d'installation en un clic. Ces fonctionnalités sont réservées au Local Agent de Devin.</Note>

Devin Desktop prend en charge trois [types de transport](https://modelcontextprotocol.io/docs/concepts/transports) pour les serveurs MCP : `stdio`, `Streamable HTTP` et `SSE`.

Devin Desktop prend également en charge OAuth pour chaque type de transport.

Pour les serveurs `http`, l’URL doit correspondre à celle de l’endpoint et ressembler à `https://<your-server-url>/mcp`.

<div id="configuring-mcp-tools">
  ## Configuration des outils MCP
</div>

Chaque MCP donne accès à un certain nombre d’outils. Cascade peut accéder à un maximum de 100 outils au total à un instant donné.

La section MCPs du menu `...` (Actions) du panneau Cascade répertorie vos serveurs configurés ainsi que le nombre d’outils activés pour chacun.
Utilisez le toggle situé à côté d’un serveur pour l’activer ou le désactiver.

Pour désactiver des outils individuellement, indiquez leurs noms dans le tableau `disabledTools` du serveur, dans `mcp_config.json` :

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

<div id="mcp_configjson">
  ## mcp\_config.json
</div>

Le fichier `mcp_config.json` est un fichier JSON qui contient une liste de serveurs auxquels Cascade peut se connecter. Il se trouve à l’emplacement suivant :

* **macOS / Linux :** `~/.config/devin/mcp_config.json` (ou `$XDG_CONFIG_HOME/devin/mcp_config.json` si `XDG_CONFIG_HOME` est défini)
* **Windows :** `%APPDATA%\devin\mcp_config.json`

Voici un exemple de configuration qui définit un seul serveur pour GitHub :

```json theme={null}
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_PERSONAL_ACCESS_TOKEN>"
      }
    }
  }
}
```

Veillez à fournir les arguments requis et les variables d’environnement nécessaires aux serveurs que vous souhaitez utiliser.

Consultez le [dépôt de référence officiel des serveurs MCP](https://github.com/modelcontextprotocol/servers) ou [OpenTools](https://opentools.com/) pour voir quelques exemples de serveurs.

<div id="popular-mcp-server-examples">
  ### Exemples de serveurs MCP populaires
</div>

Vous trouverez ci-dessous des exemples de configuration pour certains serveurs MCP couramment utilisés. Vous pouvez les ajouter à votre fichier `mcp_config.json`.

<AccordionGroup>
  <Accordion title="GitHub" description="Gestion des dépôts, opérations sur les fichiers et intégration à l’API GitHub.">
    Le serveur MCP GitHub fournit des outils pour gérer les dépôts, effectuer des opérations sur les fichiers, suivre les problèmes et gérer les pull requests.

    **Avec npx :**

    ```json theme={null}
    {
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_PERSONAL_ACCESS_TOKEN>"
          }
        }
      }
    }
    ```

    **Avec Docker :**

    ```json theme={null}
    {
      "mcpServers": {
        "github": {
          "command": "docker",
          "args": [
            "run", "-i", "--rm",
            "-e", "GITHUB_PERSONAL_ACCESS_TOKEN",
            "ghcr.io/github/github-mcp-server"
          ],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_PERSONAL_ACCESS_TOKEN>"
          }
        }
      }
    }
    ```

    Pour créer un jeton d’accès personnel, accédez à [GitHub Settings > Developer settings > Personal access tokens](https://github.com/settings/tokens).
  </Accordion>

  <Accordion title="Slack" description="Gestion des canaux et messagerie pour les espaces de travail Slack.">
    Le serveur MCP Slack permet de gérer les canaux, la messagerie et les interactions avec l’espace de travail.

    ```json theme={null}
    {
      "mcpServers": {
        "slack": {
          "command": "npx",
          "args": ["-y", "@anthropic/mcp-server-slack"],
          "env": {
            "SLACK_BOT_TOKEN": "<YOUR_SLACK_BOT_TOKEN>",
            "SLACK_TEAM_ID": "<YOUR_SLACK_TEAM_ID>"
          }
        }
      }
    }
    ```

    Pour configurer un jeton de bot Slack :

    1. Créez une application Slack sur [api.slack.com/apps](https://api.slack.com/apps)
    2. Ajoutez les scopes OAuth requis (p. ex. `channels:read`, `chat:write`, `users:read`)
    3. Installez l’application dans votre espace de travail, puis copiez le Bot User OAuth Token
  </Accordion>

  <Accordion title="PostgreSQL" description="Accès en lecture seule à la base de données avec inspection du schéma.">
    Le serveur MCP PostgreSQL fournit un accès en lecture seule aux bases de données PostgreSQL, y compris l’inspection du schéma et l’exécution de requêtes.

    ```json theme={null}
    {
      "mcpServers": {
        "postgres": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-postgres"],
          "env": {
            "POSTGRES_CONNECTION_STRING": "postgresql://user:password@localhost:5432/database"
          }
        }
      }
    }
    ```

    <Warning>Le serveur PostgreSQL fournit par défaut un accès en lecture seule pour des raisons de sécurité. Assurez-vous que votre chaîne de connexion utilise des identifiants adaptés avec des autorisations limitées.</Warning>
  </Accordion>

  <Accordion title="Filesystem" description="Opérations sécurisées sur les fichiers avec contrôles d’accès configurables.">
    Le serveur MCP Filesystem fournit un accès sécurisé aux fichiers et répertoires locaux avec des contrôles d’accès configurables.

    ```json theme={null}
    {
      "mcpServers": {
        "filesystem": {
          "command": "npx",
          "args": [
            "-y", "@modelcontextprotocol/server-filesystem",
            "/path/to/allowed/directory"
          ]
        }
      }
    }
    ```

    Vous pouvez spécifier plusieurs répertoires autorisés en ajoutant d’autres arguments de chemin. Seuls les fichiers situés dans ces répertoires seront accessibles.
  </Accordion>

  <Accordion title="Brave Search" description="Recherche sur le Web et en local via l’API Search de Brave.">
    Le serveur MCP Brave Search permet d’effectuer des recherches sur le Web via l’API Search de Brave.

    ```json theme={null}
    {
      "mcpServers": {
        "brave-search": {
          "command": "npx",
          "args": ["-y", "@anthropic/mcp-server-brave-search"],
          "env": {
            "BRAVE_API_KEY": "<YOUR_BRAVE_API_KEY>"
          }
        }
      }
    }
    ```

    Pour obtenir une clé API Brave, inscrivez-vous sur [brave.com/search/api](https://brave.com/search/api/).
  </Accordion>

  <Accordion title="Memory" description="Système de mémoire persistante basé sur un graphe de connaissances.">
    Le serveur MCP Memory fournit un système de mémoire persistante reposant sur un graphe de connaissances, ce qui permet à Cascade de conserver des informations d’une session à l’autre.

    ```json theme={null}
    {
      "mcpServers": {
        "memory": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-memory"]
        }
      }
    }
    ```

    Le serveur de mémoire stocke les données localement et les conserve d’une session à l’autre, ce qui le rend utile pour préserver le contexte des projets, des préférences et des informations apprises.
  </Accordion>
</AccordionGroup>

<div id="remote-http-mcps">
  ### MCP HTTP distants
</div>

À noter que pour les MCP HTTP distants, la configuration est légèrement
différente et nécessite un champ `serverUrl` ou `url`.

Voici un exemple de configuration pour un serveur HTTP :

```json theme={null}
{
  "mcpServers": {
    "remote-http-mcp": {
      "serverUrl": "<your-server-url>/mcp",
      "headers": {
        "API_KEY": "value"
      }
    }
  }
}
```

<div id="config-interpolation">
  ### Interpolation de configuration
</div>

Le fichier `mcp_config.json` prend en charge l’interpolation de variables
dans les champs suivants : `command`, `args`, `env`, `serverUrl`, `url` et
`headers`. Cela vous permet d’éviter de coder en dur des secrets directement dans le fichier de configuration.

Deux motifs d’interpolation sont pris en charge :

* **`${env:VAR_NAME}`** — remplacé par la valeur de la variable d’environnement `VAR_NAME`. Si la variable n’est pas définie, il est remplacé par une chaîne vide.
* **`${file:/path/to/file}`** — remplacé par le contenu du fichier au chemin indiqué, après suppression des espaces superflus en début et fin de contenu. Les chemins avec tilde (p. ex. `~/secrets/key.txt`) sont pris en charge. Si le fichier ne peut pas être lu, le motif reste inchangé.

Voici un exemple utilisant une variable d’environnement dans `headers` :

```json theme={null}
{
  "mcpServers": {
    "remote-http-mcp": {
      "serverUrl": "<your-server-url>/mcp",
      "headers": {
        "API_KEY": "Bearer ${env:AUTH_TOKEN}"
      }
    }
  }
}
```

Voici un exemple montrant comment lire une API key à partir d’un fichier :

```json theme={null}
{
  "mcpServers": {
    "my-server": {
      "command": "node",
      "args": ["server.js"],
      "env": {
        "API_KEY": "${file:~/.secrets/api_key.txt}"
      }
    }
  }
}
```

<div id="admin-controls-teams-enterprises">
  ## Contrôles d’administration (Teams et Enterprise)
</div>

Les administrateurs d’une Team peuvent activer ou désactiver l’accès MCP pour leur Team, ainsi qu’autoriser, via une liste d’autorisation, les serveurs MCP approuvés que leur Team peut utiliser :

<div id="mcp-registry">
  ### Registre MCP
</div>

Les Teams Enterprise peuvent configurer des registres MCP personnalisés pour remplacer la MCP Marketplace par défaut de Devin Desktop utilisée par le [Local Agent de Devin](/fr/desktop/devin-local). Les Teams peuvent associer les URL de leurs propres registres pour contrôler quels MCP sont accessibles à leurs utilisateurs. Cascade ne dispose d’aucune marketplace : les registres ne modifient donc pas ce que voient les utilisateurs de Cascade ; utilisez la [liste d’autorisation MCP](#mcp-allowlist) pour restreindre les serveurs Cascade.

<Note>Les registres sont l’approche privilégiée pour gérer l’accès aux MCP, même si les listes d’autorisation fonctionnent également.</Note>

<div id="configuring-custom-registries">
  #### Configuration de registres personnalisés
</div>

1. Accédez aux paramètres de votre équipe
2. Recherchez le paramètre **MCP Registry URLs**
3. Ajoutez une ou plusieurs URL de registre

Lorsque plusieurs URL de registre sont configurées, Devin Desktop utilise l’**union** de tous les registres : les utilisateurs voient les MCP de toutes les sources configurées, regroupés en un seul ensemble. Le marketplace MCP de l’équipe récupère alors les données depuis ces registres internes plutôt que depuis le registre Devin Desktop par défaut.

<Note>Les registres personnalisés doivent respecter le [schéma officiel du registre MCP](https://modelcontextprotocol.io/). Cela garantit la compatibilité et des définitions de serveur normalisées.</Note>

<div id="mcp-allowlist">
  ### Liste d’autorisation MCP
</div>

<Card title="MCP Team Settings" horizontal={true} icon="hammer" href="https://windsurf.com/team/settings">
  Paramètres MCP configurables pour votre Team.
</Card>

<Warning>Le lien ci-dessus ne fonctionnera que si vous disposez des droits d’administration pour votre Team.</Warning>

Par défaut, les utilisateurs d’une Team peuvent configurer leurs propres serveurs MCP. Cependant, dès que vous ajoutez ne serait-ce qu’un seul serveur MCP à la liste d’autorisation, **tous les serveurs qui n’y figurent pas seront bloqués** pour votre Team.

<Note>L’ID du serveur dans la liste d’autorisation doit correspondre exactement, en respectant la casse, au nom de clé utilisé dans le `mcp_config.json` de l’utilisateur.</Note>

<div id="how-server-matching-works">
  ### Comment fonctionne la correspondance des serveurs
</div>

Lorsque vous placez un serveur MCP sur la liste d’autorisation, le système utilise la **correspondance par motifs regex** selon les règles suivantes :

* **Correspondance sur l’intégralité de la chaîne** : tous les motifs sont automatiquement ancrés (entourés de `^(?:pattern)$`) afin d’empêcher les correspondances partielles
* **Champ de commande** : doit correspondre exactement ou selon votre motif regex
* **Tableau d’arguments** : chaque argument est comparé individuellement au motif correspondant
* **Longueur du tableau** : le nombre d’arguments doit correspondre exactement entre la liste d’autorisation et la configuration de l’utilisateur
* **Caractères spéciaux** : des caractères comme `$`, `.`, `[`, `]`, `(`, `)` ont une signification particulière en regex et doivent être échappés avec `\` si vous voulez une correspondance littérale

<div id="configuration-options">
  ### Options de configuration
</div>

<AccordionGroup>
  <Accordion title="Option 1 : ID du serveur uniquement (recommandée)" description="Laissez le champ Server Config (JSON) vide pour autoriser toute configuration utilisant cet ID de serveur.">
    **Configuration de la liste d’autorisation Admin :**

    * **ID du serveur :** `github-mcp-server`
    * **Server Config (JSON) :** *(laisser vide)*

    ```json theme={null}
    {}
    ```

    **Configuration utilisateur correspondante (`mcp_config.json`) :**

    ```json theme={null}
    {
      "mcpServers": {
        "github-mcp-server": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "-e",
            "GITHUB_PERSONAL_ACCESS_TOKEN",
            "ghcr.io/github/github-mcp-server"
          ],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
          }
        }
      }
    }
    ```

    Cela permet aux utilisateurs d’installer le serveur MCP GitHub avec toute configuration valide, à condition que l’ID du serveur corresponde.
  </Accordion>

  <Accordion title="Option 2 : configuration avec correspondance exacte" description="Fournissez la configuration exacte que les utilisateurs doivent utiliser. Les utilisateurs doivent respecter cette configuration à l’identique.">
    **Configuration de la liste d’autorisation Admin :**

    * **ID du serveur :** `github-mcp-server`
    * **Server Config (JSON) :**

    ```json theme={null}
    {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": ""
      }
    }
    ```

    **Configuration utilisateur correspondante (`mcp_config.json`) :**

    ```json theme={null}
    {
      "mcpServers": {
        "github-mcp-server": {
          "command": "docker",
          "args": [
            "run",
            "-i",
            "--rm",
            "-e",
            "GITHUB_PERSONAL_ACCESS_TOKEN",
            "ghcr.io/github/github-mcp-server"
          ],
          "env": {
            "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token_here"
          }
        }
      }
    }
    ```

    Les utilisateurs doivent utiliser cette configuration exacte : tout écart dans la commande ou les arguments sera bloqué. La section `env` peut contenir des valeurs différentes.
  </Accordion>

  <Accordion title="Option 3 : motifs regex flexibles" description="Utilisez des motifs regex pour autoriser des variations dans les configurations utilisateur tout en maintenant les contrôles de sécurité.">
    **Configuration de la liste d’autorisation Admin :**

    * **ID du serveur :** `python-mcp-server`
    * **Server Config (JSON) :**

    ```json theme={null}
    {
      "command": "python3",
      "args": ["/.*\\.py", "--port", "[0-9]+"]
    }
    ```

    **Configuration utilisateur correspondante (`mcp_config.json`) :**

    ```json theme={null}
    {
      "mcpServers": {
        "python-mcp-server": {
          "command": "python3",
          "args": ["/home/user/my_server.py", "--port", "8080"],
          "env": {
            "PYTHONPATH": "/home/user/mcp"
          }
        }
      }
    }
    ```

    Cet exemple offre de la flexibilité aux utilisateurs tout en maintenant la sécurité :

    * La regex `/.*\\.py` correspond à n’importe quel chemin de fichier Python, comme `/home/user/my_server.py`
    * La regex `[0-9]+` correspond à n’importe quel port numérique, comme `8080` ou `3000`
    * Les utilisateurs peuvent personnaliser les chemins de fichier et les ports, tandis que les admins s’assurent que seuls des scripts Python sont exécutés
  </Accordion>
</AccordionGroup>

<div id="common-regex-patterns">
  ### Motifs regex courants
</div>

| Pattern | Correspond à | Exemple |
| - | - | - |
| `.*` | N’importe quelle chaîne | `/home/user/script.py` |
| `[0-9]+` | N’importe quel nombre | `8080`, `3000` |
| `[a-zA-Z0-9_]+` | Caractères alphanumériques + underscore | `api_key_123` |
| `\\$HOME` | `$HOME` littéral | `$HOME` (non étendu) |
| `\\.py` | `.py` littéral | `script.py` |
| `\\[cli\\]` | `[cli]` littéral | `mcp[cli]` |

<div id="notes">
  ## Notes
</div>

<div id="admin-configuration-guidelines">
  ### Consignes de configuration pour les administrateurs
</div>

* **Variables d’environnement** : la section `env` ne fait pas l’objet d’une correspondance par regex et peut être configurée librement par les utilisateurs
* **Outils désactivés** : le tableau `disabledTools` est traité séparément et ne fait pas partie de la correspondance avec la liste d’autorisation
* **Sensibilité à la casse** : toute correspondance est sensible à la casse
* **Gestion des erreurs** : les motifs regex non valides seront consignés dans les journaux et entraîneront un refus d’accès
* **Tests** : testez soigneusement vos motifs regex - des motifs trop restrictifs peuvent bloquer des cas d’usage légitimes

<div id="troubleshooting">
  ### Dépannage
</div>

Si des utilisateurs signalent que leurs serveurs MCP ne fonctionnent pas après leur ajout à la liste d’autorisation :

1. **Vérifier la correspondance exacte** : assurez-vous que le motif de la liste d’autorisation correspond exactement à la configuration de l’utilisateur
2. **Vérifier l’échappement des regex** : les caractères spéciaux peuvent devoir être échappés (p. ex., `\.` pour un point littéral)
3. **Consulter les logs** : les motifs regex non valides sont enregistrés avec un avertissement
4. **Tester les motifs** : utilisez un testeur regex pour vérifier que vos motifs fonctionnent comme prévu

N’oubliez pas : dès que vous ajoutez un serveur à la liste d’autorisation, **tous les autres serveurs sont automatiquement bloqués** pour les membres de votre Team.

<div id="general-information">
  ### Informations générales
</div>

* Comme les appels d’outils MCP peuvent invoquer du code écrit par n’importe quel implémenteur de serveur, nous déclinons toute responsabilité
  en cas d’échec des appels d’outils MCP. En d’autres termes :
* Nous prenons actuellement en charge les [outils](https://modelcontextprotocol.io/docs/concepts/tools), les [ressources](https://modelcontextprotocol.io/docs/concepts/resources) et les [prompts](https://modelcontextprotocol.io/docs/concepts/prompts) d’un serveur MCP.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.