A Model Context Protocol (MCP) server for managing GitHub Milestones.
- Node.js 20+
- Un Personal Access Token GitHub avec les permissions
repo - Docker (optionnel, pour le container)
npm installDéfinir la variable d'environnement suivante :
export GITHUB_PERSONAL_ACCESS_TOKEN=ghp_xxxxxxxxxxxxnpm run devnpm run build
npm startBuild de l'image :
docker build -t github-milestone-mcp .Lancement du container :
docker run -e GITHUB_PERSONAL_ACCESS_TOKEN github-milestone-mcpIl existe deux façons d'intégrer ce serveur MCP dans Claude Code.
1. Builder l'image Docker :
docker build -t github-milestone-mcp .2. Ajouter la configuration dans ~/.claude.json (config globale, disponible dans tous les projets) :
{
"mcpServers": {
"github-milestone-mcp": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_PERSONAL_ACCESS_TOKEN",
"github-milestone-mcp"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
}
}
}
}Note : La variable
GITHUB_PERSONAL_ACCESS_TOKENdoit être définie dans l'environnement du shell qui lance Claude Code.
Ajouter dans .mcp.json à la racine d'un projet :
{
"mcpServers": {
"github-milestone-mcp": {
"type": "stdio",
"command": "npx",
"args": ["tsx", "/chemin/vers/GithubMilestoneMCP/src/index.ts"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}"
}
}
}
}Le container Docker est lancé avec --rm, mais il peut arriver qu'il reste actif si Claude Code est fermé brutalement. Pour le supprimer automatiquement à chaque arrêt de Claude Code, ajouter un hook Stop dans ~/.claude/settings.json :
{
"hooks": {
"Stop": [
{
"matcher": "",
"hooks": [
{
"type": "command",
"command": "docker rm -f $(docker ps -q --filter ancestor=github-milestone-mcp) 2>/dev/null || true"
}
]
}
]
}
}Une fois configuré, redémarrer Claude Code. Les outils list_milestones, create_milestone, etc. doivent apparaître comme disponibles.
| Outil | Description |
|---|---|
list_milestones |
Liste les milestones d'un repository |
get_milestone |
Récupère les détails d'un milestone |
create_milestone |
Crée un nouveau milestone |
update_milestone |
Met à jour un milestone existant |
delete_milestone |
Supprime un milestone |