Skip to main content
Glama
radar-cnpj-mcp

radar-cnpj-mcp

by wendersoon

Exportar CSV

exportar_csv
Idempotent

Export Brazilian companies matching your CNPJ filters to an Excel-ready semicolon-separated CSV in /root/radar-cnpj-mcp and return the saved file path.

Instructions

Grava as empresas que atendem aos filtros num arquivo CSV (separado por ";", pronto para Excel) na pasta /root/radar-cnpj-mcp e retorna o caminho.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "exportar_csv"
  }
}

Input Schema

NameRequiredDescriptionDefault
meiNoComo tratar Microempreendedores Individuais (MEI).incluir
ufsNoSiglas das UFs, ex.: ["SP", "MG"].
cepsNoPrefixos de CEP, apenas dígitos, ex.: ["13010", "130"].
cnaesNoCódigos CNAE. Com 7 dígitos busca a subclasse exata; com menos dígitos busca por prefixo (ex.: "4520" = toda a classe). Use buscar_cnae para descobrir os códigos.
portesNoPorte declarado à Receita.
arquivoNoNome do arquivo. Padrão: empresas-<data-hora>.csv
bairrosNoTrechos do nome do bairro (busca parcial).
situacaoNoSituação cadastral. Padrão: ativa.ativa
com_emailNoSomente empresas com e-mail cadastrado.
municipiosNoNomes dos municípios, sem diferenciar maiúsculas e acentos. Combine com ufs para evitar homônimos.
aberta_aposNoData de abertura a partir de (AAAA-MM-DD).
capital_maxNoCapital social máximo em reais.
capital_minNoCapital social mínimo em reais.
ordenar_porNomais_recentes
aberta_antesNoData de abertura até (AAAA-MM-DD).
com_telefoneNoSomente empresas com telefone cadastrado.
maximo_linhasNo
somente_matrizNoIgnorar filiais.
ocultar_contatos_meiNoOcultar telefone e e-mail de MEIs, que costumam ser os da própria pessoa física. Use ao compartilhar os resultados.
incluir_cnae_secundarioNoTambém considerar empresas que têm o CNAE como atividade secundária.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=false and idempotentHint=true declared, the safety profile is already partly covered; the description still adds real value by naming the write target directory, the CSV dialect, and the returned path. It does not disclose what happens if a file with the same 'arquivo' name already exists, nor whether the file persists or is downloadable, which is the main behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with three useful clauses: what is written, where and in what format, and what is returned. No filler, though the delimiter/Excel remark is close to implementation detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 20-parameter file-writing tool with no output schema, the description usefully names the return value (the path). It leaves open whether the written file is accessible to the caller, overwrite/append behavior, and any time or size expectations for large exports, which matters given the 200k row maximum.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 90% across 20 parameters, so the schema already carries the burden and baseline 3 applies. The description only refers generically to 'os filtros' and adds no meaning beyond the schema, such as how filtros interact or how maximo_linhas affects the export.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and artifact: it writes the companies matching the filters to a CSV file in /root/radar-cnpj-mcp and returns the path. The concrete delimiter (';', Excel-ready) and output location make the tool unmistakable. It never contrasts itself with buscar_empresas, which presumably returns the same filtered set inline, so sibling differentiation is left to the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not statement. The phrase 'as empresas que atendem aos filtros' implies the same filter semantics as the search siblings, but nothing says to prefer this over buscar_empresas when a file is wanted, nor when an export is inappropriate (e.g. small result sets or the 200k row ceiling).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.