SDK em TypeScript e servidor MCP para o cnpjaberto.com.br, cadastro aberto de empresas brasileiras (CNPJ).
Server has 9 well-named tools with complete input schemas and descriptions. Naming follows verb_noun convention (lookup_cnpj, list_filiais, search_companies). Descriptions are substantive (100-200 chars), explaining what each tool does and key parameters. All parameters have types and descriptions. However, output schemas are not documented, LLMs cannot see what fields to expect from responses. Error handling is minimal; no recovery guidance or actionable error messages. No tool annotations (readOnlyHint, etc.). Parameter constraints are described in text but not formalized as enums or JSON Schema patterns. Missing documentation of pagination behavior and result limits in tool descriptions.
Estatísticas agregadas de um CNAE: total de empresas, top UFs, top municípios.
Empresas que compartilham um endereço específico. CEP exige 8 dígitos.
Acha empresas que compartilham um contato. Informe email OU (ddd E telefone).
Acha empresas onde uma pessoa aparece como sócia. cpf em dígitos (parcial é aceito) ajuda a desambiguar homônimos.
Lista as filiais de uma matriz. Opcionalmente filtra por UF.
Registro completo de uma empresa pelo CNPJ. Aceita 8, 12 ou 14 dígitos, com ou sem pontuação. No topo retorna razao_social, capital_social, natureza_juridica, simples, socios. A lista estabelecimentos[] traz matriz e filiais, com situacao_cadastral, endereço e CNAEs.
Output schemas not documented. LLMs cannot see what fields responses contain (e.g., what does lookup_cnpj return? Does it include estabelecimentos array, razao_social, capital_social?). This forces agents to guess field names and risks extraction errors.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only, but this is not declared in the schema. Agents cannot infer safety properties without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Estatísticas nacionais: total de empresas ativas, top UFs e CNAEs, faixas de capital social, faixas etárias, histórico de 10 anos.
Snapshot anual: aberturas, fechamentos, série mensal, top CNAEs e UFs, fatia MEI.
Busca empresas por razão social, fantasia ou dígitos do CNPJ. A query precisa de no mínimo 3 caracteres; per_page é limitado a 20.
Parameter constraints described in text but not formalized. E.g., 'minimum 3 characters' for query/name, 'maximum 50' for per_page, '8 digits' for CEP. Should use JSON Schema minLength, maxLength, pattern, enum, or minimum/maximum properties.
No error handling guidance. Client.ts catches HTTP errors (401, 403, 404, 429) and throws custom exceptions, but MCP tool responses do not include recovery hints. E.g., if lookup_cnpj returns 404, the response should suggest 'CNPJ not found. Try search_companies() with the company name.'
Pagination behavior not documented in tool descriptions. list_filiais and search_companies accept page/per_page but descriptions do not explain what happens at the last page, whether total_count is returned, or how to detect end-of-results.