
Uma ferramenta de recuperação JSON MCP que inventa 0 de 25 saídas LLM irrecuperáveis — e recusa 55 que poderia consertar
Quando um modelo é solicitado a fornecer JSON e retorna prosa, cercas ou um objeto cortado pela metade, a maioria das bibliotecas de reparo escolhe algo e devolve. Nos 25 casos em MALFORMED-300 onde a resposta honesta é "nenhum valor existe", jsonshim-mcp inventa 0 deles. Ele também recusa 55 documentos recuperáveis que poderia ter salvado. Leia esses dois números juntos.
Este não é tráfego de produção. São 300 strings JSON malformadas sintetizadas em 12 categorias (25 cada), cada uma com verdade fundamental, pontuadas pelo mesmo score.py usado na classificação do parser.
O que é
jsonshim-mcp é um servidor MCP de um arquivo (apenas stdlib, CC0) que expõe duas ferramentas para um agente:
-
recover_json— extrai JSON de uma resposta do modelo, relata cada reparo, retorna um erro sem valor quando a recuperação é impossível -
classify_json_failure— nomeia o modo de falha sem adivinhar um valor
Apontar seu cliente MCP para ele:
{"mcpServers":{"jsonshim":{"command":"python3","args":["/absolute/path/jsonshim_mcp.py"]}}}
Os números
MALFORMED-300 parser: jsonshim-mcp
casos 300
correspondência exata 218 / 300 (72.7%)
recuperáveis recuperados 193 / 275
irrecuperáveis inventados 0 / 25
falsas recusas 55
Para comparação no mesmo corpus: json.loads pontua 8.3% (recusa tudo). json-repair recupera 264 dos 275 casos recuperáveis, mas inventa um valor em 5 dos 25 irrecuperáveis. A biblioteca independente jsonshim pontua 282/300 exatos, mas compartilha esse mesmo ponto cego de 5 invenções.
jsonshim-mcp não é o mesmo código que jsonshim. Ele troca a taxa de recuperação por um contrato de recusa mais rigoroso.
Categoria por categoria
| categoria | recuperados |
|---|---|
| comentários | 25/25 |
| cercados | 25/25 |
| prosa_envolta | 25/25 |
| aspas_simples | 25/25 |
| vírgula_final | 25/25 |
| chaves_não_cotadas | 25/25 |
| irrecuperáveis | 25/25 (recusados, nunca inventados) |
| literais_py | 21/25 |
| envoltórios | 17/25 |
| colchetes | 5/25 |
| truncados | 0/25 |
| caracteres_de_controle_raw | 0/25 |
Dois zeros planos, não ocultos: saída truncada e caracteres de controle brutos dentro de strings sempre voltam recusados. Se seu pipeline depende de salvar JSON de streaming meio escrito, esta é a ferramenta errada.
Arquivos gratuitos vs o corpus rotulado
O servidor e o avaliador são gratuitos (CC0). 12 casos de amostra abertos são enviados no zip gratuito; as outras 288 respostas são seladas.
Os 300 casos rotulados completos com justificativa por rótulo — o arquivo que você precisa para testar regressão do seu próprio parser — custam €29 para desenvolvedor único / €99 para equipe-CI: link de compra na página do produto. Download instantâneo não listado após pagamento via Stripe; sem conta, sem bloqueio de e-mail.
Números são a saída bruta do avaliador sobre o corpus conforme enviado. No-sample onde indicado. Catálogo legível por máquina.
A ferramenta jsonshim-mcp pode ser útil para empresas brasileiras que lidam com dados JSON malformados, garantindo que não sejam criados dados falsos. Isso é crucial para a integridade dos dados em aplicações que utilizam IA.
