
Par défaut, Copilot ne voit que votre code. Avec un serveur MCP, vous lui donnez de vrais outils : lire des fichiers hors du projet, interroger GitHub, requêter une base. Ce guide montre comment brancher un serveur MCP dans VS Code via le fichier .vscode/mcp.json, choisir le transport (stdio ou HTTP), injecter un secret proprement, et garder la main sur la confiance accordée. Si le Model Context Protocol est nouveau pour vous, lisez d'abord Comprendre le MCP.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Déclarer un serveur MCP dans
.vscode/mcp.json - Choisir entre les transports stdio et HTTP
- Injecter un secret avec le mécanisme
inputs, sans le coder en dur - Activer, gérer et sécuriser les serveurs depuis VS Code
Prérequis
Section intitulée « Prérequis »- GitHub Copilot actif dans VS Code avec le mode Agent
- Les bases du Model Context Protocol (hôte, client, serveur, outils)
node/npxinstallés si vous lancez des serveurs MCP locaux en Node
Ce qu'un serveur MCP apporte à Copilot
Section intitulée « Ce qu'un serveur MCP apporte à Copilot »Le MCP (Model Context Protocol) est un standard qui connecte un assistant IA à des outils et des données externes. Côté Copilot, un serveur MCP ajoute des outils que le modèle peut appeler depuis le chat : lister des fichiers, ouvrir une issue GitHub, lancer une requête SQL. C'est le même protocole que celui utilisé par Claude Code ; seule la configuration dans VS Code change.
Déclarer un serveur dans .vscode/mcp.json
Section intitulée « Déclarer un serveur dans .vscode/mcp.json »Dans VS Code, la configuration des serveurs MCP d'un projet vit dans .vscode/mcp.json. Le fichier a trois clés racine possibles : servers (les serveurs), inputs (les valeurs à demander, voir plus bas) et sandbox.
{ "servers": { "filesystem": { "type": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "${workspaceFolder}"] }, "github": { "type": "http", "url": "https://api.githubcopilot.com/mcp" } }}Ici, deux serveurs : un serveur local filesystem lancé par npx (transport stdio), et le serveur GitHub distant joint en HTTP. La variable ${workspaceFolder} pointe sur la racine du projet ouvert.
Choisir le transport : stdio ou HTTP
Section intitulée « Choisir le transport : stdio ou HTTP »Le champ type déclare comment VS Code parle au serveur. Trois valeurs existent.
type | Pour quoi | Champs clés |
|---|---|---|
stdio | serveur local, lancé par VS Code | command, args, cwd, env, envFile |
http | serveur distant (Streamable HTTP) | url, headers |
sse | distant en Server-Sent Events (ancien, à éviter) | url, headers |
En pratique, vous utiliserez stdio pour les serveurs que vous exécutez vous-même (filesystem, un script maison) et http pour les services distants. Le transport sse est l'ancienne forme HTTP, gardée pour compatibilité.
Injecter un secret sans le coder en dur
Section intitulée « Injecter un secret sans le coder en dur »Un serveur distant demande souvent un token. Ne l'écrivez jamais en clair dans mcp.json : ce fichier finit dans git. Utilisez le bloc inputs, qui demande la valeur au démarrage et la garde hors du fichier.
{ "inputs": [ { "type": "promptString", "id": "github-pat", "description": "GitHub Personal Access Token", "password": true } ], "servers": { "github": { "type": "http", "url": "https://api.githubcopilot.com/mcp", "headers": { "Authorization": "Bearer ${input:github-pat}" } } }}Au premier lancement, VS Code demande le token (masqué grâce à password: true) et l'injecte via ${input:github-pat}. Le secret n'apparaît nulle part dans le dépôt. La même syntaxe marche dans env pour un serveur stdio.
Activer et utiliser les outils
Section intitulée « Activer et utiliser les outils »Une fois un serveur démarré, VS Code découvre ses outils et les rend disponibles dans le chat. En mode Agent, Copilot peut alors les appeler pour répondre à votre demande.
Pour choisir les outils actifs, cliquez sur le bouton « Configure Tools » dans la zone de saisie du chat : vous voyez tous les outils exposés et vous activez ou désactivez chacun. C'est utile pour limiter Copilot aux outils pertinents et éviter qu'il parte dans tous les sens.
Gérer les serveurs
Section intitulée « Gérer les serveurs »La commande « MCP: List Servers » liste les serveurs configurés. En sélectionnant l'un d'eux, vous pouvez le démarrer, l'arrêter, voir sa sortie (les logs, précieux quand un serveur ne répond pas) ou le désinstaller. C'est le point d'entrée pour diagnostiquer un serveur qui ne remonte aucun outil.
Sécurité : un serveur MCP exécute du code
Section intitulée « Sécurité : un serveur MCP exécute du code »Un serveur MCP local exécute du code arbitraire sur votre machine, et un serveur distant reçoit le contexte que Copilot lui envoie. La prudence est de mise.
- Sources de confiance uniquement. N'ajoutez que des serveurs dont vous connaissez l'origine. VS Code affiche une demande de confiance au premier démarrage d'un serveur.
- Confirmez les appels d'outils. Copilot peut demander une confirmation avant chaque invocation : ne validez pas machinalement une action qui écrit ou supprime.
- Réinitialiser la confiance : la commande « MCP: Reset Trust » repart d'une page blanche si vous avez accordé votre confiance trop vite.
Les serveurs MCP tiers ont leurs menaces propres (tool poisoning, confused deputy, rug pull). Avant de brancher un serveur que vous n'avez pas écrit, lisez Sécurité MCP.
Pièges courants
Section intitulée « Pièges courants »| Symptôme | Cause probable | Correction |
|---|---|---|
| Aucun outil dans le chat | Serveur non démarré | « MCP: List Servers », démarrer, lire la sortie |
| Le serveur ne démarre pas | command/args erronés | Tester la commande dans un terminal |
| Token refusé | Secret codé en dur ou expiré | Passer par inputs + ${input:id} |
| Trop d'outils, réponses confuses | Tous les serveurs actifs | Désactiver via « Configure Tools » |
| Aucune demande de confiance | Serveur lancé depuis mcp.json | Normal ; gérer via « MCP: Reset Trust » |
À retenir
Section intitulée « À retenir »- Les serveurs MCP de Copilot se déclarent dans
.vscode/mcp.json, clé racineservers. - Le transport se choisit avec
type:stdio(local),http(distant),sse(ancien). - Les secrets passent par le bloc
inputset${input:id}, jamais en clair dans le fichier. - Les outils s'activent dans le chat via « Configure Tools » ; on gère les serveurs avec « MCP: List Servers ».
- Un serveur MCP exécute du code : sources de confiance, confirmations, et lecture de Sécurité MCP.