/ Annuaire / Playground / GitHub
● Officiel github 🔑 Nécessite votre clé

GitHub

par github · github/github-mcp-server

Donnez à Claude un accès complet à GitHub — problèmes, PR, recherche de code, éditions de fichiers — sans jamais quitter votre fenêtre de chat.

Serveur MCP officiel de GitHub. Tout ce que vous pouvez faire via l'API GitHub REST ou GraphQL, votre agent IA le peut aussi : trier les problèmes, examiner les PR, rechercher dans le code d'une organisation, rédiger des commits. Le mode lecture seule est pris en charge et recommandé pour les premiers essais.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

github.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "github",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "github": {
      "command": {
        "path": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add github -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : GitHub

Comment trouver un bon premier problème et livrer une correction en une heure

👤 Contributeurs open-source à la recherche d'une première PR sans friction ⏱ ~60 min beginner

Quand l'utiliser : Vous souhaitez contribuer à un projet mais n'avez aucune idée par où commencer. Le CONTRIBUTING.md du responsable est trop générique pour être utile.

Prérequis
  • PAT GitHub avec repo:read et issues:read — github.com/settings/tokens — à granularité fine, limité au dépôt auquel vous souhaitez contribuer
  • MCP filesystem également installé — permet à Claude de cloner et lire le dépôt localement pour vraiment écrire le correctif
Déroulement
  1. Demandez à Claude de trouver les problèmes marqués good first issue sans commentaires, triés par simplicité
    Trouvez les problèmes ouverts dans modelcontextprotocol/servers étiqueté 'good first issue' sans assignataire et zéro commentaire. Choisissez celui qui semble le plus facile à corriger et expliquez pourquoi.✓ Copié
    → Claude retourne 3-5 candidats avec une évaluation de difficulté d'une ligne pour chacun
  2. Demandez à Claude de récupérer le corps du problème et tout code lié
    Tirez le corps complet du problème #<num> et lisez le fichier qu'il mentionne. Dites-moi le changement réel qui doit se produire.✓ Copié
    → Intent diff concrète, pas seulement une reformulation du problème
  3. Utilisez le MCP filesystem pour faire l'édition, puis GitHub MCP pour rédiger la PR
    Appliquez le changement, rédigez une description PR qui remercie le responsable et explique la correction en 3 phrases.✓ Copié
    → La PR s'ouvre avec lien retourné

Résultat : Une PR ouverte qui respecte le style du projet, référence le problème, et est suffisamment petite pour être fusionnée le même jour.

Pièges
  • Claude choisit un 'good first issue' qui pourrissait en réalité depuis 2 ans parce que personne ne pouvait s'accorder sur le correctif — Ajoutez pas de nouveaux commentaires des responsables au cours des 90 derniers jours comme filtre
  • Le corps de la PR est du charabia générique généré par l'IA — Dites à Claude de d'abord imiter le ton des 3 dernières PR fusionnées du projet
Combiner avec : filesystem · git

Générez un résumé hebdomadaire des PR pour votre équipe

👤 Responsables de l'ingénierie, chefs techniques ⏱ ~10 min intermediate

Quand l'utiliser : Chaque lundi matin quand vous préféreriez ne pas cliquer sur 40 notifications PR.

Prérequis
  • PAT limité aux dépôts de votre équipe avec pull_requests:read — Utilisez un token à granularité fine, jamais un token classique 'tous les dépôts'
Déroulement
  1. Demandez les PR fusionnées de la semaine dernière avec leurs tailles de diff
    Listez tous les PR fusionnés dans notre org/repo entre lundi dernier et aujourd'hui. Incluez l'auteur, les lignes +/-, et un résumé d'une ligne.✓ Copié
    → Table 10-30 lignes avec deltas concrets
  2. Groupez par auteur et thème
    Groupez ceux-ci par domaine (authentification, paiements, frontend, infra...) et signalez tous ceux qui ressemblent à des reversions ou hotfixes.✓ Copié
    → Sections avec clustering thématique
  3. Rédigez un résumé prêt pour Slack
    Maintenant rédigez un post Slack résumant la semaine — célébrez les grandes victoires, appelez l'attention sur les changements risqués, nommez les personnes qui les ont livrés.✓ Copié
    → Markdown avec @mentions, emoji, prêt à coller

Résultat : Un résumé 5 points que vous avez réellement envie de lire lundi matin.

Pièges
  • Atteint la limite de débit si votre organisation a de nombreux dépôts — Filtrez un dépôt à la fois, ou mettez à niveau vers un token GitHub App (15k req/h vs 5k)
Combiner avec : linear · sentry

Trouvez chaque lieu où votre base de code utilise une API dépréciée

👤 Ingénieurs backend planifiant une migration ⏱ ~30 min intermediate

Quand l'utiliser : Vous êtes sur le point de déprécier une classe/fonction interne et avez besoin de savoir qui l'utilise avant d'annoncer.

Prérequis
  • PAT avec repo:read pour tous les dépôts de votre organisation — Utilisez une GitHub App pour l'accès à l'échelle de l'organisation — plus facile que de jongler avec les PAT par dépôt
Déroulement
  1. Utilisez la recherche de code dans toute l'organisation
    Recherchez dans toute votre organisation acme-corp l'utilisation de la classe LegacyAuth. Retournez les chemins de fichiers groupés par dépôt.✓ Copié
    → Liste des dépôts et fichiers, avec numéros de ligne
  2. Pour chaque correspondance, récupérez le contexte
    Pour chaque correspondance, récupérez 5 lignes autour de l'utilisation et dites-moi s'il s'agit d'un appel réel ou simplement d'un commentaire/import.✓ Copié
    → Liste filtrée distinguant les appels réels du bruit
  3. Générez un problème de suivi de migration
    Créez un problème de suivi dans acme-corp/platform intitulé 'Migrer de LegacyAuth' avec une liste de contrôle de chaque callsite réel et l'équipe propriétaire de chaque dépôt.✓ Copié
    → Problème créé avec liste de contrôle complète

Résultat : Un unique point de référence problème de suivi que votre équipe plateforme peut utiliser pour piloter la migration.

Pièges
  • La recherche de code a une limite de 1000 résultats par requête — Si vous l'atteignez, limitez par langue ou chemin : LegacyAuth language:python ou divisez les requêtes par préfixe de dépôt
  • GitHub indexe uniquement la branche par défaut — Ne trouvera pas l'utilisation dans les branches de fonctionnalité — complétez avec un grep local sur les dépôts clonés
Combiner avec : filesystem

Obtenez un deuxième avis sur une PR délicate avant d'approuver

👤 Relecteurs de code face à une PR en dehors de leur domaine d'expertise ⏱ ~15 min intermediate

Quand l'utiliser : Vous êtes le relecteur assigné d'une PR qui touche du code que vous ne connaissez pas bien, et vous ne voulez pas simplement approuver sans réfléchir.

Déroulement
  1. Tirez la diff PR et la description
    Récupérez la PR #<num> dans org/repo — donnez-moi la diff et la description. Que prétend faire l'auteur ?✓ Copié
    → Reformulation claire de l'intention
  2. Demandez une lecture architecturale
    Maintenant regardez les fichiers existants que cette PR touche. Le changement s'adapte-t-il aux modèles existants, ou introduit-il un nouveau ? Si nouveau, le nouveau modèle est-il justifié ?✓ Copié
    → Appels spécifiques, pas des compliments génériques
  3. Sondez pour les risques
    Où dans cette diff quelque chose est-il le plus susceptible de casser en production dans 6 mois ? Soyez spécifique — pointez la ligne.✓ Copié
    → Préoccupations spécifiques au niveau ligne, pas 'ajouter plus de tests'

Résultat : Trois commentaires spécifiques et actionnables que vous pouvez poster sur la PR — rendant votre relecture significativement meilleure qu'un coup d'œil.

Pièges
  • Claude devient une machine à dire oui et loue tout — Demandez explicitement 'sur quoi un ingénieur senior dans cette entreprise pousserait-il en arrière ?' — le cadrage adversarial aide
Combiner avec : filesystem

Identifiez et débloquez les PR qui pourrissent en relecture

👤 Responsables de l'ingénierie, responsables de dépôt ⏱ ~20 min beginner

Quand l'utiliser : Une fois par sprint, quand vous soupçonnez que des PR vieillissent tranquillement sans que personne ne le remarque.

Déroulement
  1. Listez les PR ouvertes depuis >5 jours sans activité récente
    Trouvez les PR ouvertes dans org/repo mises à jour il y a plus de 5 jours. Pour chacune, dites-moi l'auteur, le relecteur assigné, et la raison déclarée du retard (regardez le dernier commentaire).✓ Copié
    → Table avec diagnostic par PR
  2. Catégorisez le retard
    Groupez celles-ci en : 'en attente de relecteur', 'en attente d'auteur', 'en attente de CI', 'en attente de décision'. Soyez spécifique sur chaque.✓ Copié
    → 4 catégories avec des PR concrètes dans chacune
  3. Rédigez des nudges
    Pour le groupe 'en attente de relecteur', rédigez un commentaire de nudge poli pour chacun. Ton différent si le relecteur est un pair vs senior par rapport à l'auteur.✓ Copié
    → Texte de commentaire par PR prêt à coller

Résultat : Une courte liste de PR que vous pouvez débloquer en 15 minutes, avec des actions spécifiques par PR.

Pièges
  • Poster automatiquement des commentaires semble du spam — Que Claude rédige les commentaires mais vous les postez vous-même — garde le contrôle humain
Combiner avec : linear

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

github + sentry

Sentry signale une nouvelle erreur → GitHub MCP trouve le commit qui l'a introduite via les tags de version → vous rédigez une PR de hotfix, tout dans un seul chat

Il y a une nouvelle erreur dans Sentry — problème WEB-3a91. Trouvez quel commit sur main l'a introduite (vérifiez croisement le tag de version), puis rédigez la plus petite PR de revert possible.✓ Copié
github + linear

Créez automatiquement des problèmes Linear à partir des rapports de bugs GitHub avec les étiquettes et priorités appropriées

Pour chaque problème ouvert dans notre dépôt octocat/api cette semaine avec l'étiquette 'bug', créez un problème Linear correspondant dans l'équipe BACKEND avec priorité Moyen.✓ Copié
github + filesystem + git

Contribution de bout en bout : clonez le dépôt localement, apportez des modifications, poussez une branche, ouvrez une PR — sans quitter le chat

Clonez acme/widgets localement, corrigez la typo dans src/utils/format.ts:42, poussez vers une nouvelle branche, ouvrez une PR.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
search_issues owner: str, repo: str, labels?: str[], state?: str Vous voulez trouver des problèmes par étiquette, état, assignataire ou activité 1 appel API GitHub
get_issue owner: str, repo: str, issue_number: int Après search_issues, quand vous avez besoin de la conversation complète 1 appel API
create_issue owner, repo, title, body, labels?, assignees? Déposer un nouveau problème — assurez-vous que l'utilisateur le souhaite vraiment 1 appel API (écriture)
list_pull_requests owner, repo, state?, sort?, base?, head? Trouvez les PR par état/branche/auteur 1 appel API
get_pull_request owner, repo, pull_number Lisez la diff et les métadonnées d'une PR spécifique 1 appel API
merge_pull_request owner, repo, pull_number, merge_method? Uniquement quand explicitement dit — utilisez la discussion de simulation d'abord 1 appel API (écriture, irréversible)
search_code q: str, sort? Trouvez l'utilisation de symbole dans une organisation 1 appel API (limite de débit inférieure : 30/min)
get_file_contents owner, repo, path, ref? Lisez un seul fichier d'un dépôt sans le cloner 1 appel API
create_or_update_file owner, repo, path, message, content, sha? Édition de fichier ponctuelle ; pour les changements multi-fichiers utilisez une branche + PR 1 appel API (écriture)
list_commits owner, repo, sha?, path? Auditez l'historique d'un fichier ou d'une branche 1 appel API

Coût et limites

Coût d'exécution

Quota d'API
PAT personnel : 5 000 requêtes/heure. GitHub App : 15 000/h. Recherche de code : 30/min en personnel, séparé.
Tokens par appel
200–500 tokens pour les métadonnées issue/PR ; peut gonfler à 5k+ pour les récupérations de fichiers volumineux
Monétaire
Gratuit avec n'importe quel compte GitHub. GitHub Enterprise a des limites supérieures.
Astuce
Si vous atteignez les limites, passez à une GitHub App — plus facile que de jongler avec plusieurs PAT et offre 3× le débit. Mettez en cache les résultats list_issues lors de l'itération.

Sécurité

Permissions, secrets, portée

Portées minimales : repo:read issues:read
Stockage des identifiants : PAT à granularité fine dans une variable d'environnement (p. ex. GITHUB_PERSONAL_ACCESS_TOKEN). Ne validez jamais dans les dotfiles.
Sortie de données : Tous les appels API à api.github.com uniquement. Pas de télémétrie tierce.
Ne jamais accorder : admin:org delete_repo admin:enterprise

Dépannage

Erreurs courantes et correctifs

401 Non autorisé

Votre PAT a expiré ou n'a pas accès à ce dépôt. Recréez sur github.com/settings/tokens avec les bonnes étendues.

Vérifier : curl -H "Authorization: Bearer $GITHUB_PERSONAL_ACCESS_TOKEN" https://api.github.com/user
403 limite de débit dépassée

Vous avez atteint 5000 req/h sur un PAT personnel. Attendez la fenêtre de réinitialisation, ou migrez vers un token GitHub App (15k/h).

Vérifier : curl -H "Authorization: Bearer $TOKEN" https://api.github.com/rate_limit
404 Non trouvé sur un dépôt privé

Le PAT n'inclut pas ce dépôt dans sa liste de dépôts autorisés. Modifiez le PAT à granularité fine et ajoutez le dépôt.

Docker : 'image introuvable'

Tirez l'image d'abord : docker pull ghcr.io/github/github-mcp-server. Vérifiez que vous êtes authentifié sur ghcr.io s'il est privé.

Vérifier : docker images | grep github-mcp-server

Alternatives

GitHub vs autres

AlternativeQuand l'utiliserCompromis
GitLab MCPVous utilisez GitLab.com ou GitLab auto-hébergé à la place de GitHubSurface de fonctionnalité plus petite, maintenue par la communauté
Gitea MCPInstallation Gitea auto-hébergéeOutillage limité vs le MCP GitHub officiel
git MCPBesoin seulement d'opérations git locales (statut, log, diff, blame) sans aucune opération distantePas de problèmes, PR, ou opérations distantes — fonctionne sur n'importe quel dépôt local sans authentification

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills