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ódigo | Significado |
|---|---|
-32700 | Parse error — corpo da requisição não é JSON válido |
-32600 | Invalid Request — ex.: método HTTP diferente de POST |
-32601 | Method not found — método JSON-RPC desconhecido |
-32602 | Invalid params — nome de ferramenta desconhecido ou argumentos que falham no schema |
-32001 | Falha de autenticação — Bearer ausente, malformado, chave revogada, ou organização sem API habilitada |
-32603 | Internal 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).