github-project-management
Servidor MCP de Gestión de Proyectos GitHub
Servidor MCP (Model Context Protocol) personalizado que permite a los asistentes de IA gestionar programáticamente tableros de GitHub Project V2 mediante el Model Context Protocol. Construido con Python 3.12 y FastMCP, se comunica a través del transporte stdio y se ejecuta dentro de un contenedor Docker independiente.
Ubicación
project/
├── mcp/ ← This directory (root-level, independent of the app)
│ ├── Dockerfile
│ ├── requirements.txt
│ ├── server.py # FastMCP entry point
│ ├── config.py
│ ├── auth.py
│ ├── capabilities.py # Tool → permission mapping
│ ├── profiles.py # Multi-target profile system
│ ├── tools/ # MCP tool definitions
│ ├── services/ # Business logic
│ ├── clients/ # GraphQL + gh CLI clients
│ ├── models/ # Pydantic models
│ ├── graphql/ # Query/mutation strings
│ ├── tests/ # Unit + contract tests
│ ├── scripts/ # Validation, preflight, secret scanning
│ │ ├── validate.sh # ← Run before every push
│ │ ├── preflight.sh # Environment prerequisites
│ │ ├── scan_secrets.sh # Token pattern detection
│ │ └── smoke_build.sh # Minimal build verification
│ ├── profiles/ # Target config (.env files, no secrets)
│ ├── docs/ # Detailed documentation
│ ├── LICENSE # MIT
│ ├── CONTRIBUTING.md
│ └── SECURITY.mdNota: Este servidor MCP es un componente independiente con su propio Dockerfile, dependencias y ciclo de vida.
Related MCP server: my_pm_tools
Cómo Funciona
MCP Client → docker run --rm -i github-project-mcp:latest → stdin/stdout JSON-RPC → GitHub APIEl cliente MCP invoca una herramienta (ej:
create_project_item)Se ejecuta
docker run --rm -i github-project-mcp:latest python server.pyEl servidor valida la autenticación y espera comandos por stdin
El cliente envía JSON-RPC por stdin y recibe respuestas por stdout
Al finalizar, el contenedor se destruye automáticamente (
--rm)
Docker — Construir y Gestionar
Construir la imagen
# Desde la raíz del proyecto
docker build -t github-project-mcp:latest ./mcpDocker Compose (desarrollo local)
La forma más sencilla de configurar y ejecutar el MCP localmente:
# 1. Crear tu configuración local (una sola vez)
cp mcp/.env.example mcp/.env
# Editar mcp/.env con tu GITHUB_TOKEN y target (org/repo/project)
# 2. Construir y verificar
cd mcp/
make build
make verifyObjetivos de Makefile
Todos los objetivos se ejecutan dentro de Docker — sin dependencias del host.
cd mcp/
make help # Mostrar todos los targets disponibles
make build # Construir imagen Docker
make verify # Validar auth + scopes + config
make test # Ejecutar unit tests
make validate # CI completo (build + syntax + tests + tools + secrets)
make tools # Contar herramientas registradas (>= 100)
make syntax # Verificar sintaxis Python
make secrets # Escanear credenciales en código
make shell # Shell interactivo dentro del contenedor
make clean # Eliminar imágenesNota: Si
makeno está disponible en el host, los objetivos pueden invocarse directamente con Docker. Ejemplo:docker run --rm --env-file .env github-project-mcp:latest python3 scripts/verify_setup.py
Cada colaborador clona el repositorio, crea su .env, y el MCP funciona sin instalar nada más que Docker.
Verificar que la imagen existe
docker images | grep github-project-mcpProbar manualmente (prueba de humo)
docker run --rm -i \
-e GITHUB_TOKEN="<your_token>" \
github-project-mcp:latest \
python server.pyEl servidor imprimirá en stderr: github-project-management MCP server ready. Authentication validated successfully.
Luego espera JSON-RPC por stdin. Pulsa Ctrl+C para salir.
Reconstruir después de cambios
docker build -t github-project-mcp:latest ./mcp --no-cacheScript de gestión
El script ./scripts/dev/start.sh admite un argumento mcp para gestionar la imagen:
./scripts/dev/start.sh mcp build # Construir/reconstruir la imagen
./scripts/dev/start.sh mcp test # Ejecutar smoke test
./scripts/dev/start.sh mcp status # Verificar si la imagen existeNota: El MCP no es un servicio persistente. No necesita
up/down/restart. Se lanza bajo demanda cada vez que el cliente utiliza una herramienta.
Integración con IDE
El MCP es compatible con cualquier cliente que admita el protocolo MCP sobre stdio. La configuración varía según el IDE — el patrón general es:
{
"mcpServers": {
"github-project-management": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "GITHUB_TOKEN",
"--env-file", "mcp/.env",
"github-project-mcp:latest",
"python", "server.py"
]
}
}
}Para la configuración específica por IDE, consulta docs/SETUP.md.
Herramientas Registradas (100)
Operaciones Principales
Herramienta | Descripción |
| Descubrir IDs de proyecto/campos |
| Listar elementos con filtros |
| Crear issue + añadir al proyecto |
| Actualizar Estado, Prioridad, Fecha límite |
| Establecer estimación en puntos |
| Archivar elemento del tablero |
Gestión de Issues
Herramienta | Descripción |
| Cerrar un issue |
| Reabrir un issue cerrado |
| Añadir comentario a un issue |
| Editar título, cuerpo, etiquetas, hito, asignados |
| Vincular como sub-issue |
| Desvincular sub-issue |
| Detalle completo del issue |
| Buscar por consulta |
Operaciones de Tablero
Herramienta | Descripción |
| Mover elemento a cualquier columna de estado |
| Marcar como Hecho |
| Mover a la Papelera |
| Actualizar varios elementos por lotes |
| Cerrar varios issues |
| Asignar varios issues |
Planificación y Flujos de Trabajo
Herramienta | Descripción |
| Generar plan de sprint |
| Generar notas de versión automáticamente |
| Flujo de finalización completo |
| Generar informe de standup |
| Resumen de revisión de sprint |
| Triaje automático de propuestas |
| Marcar elementos vencidos |
| Crear épica + elementos secundarios |
| Cerrar sprint y mover elementos |
Metadatos
Herramienta | Descripción |
| Crear hito de GitHub |
| Cerrar hito |
| Listar hitos |
| Crear etiqueta |
| Listar etiquetas |
| Estadísticas del tablero |
| Métricas del sprint actual |
Arquitectura
Tool Layer (FastMCP tool definitions)
↓
Service Layer (business logic, orchestration)
↓
Client Layer (GraphQL + gh CLI + caching)
↓
GitHub APIs (GraphQL v4 + REST v3)Estrategia de Delegación
Método | Cuándo se utiliza |
CLI de gh | CRUD de issues, comentarios, añadir elementos al proyecto, cerrar |
GraphQL personalizado | Actualizaciones de campos, archivado, descubrimiento, sub-issues |
Variables de Entorno
Variable | Obligatoria | Descripción |
| Sí | PAT de GitHub (de grano fino o clásico) |
| Sí | Propietario de GitHub (organización o inicio de sesión de usuario) |
| Sí | Nombre del repositorio |
| Sí | Número del tablero Project V2 (1–100000) |
Solución de Problemas
El MCP no conecta
# Verificar que la imagen existe
docker images | grep github-project-mcp
# Si no existe, construir
docker build -t github-project-mcp:latest ./mcp
# Verificar token
echo $GITHUB_TOKEN | head -c 20Reconectar MCP
Si el MCP se desconecta del IDE, utiliza la opción de reconexión del cliente MCP correspondiente.
Error de autenticación
Verificar que
GITHUB_TOKENestá disponible en el entorno del contenedorLos tokens
github_pat_*(de grano fino) necesitan permisos: Issues (RW), Projects (RW), Metadata (R)Los tokens clásicos necesitan scopes:
repo,project,read:org
Documentación Relacionada
Documento | Propósito |
Configuración de token y permisos | |
Ejemplos de entrada/salida de herramientas | |
Referencia de parámetros | |
Errores comunes |
Ubicaciones de origen y sincronización
Este directorio (mcp/) es la fuente canónica de verdad para el paquete MCP.
El repositorio contiene una copia sincronizada en:
app/backend/app/mcp/github_project/— integrada en el backend para las compilaciones de Docker
Flujo de sincronización
Realiza todos los cambios aquí en
mcp/primero.Copia los archivos modificados a la ruta integrada:
cp mcp/<file> app/backend/app/mcp/github_project/<file>Verifica con la comprobación automatizada:
./mcp/scripts/check_sync.sh
El script de sincronización compara todos los archivos .py compartidos (excluyendo __init__.py, que es
intencionadamente diferente en la copia del backend, y archivos solo de infraestructura como Dockerfile
y requirements.txt). CI ejecuta esta comprobación en cada push — la divergencia hace fallar la compilación.
Archivos intencionadamente diferentes en la copia del backend
Archivo | Motivo |
| Importaciones específicas del backend + documentación de la fuente de sincronización |
| Apunta de vuelta aquí; documenta la política de copia |
El conjunto de pruebas del backend ejercita la copia integrada; la validación de sintaxis debe compilar ambos árboles.
Comportamiento de ejecución reforzado
Todos los ajustes utilizan el prefijo GH_PROJECT_ y se validan al inicio:
Ajuste | Valor predeterminado | Límites / comportamiento |
|
| 1–120 segundos |
|
| 0–5; solo lecturas, las mutaciones nunca se reintentan |
|
| 0–60 segundos, retroceso exponencial |
|
| 1–720 horas |
|
| Ruta local configurable |
|
| 1–100 |
|
| 1–1.000 |
|
| 10.000–10.000.000 |
La caché de metadatos se escribe de forma atómica, utiliza permisos solo para el propietario (0600), rechaza marcas de tiempo futuras y no se reutiliza cuando la organización o el número de proyecto difieren. Los diagnósticos de CLI y GraphQL redactan valores similares a tokens y están limitados antes de devolverse al cliente MCP.
Validación solo con Docker
Ejecuta la validación sin herramientas de Python en el host:
# Compile both source copies through a Python container
tar -C . -cf - mcp app/backend/app/mcp \
| docker run --rm -i python:3.12-slim sh -c \
'mkdir -p /tmp/factib && tar -xf - -C /tmp/factib && \
python -m compileall -q /tmp/factib/mcp /tmp/factib/app/backend/app/mcp'
# Run the backend MCP tests using the existing backend image
tar -C . -cf - app/backend/app app/backend/tests/mcp \
| docker run --rm -i -e PYTHONPATH=/tmp/factib/app/backend backend:latest sh -c \
'mkdir -p /tmp/factib && tar -xf - -C /tmp/factib && cd /tmp/factib/app/backend && \
pytest -q --confcutdir=/tmp/factib/app/backend/tests/mcp tests/mcp'Validación Local (Antes del Push)
Ejecuta siempre antes de crear un PR o enviar cambios. Esto replica el pipeline de CI localmente y detecta problemas antes de que lleguen a GitHub Actions.
Inicio Rápido
# Full validation (builds image + runs all checks):
./mcp/scripts/validate.sh
# Quick mode (reuses cached image, skips rebuild):
./mcp/scripts/validate.sh --quick
# Auto-fix known issues (e.g., BOM characters):
./mcp/scripts/validate.sh --fixQué Comprueba
Paso | Qué | Igual que el paso de CI |
1. BOM | Detecta bytes BOM UTF-8 en archivos Python | N/A (previene errores de sintaxis) |
2. Build |
| "Build MCP image" |
3. Sintaxis |
| "Syntax check" |
4. Pruebas | Ejecuta los módulos de prueba en | "Run unit tests" |
5. Herramientas | Cuenta las herramientas registradas (debe ser >= 100) | "Verify tool count" |
6. Secretos | Escanea patrones de tokens en archivos rastreados | N/A (pre-publicación) |
Scripts Disponibles
Script | Propósito | Cuándo Usarlo |
| Espejo completo de CI | Antes de cada push/PR |
| Comprobación de requisitos (Docker, token, configuración) | Primera configuración o cambios de entorno |
| Detección de patrones de secretos | Antes de publicar el repositorio |
| Compilación mínima + recuento de herramientas | Comprobación rápida de cordura |
| Suite de contratos multiobjetivo | Después de cambios estructurales |
Problemas Comunes y Soluciones
Problema | Síntoma | Solución |
Caracteres BOM |
|
|
Imagen no construida | "Image not found" en comandos de Docker |
|
Token no establecido | "No GitHub token found" en la verificación previa |
|
Recuento de herramientas < 100 | Nueva herramienta no registrada en server.py | Añade |
El registro completo de 200 elementos, incluido el trabajo implementado y planificado, está en docs/HARDENING_200.md.
Suite de capacidades ampliada: 60 herramientas adicionales
El servidor expone más de 100 herramientas en total: las 40 herramientas operativas originales más 60 capacidades específicas de tools/capability_suite.py.
Grupo | Propósito | Ejemplos |
Calidad de issues y Markdown | Validar, normalizar, resumir, plantillar, agrupar y revisar issues |
|
Sistema de comentarios | Crear comentarios de progreso, plan, bloqueo y resolución; listar/buscar/editar comentarios |
|
Informes de proyecto | Informes de salud, estado, prioridad, asignado, fecha límite y campos |
|
Planificación de proyecto | Exportar/importar Markdown, planes de sincronización de metadatos y planes masivos filtrados |
|
Automatización estratégica | Planes de sprint, clasificación de backlog, informes de riesgo/dependencias y actualizaciones para interesados |
|
Hojas de ruta y decisiones | Registros de cambios, listas de verificación de lanzamiento, hojas de ruta, retrospectivas y decisiones de automatización |
|
Las herramientas que podrían causar mutaciones amplias devuelven un plan dry_run por defecto. Las herramientas de comentarios directos realizan una operación de comentario visible por invocación. El catálogo de capacidades verifica 60 adiciones únicas en el momento de la importación, y la validación de Docker confirma 100 herramientas FastMCP registradas en ambas copias del código fuente.
Distribución
Imagen Docker
El servidor MCP se distribuye como una imagen Docker independiente. Compílala localmente:
docker build -t github-project-mcp:latest ./mcpCanal de CI/CD
El flujo de trabajo mcp-ci.yaml se ejecuta automáticamente en:
Push a
maincuando cambian archivos bajomcp/Pull requests que afectan rutas de
mcp/
Etapas del canal:
Compilación — Verificación de compilación de la imagen Docker
Verificación de sintaxis — Análisis AST de todos los archivos Python
Pruebas unitarias — Ejecución de la suite de pytest
Verificación del recuento de herramientas — Garantiza ≥100 herramientas registradas
Versionado
Este servidor MCP sigue Semantic Versioning. Consulta CHANGELOG.md para ver el historial de versiones.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables users to interact with GitHub's Projects v2 API through natural language for Agile project management, supporting repository details, issue tracking, and project board management operations.35GPL 2.0
- AlicenseAqualityBmaintenanceEnables natural language management of GitHub Projects V2, including issue creation, status changes, sprint reports, and project setup via MCP tools and shell scripts.311MIT
- FlicenseNot gradedqualityDmaintenanceEnables LLM agents to manage projects, track issues, log work, and integrate with Git. Provides 23 MCP tools for full project management capabilities.16
- AlicenseAqualityDmaintenanceEnables AI assistants to manage GitHub Projects V2, including items, fields, and views through a standardized interface.17121MIT
Related MCP Connectors
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Free public MCP for AI agents — 193 tools, 44 workflows. No API key.
Project management MCP for AI agents with safe task reads and writes.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jersonmartinez/mcp-github-projects'
If you have feedback or need assistance with the MCP directory API, please join our Discord server