Documentação
Servidor MCPErros

Erros

Tratamento de erros do servidor MCP da Minha CNH — erros de protocolo/transporte (JSON-RPC) versus erros de negócio (resultado da ferramenta).

Duas camadas de erro, cada uma com um propósito diferente.

Erros de protocolo/transporte (JSON-RPC)

Problemas de handshake, autenticação ou payload malformado voltam como um erro JSON-RPC padrão (error.code no envelope, não um result):

CódigoSignificado
-32700Parse error — corpo da requisição não é JSON válido
-32600Invalid Request — ex.: método HTTP diferente de POST
-32601Method not found — método JSON-RPC desconhecido
-32602Invalid params — nome de ferramenta desconhecido ou argumentos que falham no schema
-32001Falha de autenticação — Bearer ausente, malformado, chave revogada, ou organização sem API habilitada
-32603Internal error
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": { "code": -32001, "message": "UNAUTHORIZED", "data": { "httpStatus": 401 } }
}

Erros de negócio (resultado da ferramenta)

CPF inválido, saldo insuficiente, rate limit excedido ou reportId inexistente não são erros de protocolo — são um resultado JSON-RPC válido (result, não error) com isError: true e um structuredContent no mesmo formato do envelope de erro da API REST (ver Erros da API REST para o catálogo completo de code/httpStatus):

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "isError": true,
    "content": [{ "type": "text", "text": "{ \"error\": \"Credit line exceeded\", \"code\": \"PAYMENT_REQUIRED\", \"httpStatus\": 402 }" }],
    "structuredContent": {
      "error": "Credit line exceeded",
      "code": "PAYMENT_REQUIRED",
      "httpStatus": 402
    }
  }
}

Quando o erro vem de rate limit, structuredContent inclui também retryAfter (segundos).

Próximos passos