Skip to content

Referencia de API

El bridge expone unas pocas superficies HTTP distintas. El backend también sirve un explorador OpenAPI interactivo en /docs (Swagger UI, generado desde src/openapi.yaml) — abierto en desarrollo, detrás de auth admin en producción.

Endpoints MCP (para callers de tools)

Donde se conectan los clientes MCP. Auth: MCP_API_KEYS Bearer, o un JWT cuando JWT_JWKS_URL está configurado.

EndpointPropósito
GET/POST /mcp/:clientNamePlano de datos — tools de un solo backend (shardeado)
GET/POST /mcp-custom/:bundleNamePlano de datos — un bundle curado entre backends
POST /mcpControl plane — tools sys_* de gestión del gateway, no de backend

Los tres hablan Streamable HTTP; el transporte SSE legacy (/sse + /messages) fue eliminado. /mcp tiene su propia auth fail-closed (requiere un rol de sistema real — sin fallback "sin configurar significa abierto").

Control plane — tools sys_* de gestión del gateway

POST /mcp expone un catálogo fijo de tools de gestión del gateway — adaptadores MCP finos sobre la misma lógica de dominio que ya expone la admin API REST (/admin-api/*). Operan sobre el gateway mismo (registrar e inspeccionar backends, activar/desactivar clients y tools, mintear keys, hacer tail del audit log), nunca sobre tools de backend. Cada tool se gatea en dos ejes, ambos aplicados en runSystemTool() (src/mcp/system-tools.ts):

  • Tier de rol — replica los tiers del middleware REST. read requiere cualquier rol de sistema resuelto, operate requiere operator o admin, admin requiere admin. El rol del caller viene de resolveSystemRole() (el Bearer admin del entorno, o una fila mcp_api_keys gestionada con un adminRole). Las tools por encima del tier del caller se ocultan de tools/list, no solo se rechazan.
  • Step-up — las tools que mutan, destruyen o mintean credenciales requieren además {"__confirm": true} en los argumentos o una credencial elevada — el mismo gate que proxyToolCall aplica a las tools de backend sensibles.
ToolTierStep-upDescripción
sys_list_clientsreadLista backends registrados (REST o upstreams MCP) con estado enable/salud.
sys_get_clientreadDetalle completo de un backend, incluyendo sus tools y salud.
sys_list_toolsreadCada par (backend, tool) de todos los backends registrados.
sys_list_bundlesreadLista bundles curados por admin servidos en /mcp-custom/:bundleName.
sys_list_keysreadAPI keys MCP gestionadas — solo metadata; el valor de la key nunca es recuperable.
sys_metricsreadSnapshot de métricas del gateway: uptime, sesiones, conteo de tool-calls, latencia.
sys_audit_tailreadTail del audit log de admin (entradas más recientes primero).
sys_set_client_enabledoperateActiva o desactiva un backend (sus tools quedan inalcanzables mientras esté off).
sys_set_tool_enabledoperateActiva o desactiva una sola tool de un backend.
sys_reset_circuit_breakeroperateFuerza el circuit breaker de un backend vivo de vuelta a closed.
sys_register_clientoperate__confirm / elevadaRegistra un backend REST/OpenAPI, upstream MCP o GraphQL (validado contra SSRF).
sys_delete_clientoperate__confirm / elevadaOlvida permanentemente un backend y purga su config SQLite.
sys_mint_keyadminBearer env + __confirmMintea una API key MCP gestionada. Requiere el Bearer admin del entorno.
sys_revoke_keyadmin__confirm / elevadaRevoca una API key MCP gestionada por id.

sys_mint_key es la única tool que requiere el Bearer admin del entorno literal — ninguna key gestionada, por privilegiada que sea, puede mintear otra (sin auto-escalada).

Registro

Registra o re-descubre backends. Auth: sesión admin o ADMIN_API_KEYS Bearer.

EndpointPropósito
POST /registerRegistra un backend REST (openapi_url, tools, curl_input, o postman_collection), un upstream MCP (kind: "mcp", mcp_url), o una API GraphQL (kind: "graphql", graphql_url)
GET /register/schemaJSON Schema para el payload de registro

Consulta Registrar backends para los campos del payload.

Admin API — /admin-api/*

La API JSON de gestión detrás de la UI de admin Vue. Auth: cookie de sesión (con CSRF en mutaciones) o ADMIN_API_KEYS Bearer. Role-gated; cada mutación se audita.

GrupoEjemplos
AuthPOST /admin-api/auth/login, /logout, GET /admin-api/auth/me
Servers & toolsGET /admin-api/clients (crear vía POST /register), GET/PATCH/DELETE /admin-api/clients/:name, PATCH /admin-api/clients (bulk enable/disable), GET /admin-api/tools
Curation/admin-api/bundles*, /composites*
Access/admin-api/mcp-keys*, /consumers*, /policies*, /users*, /teams*
Observability/admin-api/overview, /usage/*, /alerts*, /audit-log*
Config & ops/admin-api/config/* (export/import, snapshots, rollback), /schedules*, /discovery/preview

Las formas completas request/response están en el Swagger UI en /docs.

Operaciones

EndpointAuthPropósito
GET /healthningunaSalud genérica + uptime ({ "status": "ok", "uptime_seconds": <n> }) para load balancers y dashboards de ops
GET /livezningunaLiveness probe de Kubernetes — siempre 200 mientras el proceso responda HTTP
GET /readyzningunaReadiness probe de Kubernetes — 200 solo si tiene el lease de líder y la BD responde SELECT 1, si no 503
GET /metricssesión admin o ADMIN_API_KEYSMétricas Prometheus (incl. mcp_tool_calls_total{outcome})
GET /adminlogin de UIEl SPA Vue de admin
GET /docsdev-open / adminExplorador OpenAPI interactivo (Swagger UI)

Errores

Los errores son JSON: { "error": { "code", "message", "request_id" } }. El request_id vincula un fallo al log estructurado del servidor — cítalo al reportar issues.

Siguiente: Conceptos y glosario → · Configuración →

Distribuido bajo la licencia MIT · Construido con Bun + Vue.