Un servidor completo de Model Context Protocol (MCP) para interactuar con GitHub. Permite gestionar repositorios, issues, pull requests, branches, commits, releases, webhooks y mucho más desde Cursor o Claude Desktop.
- ✅ Gestión completa de repositorios (listar, buscar, obtener detalles)
- ✅ Pull Requests (crear, mergear, cerrar, actualizar, reviews)
- ✅ Issues (crear, actualizar, cerrar, comentarios)
- ✅ Búsqueda avanzada (código, issues, usuarios, commits)
- ✅ Gestión de commits (obtener detalles, listar, comparar)
- ✅ Releases y Tags (crear, listar, obtener detalles)
- ✅ Webhooks (crear, actualizar, eliminar, ping)
- ✅ Protección de ramas (configurar reglas de protección)
- ✅ Multiplataforma (macOS, Linux, Windows)
- Node.js 18+ instalado
- npm o pnpm
- Personal Access Token de GitHub con permisos
repo
npm install -g mcp-github-server
# o con pnpm:
pnpm add -g mcp-github-servergit clone https://github.com/pblarismendi/mcp-github-server.git
cd mcp-github-server
npm install
npm run build- Ve a GitHub Settings > Developer settings > Personal access tokens > Tokens (classic)
- Haz clic en "Generate new token (classic)"
- Dale un nombre descriptivo (ej: "MCP Server")
- Selecciona los scopes:
- ✅
repo(Full control of private repositories) - ✅
read:org(opcional, para organizaciones)
- ✅
- Haz clic en "Generate token"
- Copia el token inmediatamente (solo se muestra una vez)
Ubicación: ~/.cursor/mcp.json o .cursor/mcp.json en tu workspace
Configuración - Método 1: Con npx (Recomendado - Más Simple)
Este método no requiere encontrar rutas absolutas ni instalar globalmente:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "mcp-github-server"],
"env": {
"GITHUB_TOKEN": "tu_token_aqui"
}
}
}
}Configuración - Método 2: Con ruta absoluta
Si prefieres usar una instalación global, usa la ruta absoluta:
{
"mcpServers": {
"github": {
"command": "node",
"args": ["RUTA_ABSOLUTA/dist/index.js"],
"env": {
"GITHUB_TOKEN": "tu_token_aqui"
}
}
}
}Ejemplos de rutas:
- macOS:
"/Users/tu_usuario/.npm-global/lib/node_modules/mcp-github-server/dist/index.js" - Linux:
"/usr/local/lib/node_modules/mcp-github-server/dist/index.js" - Windows:
"C:\\Users\\tu_usuario\\AppData\\Roaming\\npm\\node_modules\\mcp-github-server\\dist\\index.js"
Ubicación:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Configuración: (igual que Cursor)
Si instalaste globalmente con npm/pnpm y necesitas la ruta absoluta, encuentra la ruta con:
npm list -g mcp-github-server
# o
pnpm list -g mcp-github-serverO busca el ejecutable:
# macOS/Linux:
which mcp-github
which mcp-github-server
# Windows (PowerShell/CMD):
where mcp-github
where mcp-github-serverNota: Si where mcp-github-server no encuentra nada en Windows, usa el Método 1 con npx que no requiere encontrar rutas.
Una vez configurado, el servidor MCP estará disponible en Cursor o Claude Desktop. Puedes usar comandos como:
- "Lista mis repositorios"
- "Muéstrame los PRs abiertos del repositorio X"
- "Crea un issue en el repositorio Y"
- "Busca código que contenga 'function calculate'"
list_repositories- Lista repositorios con filtrosget_repository- Obtiene detalles de un repositoriosearch_repositories- Busca repositorios en GitHub
list_pull_requests- Lista PRscreate_pull_request- Crea un PRget_pull_request- Obtiene detalles de un PRmerge_pull_request- Mergea un PR (merge, squash, rebase)close_pull_request- Cierra un PRupdate_pull_request- Actualiza un PRadd_pull_request_review- Agrega una reviewlist_pull_request_reviews- Lista reviews de un PR
list_issues- Lista issuescreate_issue- Crea un issueupdate_issue- Actualiza un issueclose_issue- Cierra un issueadd_issue_comment- Agrega un comentariolist_issue_comments- Lista comentarios
search_code- Busca código en repositoriossearch_issues- Busca issues y PRssearch_users- Busca usuariossearch_commits- Busca commits
get_commit- Obtiene detalles de un commitlist_commits- Lista commits con filtroscompare_commits- Compara commits o branches
list_releases- Lista releasesget_release- Obtiene detalles de un releasecreate_release- Crea un releaselist_tags- Lista tagscreate_tag- Crea un tag
list_webhooks- Lista webhooksget_webhook- Obtiene detalles de un webhookcreate_webhook- Crea un webhookupdate_webhook- Actualiza un webhookdelete_webhook- Elimina un webhookping_webhook- Hace ping a un webhook
list_branches- Lista branchesprotect_branch- Protege una rama
get_user_info- Obtiene información del usuarioget_file_content- Lee archivos o directorios
- Verifica que el token esté en la configuración de Cursor/Claude Desktop
- Asegúrate de que no haya espacios antes o después del token
- Tu token puede haber expirado
- Genera un nuevo token en GitHub y actualiza la configuración
- Verifica que la ruta al archivo
dist/index.jssea correcta y absoluta (si usas Método 2) - Asegúrate de haber instalado el paquete correctamente
- Revisa los logs de Cursor/Claude Desktop para ver errores específicos
- Solución rápida: Usa el Método 1 con
npxque no requiere rutas absolutas
Problema: Después de ejecutar npm install -g mcp-github-server, el comando where mcp-github-server no encuentra nada.
Solución 1 (Recomendada): Usa npx en lugar de buscar el ejecutable:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "mcp-github-server"],
"env": {
"GITHUB_TOKEN": "tu_token_aqui"
}
}
}
}Solución 2: Encuentra la ruta manualmente:
-
Ejecuta en PowerShell o CMD:
npm list -g mcp-github-server
-
Busca la ruta en la salida (normalmente algo como):
C:\Users\tu_usuario\AppData\Roaming\npm\node_modules\mcp-github-server -
Usa la ruta completa en la configuración:
{ "mcpServers": { "github": { "command": "node", "args": ["C:\\Users\\tu_usuario\\AppData\\Roaming\\npm\\node_modules\\mcp-github-server\\dist\\index.js"], "env": { "GITHUB_TOKEN": "tu_token_aqui" } } } }
Problema: Windows necesita archivos .cmd o .exe pero npm no los creó automáticamente.
Solución: Esto es normal y no es un problema. Puedes usar cualquiera de estos métodos:
-
Usar npx (más simple):
{ "command": "npx", "args": ["-y", "mcp-github-server"] } -
Usar node directamente con la ruta:
{ "command": "node", "args": ["RUTA_COMPLETA/dist/index.js"] }
- Usa barras normales
/o dobles backslashes\\ - Ejemplo:
"C:\\Users\\Usuario\\...\\dist\\index.js"o"C:/Users/Usuario/.../dist/index.js" - Recomendación: Usa
npxpara evitar problemas con rutas
Para más información sobre desarrollo, contribución, testing y características avanzadas, consulta:
- README.DEV.md - Documentación completa para desarrolladores
- GitHub Repository - Código fuente y issues
Si este proyecto te resulta útil, considera patrocinarme:
Tu apoyo ayuda a mantener y mejorar este proyecto. ¡Gracias! 🙏
Desarrollado con ❤️ por Pablo Arismendi
- GitHub: @pblarismendi
MIT
Si encuentras algún problema o tienes preguntas:
- Abre un issue en GitHub
- Consulta la documentación completa para desarrolladores