Para empresas e frotas

Descubra se um motorista pode dirigir hoje, por CPF

Validade, bloqueios, pontos e exames num diagnóstico só. Use a API REST no seu backend, ou conecte o servidor MCP e deixe o seu agente consultar sozinho.

Descoberta pública, execução autenticada. A mesma chave vale para REST e MCP.

mcp.json
{
  "mcpServers": {
    "minha-cnh": {
      "url": "https://minhacnh.doutormultas.com.br/api/mcp",
      "headers": {
        "Authorization": "Bearer cnh_live_<prefix>_<secret>"
      }
    }
  }
}

Pergunte, e o agente responde pela frota

Conecte o servidor a um cliente de IA e o agente encadeia as consultas sozinho. O diálogo abaixo é ilustrativo, montado com as ferramentas e os campos reais.

Gestor

O motorista da referência motorista-42 pode assumir uma rota amanhã?

Agente

Vou buscar o relatório mais recente dessa referência e conferir a situação de pontos.

  • find_report_by_external_ref({ "externalRef": "motorista-42" }){ "status": "DELIVERED", "diagnosis": { "status": "WARNING", … } }
  • calculate_points({ "currentPoints": 18, "gravissimasCount": 2 }){ "limit": 20, "remainingPoints": 2, "riskLevel": "critical", "isOverLimit": false }
Agente

Pode dirigir. A CNH está válida até 15/03/2027, categoria AB, sem bloqueio ativo e com toxicológico em dia. O ponto de atenção é outro: 18 pontos e 2 infrações gravíssimas nos últimos 12 meses deixam o limite dele em 20. Faltam 2 pontos.

O crédito foi consumido quando o relatório foi pedido, não quando o agente leu.

Comece por aqui

Três caminhos, a mesma base. Comece pelo conector se quem consulta é um agente; use REST se a chamada parte do seu backend.

Claude Cowork e outros clientes de IA

Sem código

Sem chave, sem backend, sem código: cole o endereço como conector personalizado, faça login e escolha a organização. As ferramentas aparecem no chat.

  1. No Claude Cowork ou no Claude Desktop: Configurações → Conectores → Adicionar conector personalizado. Cole o endereço abaixo.

  2. Faça login na Minha CNH pela janela que abrir. A autorização usa OAuth com PKCE.

  3. Escolha a organização que o assistente vai usar. É ela que consome os créditos.

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

Cada pessoa conecta uma organização por vez. Se as ferramentas não aparecerem, remova e adicione o conector de novo.

Prefere integrar por código?

Os dois usam a mesma credencial e a mesma cobrança do conector acima.

Servidor MCP

Cole no arquivo de configuração do seu cliente MCP. Transporte Streamable HTTP e stateless: cada requisição carrega o Bearer token.

mcp.json
{
  "mcpServers": {
    "minha-cnh": {
      "url": "https://minhacnh.doutormultas.com.br/api/mcp",
      "headers": {
        "Authorization": "Bearer cnh_live_<prefix>_<secret>"
      }
    }
  }
}

API REST

Um POST cria o relatório e devolve o reportId na hora.

POST /api/v1/reports
curl -X POST "https://minhacnh.doutormultas.com.br/api/v1/reports" \
  -H "Authorization: Bearer cnh_live_<prefix>_<secret>" \
  -H "Content-Type: application/json" \
  -d '{
    "cpf": "123.456.789-09",
    "externalRef": "motorista-42"
  }'
202 Accepted
{
  "reportId": "clx8h2k9v0001qz3f7g2m4n8p",
  "status": "PROCESSING",
  "driver": {
    "id": "cldrv7t2p0004qz3fa1b9c6de",
    "cpf": "123.456.789-09"
  },
  "statusUrl": "/api/v1/reports/clx8h2k9v0001qz3f7g2m4n8p",
  "webhookConfigured": true,
  "estimatedDeliveryAt": "2026-06-01T12:05:00Z"
}

Troque a chave de exemplo pela da sua organização, gerada em Configurações → API.

O que esperar na prática

Os números que você precisa antes de decidir integrar.

Relatório pronto em
cerca de 5 min

O POST responde na hora. O diagnóstico chega por webhook ou consulta.

Limite de consultas
10/min · 1.000/dia

Por organização, somando todas as chaves. Ajustáveis pelo time Minha CNH.

Integração
HTTP + JSON

REST e JSON-RPC puros. Qualquer linguagem que faça requisição serve.

Acesso liberado em
até 2 dias úteis

A chave é habilitada por organização depois da aprovação comercial.

O que dá para fazer

