apipj · API de CNPJ
Server Details
CNPJ API: Brazilian company records (Receita Federal open data). Google sign-in or API key
- Status
- Healthy
- Uptime
- 100.0% over 19 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
buscar_cnpjs and consultar_cnpj both return CNPJ data and could be confused at a glance, but the descriptions clearly separate bulk listing by CNAE/municipality with cursor pagination from a single-record lookup with full registry data. validar_cnpj (offline format check) and status_base (service/base metadata) are clearly distinct from the query tools.
All names are snake_case with predictable Portuguese verb_noun patterns (buscar_cnpjs, consultar_cnpj, validar_cnpj), and singular/plural correctly reflects whether the tool works on one or many records. status_base is a noun phrase without a verb, a minor but harmless deviation.
Four tools is on the lean side but each maps to a distinct capability (bulk search, single lookup, offline validation, base status) with no filler. For a narrow CNPJ-data API this is a reasonable, well-scoped surface.
The core lifecycle is covered: validation, single-record lookup including partners, filtered listing with pagination, and base freshness metadata. Minor gaps exist, such as lookup/search by razão social (name) or by partner CPF, which would be natural additions for this domain.
Available Tools
4 toolsbuscar_cnpjsBuscar CNPJs por atividade e municípioARead-onlyInspect
Lista estabelecimentos ativos da base da Receita Federal pela atividade econômica principal (CNAE, 7 dígitos) e/ou pelo município (código da Receita com 4 dígitos ou do IBGE com 7); pelo menos um dos dois filtros. Devolve {dataset_month, total, resultados, proximo_cursor}: cada resultado tem os dados cadastrais da consulta individual, sem o quadro de sócios. A página tem no máximo o limite por minuto do plano (ou o argumento limite, até esse valor) e cada CNPJ devolvido consome 1 da cota mensal e 1 do limite por minuto; a próxima página vem com cursor = proximo_cursor (null no fim). Exige a conta apipj, como consultar_cnpj.
| Name | Required | Description | Default |
|---|---|---|---|
| cnae | No | CNAE da atividade principal, 7 dígitos, com ou sem pontuação (ex.: 4781400 ou 47.81-4-00) | |
| cursor | No | proximo_cursor da página anterior, com os mesmos filtros | |
| limite | No | Tamanho máximo da página, de 1 até o limite por minuto do plano (padrão: esse limite) | |
| formato | No | completo (padrão) ou simplificado, como em consultar_cnpj (sem sócios) | completo |
| municipio | No | Código do município da Receita (4 dígitos, ex.: 7107 = São Paulo) ou do IBGE (7 dígitos, ex.: 3550308) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, non-destructive), yet the description goes well beyond them: it discloses quota consumption per CNPJ (1 cota mensal + 1 do limite por minuto), that page size is capped by the plan's per-minute limit, that cursor = proximo_cursor with null at the end, and that the apipj account is required. These are exactly the operational facts an agent needs before calling a metered endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and filter constraint, then the return shape, then cost/pagination, then auth. Dense and mostly waste-free, though the middle sentence packs return shape and quota accounting together, making it heavier than necessary to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return contract itself ({dataset_month, total, resultados, proximo_cursor}) and explains pagination termination and metering. Combined with annotation-covered safety and fully documented params, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds the cross-parameter constraint that at least one of cnae/municipio must be supplied (the schema marks neither required) and ties 'limite' to the plan's per-minute ceiling. It adds real semantics but leaves formato's behavior to the schema/sibling reference.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lista estabelecimentos ativos da base da Receita Federal') plus the exact filters (CNAE principal, município). The clause 'cada resultado tem os dados cadastrais da consulta individual, sem o quadro de sócios' implicitly separates it from the single-record sibling consultar_cnpj, so an agent can tell list-from-lookup without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly imposes the selection constraint 'pelo menos um dos dois filtros', which is the key precondition for calling this tool, and points to consultar_cnpj for the account requirement and formato semantics. It does not state when to prefer this over validar_cnpj or status_base, so it stops short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
consultar_cnpjConsultar CNPJARead-onlyInspect
Dados cadastrais públicos de um CNPJ na base da Receita Federal (lote mensal): razão social, nome fantasia, situação cadastral, endereço, telefones, e-mail, atividades CNAE, natureza jurídica, porte, capital social, Simples/MEI e sócios (CPF mascarado). Exige uma conta apipj: o cliente pede para conectar e entrar com o Google (OAuth) ou envia uma chave de API; cada consulta conta no limite por minuto e na cota mensal do plano da conta.
| Name | Required | Description | Default |
|---|---|---|---|
| cnpj | Yes | CNPJ com ou sem pontuação, numérico ou alfanumérico (ex.: 11.378.117/0001-20) | |
| formato | No | completo (padrão: objetos aninhados, datas ISO e códigos da Receita) ou simplificado (plano, com datas DD/MM/AAAA e CNPJ, CEP e telefone formatados) | completo |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the OAuth/API-key auth requirement, the per-minute rate limit and the monthly plan quota. It stops short of describing error or not-found behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences that front-load what is returned and then cover access constraints. The field enumeration is long but each item earns its place by telling the agent what data is obtainable without an output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only lookup with no output schema, the description compensates by listing the returned data fields in detail, plus auth and rate-limit constraints. Nothing essential to invoking the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both the cnpj format (with punctuation/alphanumeric) and the formato enum are fully documented in the schema. The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource (consultar dados cadastrais de um CNPJ) and enumerates the returned fields (razão social, CNAE, sócios, etc.), making the purpose unmistakable. However, it never differentiates itself from siblings like validar_cnpj, so an agent still has to infer which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent must infer that this tool is for retrieving full registration data. The description does explain the account prerequisite (apipj with OAuth/API key) but never says when to use this versus validar_cnpj or status_base.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
status_baseStatus da baseARead-onlyInspect
Status do serviço e da base de CNPJ: mês do lote da Receita Federal carregado, data de geração e quantidade de CNPJs. Sem chave e sem consumo de cota.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds non-redundant behavioral context the annotations do not carry: no API key required and no quota consumption, which is exactly the kind of operational detail an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the purpose and then appends the returned fields and the no-key/no-quota note. No filler, though the commas make it slightly dense rather than optimally readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by naming what is returned (loaded batch month, generation date, CNPJ quantity), and it covers the auth/quota caveat. Nothing an agent needs to call this status tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline rule this scores 4. There is nothing for the description to clarify beyond confirming it is a parameterless call, which the empty schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (status of the service and the CNPJ base) and even enumerates the returned fields (batch month, generation date, CNPJ count). It is clearly distinguishable from the sibling lookup/validation tools by function, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'Sem chave e sem consumo de cota' tells the agent it can call this freely without a key or quota, which is a useful selection signal. However, it gives no explicit when-to-use vs the consultar_cnpj/validar_cnpj alternatives or any prerequisite conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
validar_cnpjValidar CNPJARead-onlyInspect
Confere formato e dígitos verificadores de um CNPJ (numérico ou alfanumérico) sem consultar a base. Devolve cnpj, valido, formatado, alfanumerico e erro. Sem chave e sem consumo de cota.
| Name | Required | Description | Default |
|---|---|---|---|
| cnpj | Yes | CNPJ com ou sem pontuação, numérico ou alfanumérico (ex.: 11.378.117/0001-20) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered; the description adds genuinely new traits: no database access, no key required, no quota consumption. It also enumerates the response fields (cnpj, valido, formatado, alfanumerico, erro), which compensates for the missing output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, zero padding: purpose and local-only scope first, then return shape, then cost/credential implications. Every clause carries information an agent can act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only validation tool with no output schema, the description covers the essential surface: what is checked, that no backend is consulted, what fields come back, and the absence of quota/key requirements. Nothing needed to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description's note that the input may be numeric or alphanumeric, with or without punctuation, merely restates what the schema's cnpj description already states. No syntax, normalization or edge-case guidance is added beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it checks the format and check digits of a CNPJ locally, without querying the database. This directly separates it from the sibling consultar_cnpj, which presumably performs a registry lookup, so an agent can route between them from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Sem consultar a base" plus "Sem chave e sem consumo de cota" gives a clear operational context (offline check, no credential or quota cost), which implies when to prefer this over a lookup tool. It stops short of naming consultar_cnpj as the alternative for registry data, so it is clear context without explicit alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Added
buscar_cnpjs
1 tool update
- Removed
buscar_cnpjs
4 tool updates
- First observed
buscar_cnpjs - First observed
consultar_cnpj - First observed
status_base - First observed
validar_cnpj
Publisher details
- Operator
- MASTER BI TECNOLOGIA (apipj) · Publisher source
- Operator website
- https://apipj.com.br · Publisher source
- Vendor relationship
- First-party
- Documentation
- https://apipj.com.br/guias/consultar-cnpj-ia-mcp
- Trust center
- Not available
- Restrictions
- A free apipj account is required for company lookups (sign in with Google or e-mail). CNPJ validation and data status work without an account. · Publisher source
Related MCP Connectors
CNPJ Brazil MCP — Brazilian company-registry (Receita Federal) lookup via minhareceita.org, an…
Free lookup of 28.4M active Brazilian companies by CNPJ or name (Receita Federal open data).
Free Brazilian CNPJ lookup (legal name, status, partners) + lawsuit discovery. Public data, no login
Brazil CNPJ, CEP, Selic/IPCA/PTAX, holidays, banks/ISPB for agents. Pay per call in USDC (x402).
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceEnables lookup and validation of Brazilian companies by CNPJ, returning registration status, address, CNAE activities, Simples Nacional/MEI status, and partners from monthly Receita Federal open data, plus validation of numeric or alphanumeric CNPJ check digits and search of active companies by activity and municipality.MIT- AlicenseNot gradedqualityCmaintenanceProvides a single read-only tool to fetch extended Brazilian company registration data from a CNPJ number, including basic details. Works over HTTP MCP with any client.MIT
- AlicenseNot gradedqualityCmaintenanceProvides Brazilian company basic registration data (legal name, status, legal nature) from CNPJ through a single read-only MCP tool, hosted with pay-per-use credits.MIT
- AlicenseNot gradedqualityBmaintenanceBrazilian company-registry lookup via Receita Federal, allowing AI agents to query CNPJ data.420 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.