Skip to main content
Glama
Pelado-Nerdworks

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 install

Configuración

Exporta tu token de GitHub:

export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxx"

Ejecución

npm run dev

Importante: el servidor usa stdio como transporte MCP. No escribe nada a stdout excepto el protocolo; los logs van a stderr.

Probar con MCP Inspector

El inspector te permite probar las herramientas sin necesidad de un host como Claude o Cursor:

npm run inspect

Luego 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.md

Notas para un video tutorial

  • El archivo src/index.ts es 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.