Le point essentiel en une phrase
Pour que Cursor parle à GitHub via MCP, pointe l’entrée github de ~/.cursor/mcp.json vers https://api.githubcopilot.com/mcp/ avec un PAT dans l’en-tête Authorization — et laisse les autres serveurs MCP intacts.
Le dépôt open source github/github-mcp-server sert de référence (clone local optionnel). Le chemin opérationnel dans Cursor aujourd’hui, c’est le endpoint distant Copilot MCP, pas un binaire lancé à la main.
Cursor
└─ ~/.cursor/mcp.json
├─ github → https://api.githubcopilot.com/mcp/ (+ Authorization)
├─ vfg-docs / vfg-feed / vfg-gate → (inchangés)
└─ …
Pourquoi ce guide
Le 2 octobre 2026, sur le chantier Jah Messenger, on a branché GitHub MCP dans Cursor pour que les agents puissent lister des PR, lire des checks et fumer l’auth sans coller le PAT dans le dépôt.
Résultat mesuré la même matinée :
| Contrôle | Résultat |
|---|---|
Clone local github-mcp-server | présent sous D:\GitRepos\github-mcp-server |
URL MCP github | https://api.githubcopilot.com/mcp/ |
| Serveurs VFG | toujours listés à côté de github |
Smoke get_me | compte GitHub authentifié |
Smoke list_pull_requests | PR ouvertes JahMessenger visibles, dont #199 et #198 |
Aucun merge n’a été fait. C’est volontaire : brancher l’outil ≠ avancer le train produit.
Prérequis
- Cursor récent sur Windows ;
- un Personal Access Token GitHub avec les scopes nécessaires aux outils que tu veux appeler ;
- le fichier
%USERPROFILE%\.cursor\mcp.jsondéjà utilisé (ou à créer) ; - éventuellement un clone de github/github-mcp-server pour lire le README — pas obligatoire pour le chemin remote.
Étape 1 — (optionnel) Cloner le serveur pour référence
cd D:\GitRepos
git clone https://github.com/github/github-mcp-server.git
Tu peux y lire l’architecture et les outils exposés. Pour Cursor en remote Copilot MCP, tu n’as pas besoin de démarrer ce serveur toi-même.
Étape 2 — Éditer mcp.json sans écraser le reste
Ouvre :
%USERPROFILE%\.cursor\mcp.json
Ajoute ou mets à jour uniquement l’entrée github. Exemple de forme (le secret n’est pas recopié ici) :
{
"mcpServers": {
"github": {
"url": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer <TON_PAT>"
}
}
}
}
Si tu as déjà vfg-docs, vfg-feed, vfg-gate (ou d’autres), ne les efface pas. Fusionne : une clé de plus, pas un fichier entier remplacé.
Étape 3 — Redémarrer les MCP dans Cursor
Après sauvegarde : recharger la fenêtre Cursor, ou désactiver/réactiver le serveur github dans les réglages MCP, jusqu’à voir le namespace user-github (ou équivalent) côté outils.
Étape 4 — Smoke minimal (preuve, pas confiance)
Deux gestes suffisent :
- Identité — outil du type
get_me: tu dois voir ton login GitHub. - Liste —
list_pull_requestssur un dépôt que tu connais (ex. propriétaire +JahMessenger, étatopen) : tu dois reconnaître des numéros réels (#199, #198, …).
Si la liste est vide alors que tu sais qu’il y a des PR ouvertes : ce n’est pas « pas de PR » — rejoue, vérifie le PAT, l’URL, et le redémarrage MCP (leçon VFG : un « 0 » silencieux n’est pas une mesure).
Garde-fous non négociables
- Jamais committer le PAT — ni dans le dépôt produit, ni dans un handoff, ni dans un article.
mcp.jsonreste hors git (profil utilisateur) — ne le copie pas dans le repo « pour faciliter ».- Brancher ≠ merger — un smoke qui liste #199 et #198 ne donne pas le droit de fusionner sans go humain.
- Préserve les autres MCP — un replace aveugle de
mcp.jsoncasse le reste du workspace (docs, gate, feed).
Ce que ça débloque pour un agent
Une fois fumé, l’agent peut :
- lire l’état des PR et des checks ;
- commenter / ouvrir une PR si le mandat de session le demande ;
- croiser GitHub avec le reste du stack MCP VFG dans la même session Cursor.
Ce qu’il ne doit pas faire « parce que l’outil marche » : pousser un secret, merger le train en pause, ou inventer un lot produit là où il n’y en a pas.
Relais
Si tu reprends après cette config : fume get_me + une liste de PR connues, puis enchaîne le chantier produit (mesure live, handoff, etc.) sans re-planifier le branchement MCP.