As perguntas que uma frota faz no dia a dia. Cada uma tem as suas operações, iguais no MCP e na API REST.

Saber se um motorista está regular

Validade, bloqueios e exames num diagnóstico só, a partir do CPF.

  • request_report
  • wait_for_report
  • get_report

Cruzar com o seu cadastro

Recupere um relatório pela sua própria referência, ou liste os mais recentes da organização.

  • find_report_by_external_ref
  • list_reports

Interpretar infrações e risco de pontos

Traduza um código RENAINF e calcule a situação de pontos sob a Lei 14.071.

  • lookup_violation_code
  • calculate_points
  • ask_doutor_multas

Acompanhar consumo

Consulte o saldo da linha de crédito e o consumo do mês.

  • get_credit_balance
  • get_usage

O ciclo de um relatório

A consulta é assíncrona porque a origem do dado é. Só o primeiro passo consome crédito.

  1. request_report

    Peça o relatório

    Você envia o CPF e, opcionalmente, a sua referência interna. A resposta volta na hora com o reportId, e é aqui que o crédito é debitado. Repetir o mesmo par dentro de uma hora devolve o mesmo relatório.

  2. wait_for_report

    Espere terminar

    O polling fica por conta da ferramenta. A espera vai de 1 a 240 segundos, com padrão de 120.

  3. get_report

    Leia o resultado

    Busque pelo reportId quando quiser. Com status DELIVERED, diagnosis traz o diagnóstico curado.

A chamada JSON-RPC

As três ferramentas usam o mesmo endpoint e o mesmo envelope. Só o conteúdo de params muda de uma para a outra.

tools/call
curl -X POST "https://minhacnh.doutormultas.com.br/api/mcp" \
  -H "Authorization: Bearer cnh_live_<prefix>_<secret>" \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/call",
    "params": {
      "name": "request_report",
      "arguments": { "cpf": "123.456.789-09", "externalRef": "motorista-42" }
    }
  }'

# Os outros dois são a mesma requisição, trocando só o "params":
#   { "name": "wait_for_report", "arguments": {
#     "reportId": "clx8h2k9v0001qz3f7g2m4n8p", "timeoutSeconds": 120 } }
#   { "name": "get_report", "arguments": {
#     "reportId": "clx8h2k9v0001qz3f7g2m4n8p" } }

Para integrações fire-and-forget, configure a URL de webhook em Configurações → API e receba report.delivered.

Um relatório entregue

Resposta abreviada para um motorista fictício. O mesmo shape chega no corpo do webhook.

get_report
{
  "reportId": "clx8h2k9v0001qz3f7g2m4n8p",
  "externalRef": "motorista-42",
  "status": "DELIVERED",
  "driver": { "cpf": "123.456.789-09", "licenseCategory": "AB", "expiryDate": "2027-03-15T00:00:00Z" },
  "diagnosis": {
    "status": "WARNING",
    "validity": { "status": "success", "isExpired": false },
    "blocks": { "status": "success", "hasActiveBlocks": false },
    "points": { "currentPoints": 18, "limit": 20, "remainingPoints": 2 },
    "...": "..."
  },
  "deliveredAt": "2026-06-01T12:05:00Z"
}

As seções opcionais somem do JSON quando não há dado para elas, então não teste por igualdade com null. Ver o shape completo do payload

Por que o diagnóstico vem curado, e não cru

O payload acima não é o que a consulta devolve. Ele passa por uma camada que resolve os casos abaixo.

Uma consulta por vez

Alguém abre o portal, digita o CPF e anota numa planilha. Funciona para dez motoristas e trava em trezentos.

Pontos exigem interpretação

O limite da Lei 14.071 muda conforme o motorista tem EAR e quantas gravíssimas estão na janela de 12 meses.

Créditos e consumo

Pós-pago por relatório. Só a criação cobra; consultar, listar e calcular não.

Débito na criação
Cada relatório aceito debita o preço configurado para a sua organização.
Linha de crédito
O saldo pode ficar negativo até o limite da organização. Atingido o limite, novos relatórios recebem 402.
Estorno automático
Relatório que falha depois de todas as tentativas gera estorno. Você paga pelos relatórios que chegam.
Fatura mensal
A fatura é emitida externamente e o saldo é creditado depois do pagamento.

Conferir pelo próprio agente

Saldo e consumo também são consultáveis pela API, então um agente responde quanto restou sem ninguém abrir o painel.

Leia a referência completa

Endpoints, schemas, shape do payload, assinatura de webhook e códigos de erro.

Vai integrar por agente? A referência do servidor MCP fica aqui.