Handler MCP: GitHub (github.ts)
Descripción
Módulo del servidor MCP de CreaRack-Workspace (functions/api/mcp/handlers/github.ts) que implementa todas las tools de integración con la GitHub API. Es invocado desde el router principal del Worker cuando el campo tool del request MCP empieza con el prefijo github_.
El handler usa un GH_PAT (Personal Access Token) inyectado como secret del Cloudflare Worker para autenticar todas las llamadas a api.github.com.
Tools disponibles
| Tool | Descripción |
|---|---|
github_list_prs | Lista Pull Requests de un repo |
github_create_issue | Crea un Issue en el repo especificado |
github_repo_activity | Resumen de actividad reciente (commits, PRs, issues) |
github_list_workflow_runs | Lista runs de GitHub Actions con filtros por workflow, status y limit (añadida 2026-05-13) |
Seguridad: allowlist de repos
La validación de repos se centraliza en functions/api/mcp/validation.ts:
const ALLOWED_REPOS = ['CreaRack-Pro', 'CreaRackSL-workspace', 'claude-method'];
export function isAllowedRepo(repo: string): boolean {
return ALLOWED_REPOS.includes(repo);
}
Cualquier tool que reciba un parámetro repo pasa por isAllowedRepo() antes de hacer la llamada a la API. Si el repo no está en la lista, devuelve { error: "Repo '...' not allowed" }.
Historial de cambios en ALLOWED_REPOS
| Fecha | Cambio |
|---|---|
| Pre-2026-05-13 | ['CreaRack-Pro', 'CreaRackSL-workspace'] |
2026-05-13 (commit 92da366) | Añadido claude-method para acceso a los 3 repos del ecosistema |
Flujo de llamada
Agent → MCP Request (tool: "github_list_workflow_runs", args: {...})
→ Worker router (functions/api/mcp/index.ts)
→ handleGithub(args, env) en github.ts
→ isAllowedRepo(repo) en validation.ts
→ GitHub REST API (api.github.com)
→ Response JSON al agente
Requisitos de entorno
| Variable / Secret | Requerida | Descripción |
|---|---|---|
GH_PAT | Sí | Personal Access Token con permisos repo, actions:read |
Archivos relacionados
functions/api/mcp/handlers/github.ts— implementación del handler (switch/case por tool)functions/api/mcp/tools.ts— schemas MCP (inputSchema) de todas las toolsfunctions/api/mcp/validation.ts—isAllowedRepo()yisAllowedGuidePath()
Notas operativas
- El
GH_PATdebe tener acceso de lectura a los tres repos de la organizaciónCreaRackSL. - Pendiente (Edu): configurar Resend en el Worker para habilitar envío de emails reales desde el agente (no solo drafts).
- Los agentes deben pasar
repo:explícito al consultar repos distintos al checkout activo. - El prompt de
maintenance-weeklynecesita ser actualizado para usar los nombres exactos de las tools MCP (no los del entorno Claude Code).
Véase también
- [[entity—mcp—tool—github-list-workflow-runs]]
- [[workspace—agentes-ia]]
- [[workspace—que-es-workspace]]