Endpoints
Servidor MCP
| Ambiente | URL |
|---|---|
| Produção | https://mcp.dashboards.kobana.com.br |
| Sandbox | https://mcp.dashboards.sandbox.kobana.com.br |
A URL do servidor é a raiz do host — é esse endereço inteiro que você cola num cliente MCP. Ela é também o resource identifier OAuth, e é por isso que não carrega caminho nenhum.
Rotas servidas
| Método | Caminho | Para quê |
|---|---|---|
POST | / | Uma mensagem JSON-RPC por requisição. Toda a superfície de tools. |
GET | /.well-known/oauth-protected-resource | Metadata do recurso protegido (RFC 9728). Pública, sem autenticação. |
GET | / | 405 — este servidor é stateless e não abre stream servidor→cliente. |
DELETE | / | 204 — não há sessão para encerrar. |
Documentação e API
| URL | |
|---|---|
| Documentação | https://docs.dashboards.kobana.com.br |
| API REST (produção) | https://api.dashboards.kobana.com.br |
| API REST (sandbox) | https://api.dashboards.sandbox.kobana.com.br |
Cada ambiente tem banco e authorization server próprios. Um token emitido em sandbox não vale em produção — comece pelo sandbox.
:::info Host separado, de propósito O servidor MCP tem host próprio em vez de um caminho no host da API ou do app. São três razões: o documento de descoberta OAuth precisa morar na raiz do host; nenhum cookie de dashboard é enviado para esta origin, o que elimina por construção uma classe inteira de problemas de confused deputy; e o host da API tem uma política de borda desenhada para integrações servidor-a-servidor, não para um app de consumo. :::
Desenvolvimento local
Em desenvolvimento o endpoint responde em /mcp no host do app (http://localhost:3001/mcp), e o documento de descoberta em /.well-known/oauth-protected-resource. Fora do desenvolvimento a allowlist de host esconde o endpoint (404) fora de mcp.dashboards.*.
No host MCP, qualquer caminho que não seja o endpoint nem o documento de descoberta responde 404 em JSON, com qualquer método:
{ "error": { "code": "NOT_FOUND", "message": "Not found." } }