MCP server for tracking Brazilian postal objects (Correios) with automatic CAPTCHA resolution via local CRNN neural network
Two tools with clear, concise descriptions and basic input schemas. Tool names follow verb_noun pattern (rastrear_*). Input schemas present with type definitions and descriptions. However, output schemas are undocumented, LLMs cannot predict response structure. Parameter descriptions lack format constraints (e.g., regex pattern for codigo not stated in schema description). Error handling returns structured objects but lacks recovery guidance. No tool annotations (readOnlyHint, idempotentHint). Validation logic exists in code but not exposed in schema constraints.
Rastreia até 20 objetos de uma vez (ex: ["AA000000000BR", "AA000000001BR"])
Rastreia um objeto pelo código (ex: AA000000000BR)
Output schemas undocumented. LLMs cannot predict response structure (fields, types, nesting). Both tools return dict/object with no schema definition visible.
Parameter format constraints not exposed in schema descriptions. 'codigo' parameter has regex validation in code (^[A-Z]{2}\d{9}[A-Z]{2}$) but description does not state this formally. LLMs may pass invalid formats.
Error responses lack recovery guidance. Errors return {"erro": true, "mensagem": "..."} but do not suggest next steps. E.g., invalid code error should suggest format or offer search alternative.
No tool annotations. Tools are read-only (risk: READ_ONLY) but lack idempotentHint or readOnlyHint in schema. Agents cannot infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
rastrear_multiplos description mentions max 20 objects but does not state this in schema constraints (maxItems). Validation happens at runtime; schema is silent.