Endpoints
Servidor MCP
No mesmo domínio da API, com o prefixo mcp:
| Ambiente | URL do servidor MCP | API REST |
|---|---|---|
| Produção | https://mcp.finance.kobana.com.br | https://api.finance.kobana.com.br/v1 |
| Sandbox | https://mcp.finance.sandbox.kobana.com.br | https://api.finance.sandbox.kobana.com.br/v1 |
A URL do servidor é a raiz do host — é esse endereço que você cola num cliente MCP, sem mais nada: o workspace é escolhido a cada chamada, pelo argumento workspace_id das tools. ?workspace_id=<uuid> continua aceito, mas só define um workspace padrão para a conexão — veja Autenticação → O workspace. A raiz é 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. |
Cada ambiente tem banco e authorization server próprios: um token emitido em sandbox não vale em produção. Comece pelo sandbox: as tools destrutivas apagam títulos e mandam pagamentos ao banco de verdade.
:::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. O documento de descoberta OAuth precisa morar na raiz do host, e nenhum cookie do dashboard é enviado para esta origin — o que elimina por construção uma classe inteira de problemas de confused deputy. :::
Desenvolvimento local
Em desenvolvimento o endpoint responde em /mcp no host do app (http://localhost:3029/mcp), e o documento de descoberta em /.well-known/oauth-protected-resource. Em sandbox e produção, fora de mcp.finance.*, o endpoint responde 404.