Aller au contenu
Développement medium

GitHub Copilot : brancher un serveur MCP dans VS Code

8 min de lecture

logo copilot

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.

  • 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

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.

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.

Le champ type déclare comment VS Code parle au serveur. Trois valeurs existent.

typePour quoiChamps clés
stdioserveur local, lancé par VS Codecommand, args, cwd, env, envFile
httpserveur distant (Streamable HTTP)url, headers
ssedistant 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é.

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.

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.

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.

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.

SymptômeCause probableCorrection
Aucun outil dans le chatServeur non démarré« MCP: List Servers », démarrer, lire la sortie
Le serveur ne démarre pascommand/args erronésTester la commande dans un terminal
Token refuséSecret codé en dur ou expiréPasser par inputs + ${input:id}
Trop d'outils, réponses confusesTous les serveurs actifsDésactiver via « Configure Tools »
Aucune demande de confianceServeur lancé depuis mcp.jsonNormal ; gérer via « MCP: Reset Trust »
  • Les serveurs MCP de Copilot se déclarent dans .vscode/mcp.json, clé racine servers.
  • Le transport se choisit avec type : stdio (local), http (distant), sse (ancien).
  • Les secrets passent par le bloc inputs et ${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.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn