Volver a la wiki

Handler MCP: GitHub (github.ts)

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

ToolDescripción
github_list_prsLista Pull Requests de un repo
github_create_issueCrea un Issue en el repo especificado
github_repo_activityResumen de actividad reciente (commits, PRs, issues)
github_list_workflow_runsLista 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

FechaCambio
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 / SecretRequeridaDescripción
GH_PATSíPersonal Access Token con permisos repo, actions:read

Archivos relacionados

Notas operativas

Véase también

Subir