GitHub PR MCP Server
GitHub PR MCP Server
Un servidor MCP (Model Context Protocol) mínimo para interactuar con Pull Requests de GitHub. Está pensado como ejemplo didáctico para entender cómo crear un MCP server desde cero.
Qué hace
Expone 6 herramientas:
list_pull_requests— Lista los PRs de un repositorio.get_pull_request— Muestra el detalle de un PR.list_pull_request_comments— Lista los comentarios de un PR.create_pull_request_comment— Publica un comentario en un PR.create_pull_request_review— Aprueba, pide cambios o comenta un PR.merge_pull_request— Mergea un PR.
Requisitos
Node.js 20 o superior
Un token de GitHub con permisos para leer/escribir PRs (repo o repo:read + repo:write según la operación)
Instalación
npm installConfiguración
Exporta tu token de GitHub:
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxx"Ejecución
npm run devImportante: el servidor usa
stdiocomo transporte MCP. No escribe nada astdoutexcepto el protocolo; los logs van astderr.
Probar con MCP Inspector
El inspector te permite probar las herramientas sin necesidad de un host como Claude o Cursor:
npm run inspectLuego abre la URL que indica, conecta el servidor y prueba las tools.
Configurar en un host MCP
Añade esto a tu cliente MCP (Claude Code, Cursor, VS Code, etc.):
{
"mcpServers": {
"github-pr": {
"command": "npx",
"args": ["tsx", "/ruta/al/proyecto/src/index.ts"],
"env": {
"GITHUB_TOKEN": "ghp_xxxxxxxxxxxxxxxxxxxx"
}
}
}
}Estructura del proyecto
.
├── src/
│ └── index.ts # Todo el servidor
├── package.json
├── tsconfig.json
└── README.mdNotas para un video tutorial
El archivo
src/index.tses autónomo: configura el cliente de GitHub, define los schemas con Zod, registra las tools y arranca el transporte stdio.El SDK de MCP valida los argumentos automáticamente con los schemas; si falla, la tool no se ejecuta.
Para demostraciones, usa un repo de prueba y un PR que no importe romper.