Utiliser GitHub pour l'accès au code
Ce guide montre comment utiliser le serveur MCP GitHub pour interagir avec les dépôts GitHub, les issues, les pull requests, et plus.
Prérequis
- MCP activé dans votre configuration mini-me
- Serveur MCP GitHub configuré
- Token d'accès personnel GitHub avec les bonnes autorisations
Exemple de configuration
Ajoutez ceci à votre fichier agent.yaml ou votre fichier de configuration personnalisé :
mcp:
enabled: true
servers:
- name: github
transport: http
url: https://api.githubcopilot.com/mcp/
timeout: 60s
auth:
type: bearer
tokenEnv: GITHUB_PERSONAL_ACCESS_TOKEN
headers:
Accept: "application/json, text/event-stream"
# Optionnel : Filtrer les outils à exposer
tools:
- get_me
- list_repositories
- list_issues
- list_pull_requests
- get_file_contents
- search_code
- search_repositories
- create_pull_request
- add_issue_comment
Configuration de l'authentification
-
Obtenir un PAT GitHub :
- Allez sur https://github.com/settings/tokens
- Cliquez sur "Generate new token"
- Sélectionnez le type de token "Classic"
-
Autorisations requises :
- Pour l'accès aux dépôts :
repo(contrôle total des dépôts privés) - Pour lire le profil utilisateur :
user(read:user) - Pour lire les organisations :
read:org - Pour les issues et pull requests :
repooupublic_repo - Pour la recherche de code :
repo
- Pour l'accès aux dépôts :
-
Définir la variable d'environnement :
export GITHUB_PERSONAL_ACCESS_TOKEN=ghp_votre_token_ici
Outils disponibles
Le serveur MCP GitHub fournit de nombreux outils organisés par catégorie :
Informations sur le dépôt
github_get_me- Obtenir le profil utilisateur authentifiégithub_list_repositories- Lister les dépôts de l'utilisateurgithub_get_repository- Obtenir les détails d'un dépôt
Accès au code
github_get_file_contents- Obtenir le contenu d'un fichier depuis un dépôtgithub_list_branches- Lister les branches d'un dépôtgithub_list_commits- Lister les commits d'un dépôtgithub_get_commit- Obtenir les détails d'un commit
Issues et Pull Requests
github_list_issues- Lister les issues d'un dépôtgithub_list_pull_requests- Lister les pull requests d'un dépôtgithub_create_pull_request- Créer une nouvelle pull requestgithub_add_issue_comment- Ajouter un commentaire à une issuegithub_update_issue_comment- Mettre à jour un commentaire existant
Recherche
github_search_code- Rechercher du code dans les dépôtsgithub_search_issues- Rechercher des issues avec une correspondance sémantiquegithub_search_pull_requests- Rechercher des pull requestsgithub_search_repositories- Rechercher des dépôtsgithub_search_commits- Rechercher des commitsgithub_search_users- Rechercher des utilisateurs
Gestion de dépôt
github_create_repository- Créer un nouveau dépôtgithub_create_branch- Créer une nouvelle branchegithub_fork_repository- Forker un dépôtgithub_merge_pull_request- Fusionner une pull requestgithub_delete_file- Supprimer un fichier d'un dépôt
Avancé
github_run_secret_scanning- Analyser le contenu à la recherche de secretsgithub_assign_copilot_to_issue- Assigner GitHub Copilot à une issuegithub_get_copilot_job_status- Obtenir l'état d'un job Copilotgithub_create_pull_request_with_copilot- Créer une PR avec l'agent Copilot
Exemples d'utilisation
Obtenir votre profil
Utilisez l'outil github_get_me pour obtenir mes informations utilisateur GitHub
Lister vos dépôts
Utilisez l'outil github_list_repositories pour lister tous mes dépôts
Rechercher du code
Utilisez l'outil github_search_code pour trouver des références à "context" dans le dépôt golang/go
Obtenir le contenu d'un fichier
Utilisez l'outil github_get_file_contents pour obtenir le fichier README.md depuis owner/repo sur la branche main
Créer une Pull Request
Utilisez l'outil github_create_pull_request pour créer une PR dans owner/repo avec le titre "Fix bug", head "feature-branch", base "main"
Ajouter un commentaire à une issue
Utilisez l'outil github_add_issue_comment pour ajouter un commentaire "Merci pour le signalement !" à l'issue #123 dans owner/repo
Paramètres des outils
La plupart des outils GitHub nécessitent ces paramètres communs :
owner- Propriétaire du dépôt (nom d'utilisateur ou organisation)repo- Nom du dépôt- Souvent les deux sont marqués avec
x-mcp-headerpour indiquer qu'ils doivent être passés comme en-têtes
Par exemple :
{
"owner": "octocat",
"repo": "Hello-World"
}
Conseils
- Soyez spécifique avec owner/repo : Vérifiez toujours le propriétaire et le nom du dépôt avant de continuer
- Utilisez des filtres : Lors de la recherche, utilisez les qualificateurs de recherche GitHub comme
language:go,org:,user: - Gérez les grandes réponses : Certains outils retournent de grandes quantités de données ; envisagez de filtrer ou de limiter les résultats
- Vérifiez les autorisations : Si un outil échoue avec une erreur d'authentification, votre PAT manque peut-être de l'autorisation requise
Problèmes courants
Paramètres requis manquants
De nombreux outils GitHub nécessitent des paramètres spécifiques. Vérifiez la description de l'outil pour les champs requis.
Erreurs d'authentification
Si vous voyez "missing bearer token" ou "401 Unauthorized" :
- Vérifiez que la variable d'environnement
GITHUB_PERSONAL_ACCESS_TOKENest définie - Vérifiez que votre token a les autorisations requises
- Assurez-vous que le token n'a pas expiré
Limite de taux
GitHub a des limites de taux. Si vous les atteignez :
- Attendez avant de faire plus de requêtes
- Envisagez d'utiliser un PAT à granularité fine avec un accès spécifique au dépôt
- Vérifiez l'état de votre limite de taux à https://api.github.com/rate_limit
Résolution des problèmes
Si les outils GitHub n'apparaissent pas :
- Vérifiez que MCP est activé dans votre configuration
- Vérifiez que
GITHUB_PERSONAL_ACCESS_TOKENest exporté dans votre environnement - Recherchez les avertissements concernant le serveur GitHub au démarrage
- Testez votre token :
curl -H "Authorization: Bearer $GITHUB_PERSONAL_ACCESS_TOKEN" https://api.github.com/user - Testez le point de terminaison MCP :
curl -X POST https://api.githubcopilot.com/mcp/ -H "Authorization: Bearer $GITHUB_PERSONAL_ACCESS_TOKEN" -H "Accept: application/json, text/event-stream" -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Voir aussi
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 |
|