Passer au contenu principal
MCP (Model Context Protocol) est un protocole qui permet aux LLM d’accéder à des outils et services personnalisés. Un client MCP (Cascade, en l’occurrence) peut envoyer des requêtes à des serveurs MCP pour utiliser les 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 avec Cascade. Consultez la documentation officielle MCP pour en savoir plus.
Les utilisateurs Enterprise doivent l’activer manuellement dans les paramètres

Ajouter un nouveau MCP

De nouveaux MCP peuvent être ajoutés depuis le Marketplace MCP, auquel vous accédez en cliquant sur l’icône MCPs dans le menu en haut à droite du panneau Cascade, ou depuis la section Windsurf Settings > Cascade > MCP Servers. Si vous ne trouvez pas le MCP souhaité, vous pouvez l’ajouter manuellement en modifiant directement le fichier brut mcp_config.json. Les MCP officiels apparaissent avec une coche bleue, indiquant qu’ils sont fournis par le service d’origine. Quand vous cliquez sur un MCP, il suffit de cliquer sur Install pour rendre le serveur et ses outils accessibles à Cascade. Windsurf prend en charge trois types de transport pour les serveurs MCP : stdio, Streamable HTTP et SSE. Windsurf prend également en charge OAuth pour chaque type de transport. Pour les serveurs http, l’URL doit correspondre à celle de l’endpoint et être de la forme https://<your-server-url>/mcp.

Configuration des outils MCP

Chaque MCP dispose d’un certain nombre d’outils auxquels il peut accéder. Cascade est limitée à 100 outils au total accessibles à un instant donné. Sur chaque page de paramètres d’un MCP, vous pouvez activer ou désactiver les outils que vous souhaitez utiliser. Pour ouvrir les paramètres d’un MCP, cliquez sur l’icône MCPs dans le menu en haut à droite du panneau Cascade, puis sélectionnez le MCP souhaité.

mcp_config.json

Le fichier ~/.codeium/windsurf/mcp_config.json est un fichier JSON qui répertorie les serveurs auxquels Cascade peut se connecter. Voici un exemple de configuration, qui définit un seul serveur pour GitHub :
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-github"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<VOTRE_TOKEN_D_ACCES_PERSONNEL>"
      }
    }
  }
}
Veillez à fournir les arguments requis et les variables d’environnement pour les serveurs que vous souhaitez utiliser. Consultez le dépôt de référence officiel des serveurs MCP ou OpenTools pour des exemples de serveurs. Vous trouverez ci-dessous des exemples de configuration pour certains serveurs MCP couramment utilisés. Vous pouvez les ajouter à votre fichier mcp_config.json.
Le serveur MCP GitHub fournit des outils pour la gestion de dépôts, les opérations sur les fichiers, le suivi des issues et la gestion des pull requests.Avec npx :
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_PERSONAL_ACCESS_TOKEN>"
      }
    }
  }
}
Avec Docker :
{
  "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, rendez-vous sur GitHub Settings > Developer settings > Personal access tokens.
Le serveur MCP Slack permet la gestion des canaux, la messagerie et les interactions avec le workspace.
{
  "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 Slack App sur api.slack.com/apps
  2. Ajoutez les scopes OAuth nécessaires (par exemple : channels:read, chat:write, users:read)
  3. Installez l’app sur votre workspace et copiez le Bot User OAuth Token
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.
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "postgresql://user:password@localhost:5432/database"
      }
    }
  }
}
Par défaut, le serveur PostgreSQL fournit un accès en lecture seule pour des raisons de sécurité. Assurez-vous que votre chaîne de connexion utilise des identifiants appropriés avec des permissions limitées.
Le serveur MCP Filesystem fournit un accès sécurisé aux fichiers et répertoires locaux avec des contrôles d’accès configurables.
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y", "@modelcontextprotocol/server-filesystem",
        "/path/to/allowed/directory"
      ]
    }
  }
}
Vous pouvez spécifier plusieurs répertoires autorisés en ajoutant des arguments de chemin supplémentaires. Seuls les fichiers situés dans ces répertoires seront accessibles.
Le serveur MCP Memory fournit un système de mémoire persistante utilisant un graphe de connaissances, permettant à Cascade de se souvenir d’informations entre les sessions.
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-memory"]
    }
  }
}
Le serveur de mémoire stocke les données localement et les conserve entre les sessions, ce qui le rend utile pour maintenir le contexte des projets, des préférences et des informations apprises.

MCP HTTP distants

Il convient de noter que, pour les MCP HTTP distants, la configuration diffère légèrement et nécessite un champ serverUrl ou url. Voici un exemple de configuration pour un serveur HTTP :
{
  "mcpServers": {
    "remote-http-mcp": {
      "serverUrl": "<votre-url-de-serveur>/mcp",
      "headers": {
        "API_KEY": "value"
      }
    }
  }
}

Interpolation de la configuration

Le fichier ~/.codeium/windsurf/mcp_config.json gère l’interpolation des variables d’environnement dans les champs suivants : command, args, env, serverUrl, url et headers. Voici un exemple de configuration qui utilise une variable d’environnement AUTH_TOKEN dans headers.
{
  "mcpServers": {
    "remote-http-mcp": {
      "serverUrl": "<your-server-url>/mcp",
      "headers": {
        "API_KEY": "Bearer ${env:AUTH_TOKEN}"
      }
    }
  }
}

Contrôles d’administration (Teams & Enterprises)

Les administrateurs d’équipe peuvent activer ou désactiver l’accès MCP pour leur équipe, ainsi qu’ajouter à la liste blanche des serveurs MCP approuvés pour que leur équipe puisse les utiliser :

Paramètres MCP de l'équipe

Paramètres MCP configurables pour votre équipe.
Le lien ci-dessus ne fonctionnera que si vous disposez de privilèges d’administrateur pour votre équipe.
Par défaut, les membres d’une équipe peuvent configurer leurs propres serveurs MCP. Cependant, dès que vous ajoutez ne serait-ce qu’un seul serveur MCP à la liste blanche, tous les serveurs non autorisés seront bloqués pour votre équipe.
L’ID de serveur dans la liste blanche doit correspondre exactement, en respectant la casse, au nom de clé utilisé dans le mcp_config.json de l’utilisateur.

Fonctionnement de la correspondance de serveurs

Lorsque vous ajoutez un serveur MCP à la liste d’autorisation (whitelist), le système utilise une correspondance par expressions régulières (regex) selon les règles suivantes :
  • Correspondance sur la chaîne complète : Tous les motifs sont automatiquement ancrés (encapsulés avec ^(?:pattern)$) pour éviter les correspondances partielles
  • Champ Command : Doit correspondre exactement ou selon votre motif regex
  • Tableau d’arguments : Chaque argument est comparé individuellement à son motif correspondant
  • Longueur du tableau : Le nombre d’arguments doit correspondre exactement entre la liste d’autorisation et la configuration utilisateur
  • Caractères spéciaux : Des caractères comme $, ., [, ], (, ) ont une signification particulière en regex et doivent être échappés avec \ si vous souhaitez une correspondance littérale

Options de configuration

Configuration de la liste d’autorisation Admin :
  • Server ID: github-mcp-server
  • Server Config (JSON): (laisser vide)
{}
Configuration utilisateur correspondante (mcp_config.json) :
{
  "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, tant que le Server ID correspond à l’entrée du Plugin Store.
Configuration de la liste d’autorisation Admin :
  • Server ID: github-mcp-server
  • Server Config (JSON):
{
  "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) :
{
  "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 exactement cette configuration : toute différence dans command ou args sera bloquée. La section env peut contenir des valeurs différentes.
Configuration de la liste d’autorisation Admin :
  • Server ID: python-mcp-server
  • Server Config (JSON):
{
  "command": "python3",
  "args": ["/.*\\.py", "--port", "[0-9]+"]
}
Configuration utilisateur correspondante (mcp_config.json) :
{
  "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 vers un 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 fichiers et les ports, tandis que les administrateurs s’assurent que seuls des scripts Python sont exécutés

Motifs regex courants

MotifCorrespond àExemple
.*N’importe quelle chaîne/home/user/script.py
[0-9]+N’importe quel nombre8080, 3000
[a-zA-Z0-9_]+Alphanumérique + underscoreapi_key_123
\\$HOMELittéral $HOME$HOME (non développé)
\\.pyLittéral .pyscript.py
\\[cli\\]Littéral [cli]mcp[cli]

Remarques

Directives de configuration administrateur

  • Variables d’environnement : La section env n’est pas soumise à une correspondance par regex et peut être configurée librement par les utilisateurs
  • Outils désactivés : Le tableau disabledTools est géré séparément et ne fait pas partie de la correspondance par liste d’autorisation
  • Sensibilité à la casse : Toutes les correspondances sont sensibles à la casse
  • Gestion des erreurs : Les expressions régulières invalides seront consignées et entraîneront un refus d’accès
  • Tests : Testez soigneusement vos expressions régulières — des motifs trop restrictifs peuvent bloquer des cas d’usage légitimes

Dépannage

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 expressions régulières : Certains caractères spéciaux doivent être échappés (p. ex., \. pour un point littéral)
  3. Consulter les logs : Les motifs d’expressions régulières invalides sont consignés avec des avertissements
  4. Tester les motifs : Utilisez un testeur d’expressions régulières pour vérifier que vos motifs fonctionnent comme prévu
À retenir : Une fois qu’un serveur est ajouté à la liste d’autorisation, tous les autres serveurs sont automatiquement bloqués pour les membres de votre équipe.

Informations générales

  • Étant donné que les appels d’outils MCP peuvent exécuter du code écrit par n’importe quel implémenteur de serveur, nous déclinons toute responsabilité en cas d’échec de ces appels. Pour le rappeler :
  • Nous prenons actuellement en charge les tools, les resources et les prompts d’un serveur MCP.