Endpoints
Servidor MCP
| Ambiente | URL |
|---|---|
| Producción | https://mcp.dashboards.kobana.com.br |
| Sandbox | https://mcp.dashboards.sandbox.kobana.com.br |
La URL del servidor es la raíz del host — esa dirección entera es la que pegas en un cliente MCP. Es también el resource identifier OAuth, y por eso no lleva ninguna ruta.
Rutas servidas
| Método | Ruta | Para qué |
|---|---|---|
POST | / | Un mensaje JSON-RPC por petición. Toda la superficie de tools. |
GET | /.well-known/oauth-protected-resource | Metadata del recurso protegido (RFC 9728). Pública, sin autenticación. |
GET | / | 405 — este servidor es stateless y no abre stream servidor→cliente. |
DELETE | / | 204 — no hay sesión que terminar. |
Documentación y API
| URL | |
|---|---|
| Documentación | https://docs.dashboards.kobana.com.br |
| API REST (producción) | https://api.dashboards.kobana.com.br |
| API REST (sandbox) | https://api.dashboards.sandbox.kobana.com.br |
Cada ambiente tiene su propia base de datos y su propio authorization server. Un token emitido en sandbox no vale en producción — empieza por sandbox.
:::info Host separado, a propósito El servidor MCP tiene host propio en lugar de una ruta en el host de la API o de la app. Tres razones: el documento de descubrimiento OAuth debe vivir en la raíz del host; ninguna cookie del panel se envía a este origin, lo que elimina por construcción toda una clase de problemas de confused deputy; y el host de la API tiene una política de edge diseñada para integraciones servidor a servidor, no para una app de consumo. :::
Desarrollo local
En desarrollo el endpoint responde en /mcp en el host de la app (http://localhost:3001/mcp), y el documento de descubrimiento en /.well-known/oauth-protected-resource. Fuera de desarrollo la allowlist de host esconde el endpoint (404) fuera de mcp.dashboards.*.
En el host MCP, cualquier ruta que no sea el endpoint ni el documento de descubrimiento responde un 404 en JSON, con cualquier método:
{ "error": { "code": "NOT_FOUND", "message": "Not found." } }