Documentação
Servidor MCPServidor MCP

Servidor MCP

Servidor Model Context Protocol (MCP) da Minha CNH — expõe os dados de CNH como tools nativas para agentes de IA e chatbots. Endpoint, modelo assíncrono e visão geral.

O servidor MCP é o produto irmão da API REST: expõe os mesmos dados de CNH da Minha CNH via Model Context Protocol, para que agentes de IA e chatbots consumam relatórios como tools nativas — sem escrever um cliente HTTP manual contra os endpoints REST.

São soluções complementares sobre a mesma base: use a API REST para integrações server-to-server tradicionais (backends, ETLs, filas); use o MCP quando um agente de IA (ou um cliente desktop como Claude Desktop) precisa descobrir e chamar as ferramentas sozinho. Ambos compartilham a mesma autenticação, o mesmo billing pós-pago e os mesmos rate limits.

Mesmo acesso, mesma cobrança da API REST

O servidor MCP reutiliza integralmente a autenticação, o billing pós-pago e os rate limits da API REST. Se sua organização já tem acesso habilitado e uma API key, você já pode conectar — ver Conectar.

Endpoint

POST https://minhacnh.doutormultas.com.br/api/mcp

Transporte Streamable HTTP, stateless: cada requisição é uma mensagem JSON-RPC 2.0 completa, com o Bearer token no header Authorization. Não há mcp-session-id, SSE ou estado entre chamadas.

Como conectar

Há duas formas de conectar, detalhadas em Conectar:

  • API key da organização (server-to-server) — o backend/agente da sua organização usa a mesma chave cnh_live_ da API REST.
  • OAuth por usuário — para clientes de IA desktop (Claude Desktop, Claude Cowork, ChatGPT) que esperam o fluxo moderno de conector MCP.

As dez ferramentas disponíveis (paridade total com a API REST) estão catalogadas em Ferramentas.

Modelo assíncrono

A geração do relatório leva alguns minutos. request_report não bloqueia esperando o resultado — escolha uma das três formas de recebê-lo:

  • Polling — chame get_report periodicamente com o reportId até status virar DELIVERED ou ERROR.
  • Espera bounded — chame wait_for_report com o reportId; ela faz o polling internamente e retorna assim que o relatório terminar (ou uma resposta PROCESSING se o timeoutSeconds acabar antes), poupando o loop manual de polling num agente síncrono.
  • Webhook — configure a URL de webhook em Configurações → API e receba o evento report.delivered (ou report.failed) assim que o pipeline terminar. Ver Webhooks.

Para integrações fire-and-forget, o webhook é a forma recomendada — evita polling desnecessário.

Próximos passos