cnpjaberto
Officialcnpjaberto
SDK Python e servidor Model Context Protocol (MCP) para o CNPJ Aberto. A versão 0.2.0 oferece 44 ferramentas: consulta cadastral, busca avançada, prospecção, vínculos societários, recursos PRO, compliance, panoramas publicados e catálogos B3/CVM.
Python 3.10+. O SDK é síncrono; o servidor MCP executa as consultas em workers para não bloquear o protocolo.
pip install cnpjaberto
pip install 'cnpjaberto[mcp]'
export CNPJABERTO_API_KEY=sua_chave_aquiCrie sua chave na conta do CNPJ Aberto. Todas as consultas de integração usam X-API-Key e consomem a cota da conta. O servidor determina acesso, cotas e vigência do plano; o SDK não fixa valores de cota nem presume que uma chave tenha PRO.
SDK
from cnpjaberto import Client
with Client() as cnpj:
empresa = cnpj.lookup("18.236.120/0001-58")
print(empresa["razao_social"])
# Com API key, contém apenas o estabelecimento solicitado.
print(empresa["estabelecimentos"])
filiais = cnpj.filiais("18236120000158", uf="SP", q="centro", per_page=200)
busca = cnpj.search("nubank", per_page=5)
cidades = cnpj.search_municipalities("São Paulo", uf="SP")
empresas = cnpj.advanced_search(
uf="SP", municipio_codigo="7107", cnae="6201501", mei=False,
)
panorama = cnpj.panorama_year(2025, sem_mei=True)PRO usa a mesma chave da conta, sem um modo especial:
from cnpjaberto import Client, ProRequiredError
with Client() as cnpj:
try:
dossie = cnpj.compliance_dossier("18236120000158")
grupo = cnpj.business_group("18236120000158")
cruzamento = cnpj.common_owners(["18236120", "00000000"])
leads = cnpj.leads("SP", "7107", com_email=True)
except ProRequiredError as error:
print(error.payload) # detalhe do backend, incluindo upgrade_url quando presenteOs nomes dos parâmetros novos acompanham a API (nome, municipio_codigo, sem_mei, etc.). Os parâmetros legados continuam disponíveis, como companies_by_owner(name=...) e search(q=...). Métodos retornam o JSON original, incluindo indicadores de prévia/bloqueio. search_cnaes, search_municipalities e municipalities retornam listas; panorama_csv retorna texto CSV.
Client(api_key=..., base_url=..., timeout=30) permite configuração explícita. Um httpx.Client injetado com client=... pertence ao chamador e não será fechado pelo SDK; o transporte mantém sua configuração de timeout. O SDK aplica sua base URL e chave mesmo ao transporte injetado. Clientes criados pelo SDK são fechados no with ou em close().
Related MCP server: brdata-mcp
Servidor MCP
{
"mcpServers": {
"cnpjaberto": {
"command": "cnpjaberto-mcp",
"env": { "CNPJABERTO_API_KEY": "sua_chave_aqui" }
}
}
}Use o caminho absoluto do executável se o aplicativo não o encontrar no PATH. Também é possível executar python -m cnpjaberto.mcp. O transporte é stdio; stdout fica reservado ao JSON-RPC. CNPJABERTO_BASE_URL substitui a URL padrão no servidor MCP. Credenciais são configuração do processo, nunca argumentos das ferramentas.
O recurso cnpjaberto://guide descreve autenticação, planos, cotas e interpretação dos dados. Todas as ferramentas consultam dados, inclusive o POST de resumos em lote, e têm anotações MCP de leitura. Cada chamada pode consumir cota. Não há repetição automática de chamadas HTTP. O cliente compartilhado é fechado no encerramento, inclusive quando a sessão é cancelada.
O extra MCP mantém a linha compatível mcp>=1.28,<2, conforme a orientação oficial para v1. O SDK HTTP continua utilizável sem esse extra.
Ferramentas e métodos
Os nomes MCP coincidem com os métodos do SDK, exceto lookup_cnpj → lookup, list_filiais → filiais e search_companies(query=...) → search(q=...).
Ferramenta | Contrato |
| Consulta CNPJ completo (14 caracteres, numérico ou alfanumérico). Com API key, estabelecimentos contém apenas o estabelecimento solicitado. Use filiais para paginar os demais. Sócios e demais campos são preservados. |
| Filiais por CNPJ completo; filtro UF e busca textual q. Página/tamanho: 1–200. |
| Empresas onde a pessoa aparece como sócia. |
| PRO: empresas registradas no mesmo endereço (CEP, logradouro, número). |
| PRO: empresas que compartilham um contato. Informe |
| Estatísticas agregadas de um CNAE (contagem, top UFs, etc.). |
| Panorama nacional: totais, top UFs, top CNAEs, faixas de capital. |
| Recorte anual: aberturas, fechamentos, série mensal, top CNAEs e UFs. |
| Resumo das empresas de um sócio; CPF parcial ajuda a desambiguar homônimos. |
| Resumo em lote de até 10.000 sócios (nome e cpf opcional). A ordem dos resultados corresponde à ordem de items. Consulta sem escrita. |
| PRO: empresas que têm este CNPJ como sócio pessoa jurídica. |
| Catálogo CNAE; secao opcional A–U. Sem seção, retorna todo o catálogo. |
| PRO: árvore de controle societário da empresa. |
| PRO: cruza sócios de 2 ou mais raízes distintas. modo: intersecao ou sobreposicao; min_empresas: 2–50. |
| Busca por filtros combinados. Informe pelo menos um filtro seletivo. UF aceita até 5 estados separados por vírgula; CNAE, situação e porte também aceitam vírgulas. Contato/endereço exato e filtros com_email/com_telefone exigem PRO. Prefira municipio_codigo e municipio_uf ao nome parcial. |
| Até 8 concorrentes da empresa; o backend não aceita parâmetro limit. |
| Raio-X da pessoa por nome e CPF parcial. Free retorna prévia; PRO retorna análise completa. Preserve os indicadores de bloqueio da resposta. |
| Busca sócios por nome ou CPF/CNPJ. Exige nome ou documento; refine nomes amplos com sobrenome ou cidade. faixa_etaria aceita códigos 1–9 separados por vírgula. |
| Sugestões de sócios e MEI/EI por nome (mínimo 3 caracteres). |
| Prospecção por UF e município obrigatórios. Resolva municipio_codigo com search_municipalities. Free mascara contatos (contact_gated); PRO libera contato. Não trate valores mascarados como contatos reais. Datas de abertura em YYYY-MM-DD. |
| Busca código ou descrição CNAE; retorna lista de código e descrição. |
| Busca nome de município, opcionalmente por UF. Retorna códigos para leads e advanced_search. |
| Municípios de uma UF com códigos e descrições; retorna lista. |
| PRO: empresas do município (código), com busca por nome, logradouro e bairro. |
| Catálogo de serviços com slugs para search_services. |
| Empresas por slug de serviço, UF e código de município. sem_mei exclui MEIs. |
| PRO: mapa do grupo empresarial por vínculos societários. Mapas amplos podem retornar 503. |
| Indicadores cadastrais de atenção da empresa. São sinais para análise, não prova de irregularidade. |
| Rede societária por nome ou CPF. Use cpf parcial para reduzir homônimos; refine buscas amplas. |
| Resumo de sanções diretas e dívida ativa da própria pessoa jurídica; sem PEP de sócios. |
| PRO: dossiê de sanções públicas, PEP dos sócios e indicadores de atenção. |
| Dívida ativa PGFN. encontrado=false é resultado válido, não erro 404. |
| Catálogo de períodos e edições publicados; use antes de solicitar relatórios. |
| Relatório publicado por período, UF (BR por padrão), recorte, tema e edição. Consulte panorama_catalog para valores disponíveis. |
| CSV do relatório publicado; retorna texto, não JSON. tabela padrão cnaes. Consulte panorama_catalog para períodos e recortes disponíveis. |
| Revisões publicadas de um período do panorama. |
| Painel de CNPJs alfanuméricos: totais e série mensal do ano solicitado. |
| Catálogo B3; tipo opcional ACAO, FII, BDR, UNT ou ETF. |
| Detalhe de ticker B3, incluindo fundo para FII e tickers relacionados. |
| Catálogo CVM: FII, FIF, FIDC, FIP, FIAGRO ou FIIM. situacao=all inclui fundos inativos. |
| Detalhe de fundo CVM por CNPJ numérico completo. |
| Outros fundos ativos auditados pela mesma firma, ordenados por patrimônio. |
| Fundos similares por categoria e patrimônio líquido. |
| Busca por razão social, fantasia ou dígitos do CNPJ. |
Planos e limites de integração
PRO: endereço/contato compartilhado, participações, grupo empresarial, árvore de controle, sócios em comum, empresas por cidade e dossiê de compliance. O backend também reconhece planos Starter ativos conforme suas regras de vigência.
Busca avançada: filtros usuais disponíveis no Free; presença ou valor de e-mail/telefone e endereço exato exigem PRO.
Leads: UF e código de município são obrigatórios. Free recebe contatos mascarados e
contact_gated; PRO recebe contatos disponíveis na base. Não use os valores mascarados como dados reais.Raio-X: Free recebe prévia; PRO recebe a análise completa. O SDK preserva a resposta e seus indicadores de bloqueio.
Limites: busca textual exige 4 caracteres, páginas 1–50 e até 20 resultados. Filiais aceitam páginas/tamanho até 200 e busca
q. Busca avançada/leads aceitam até 50 páginas de 50 resultados. Busca de sócios: 25 páginas de 50. Empresas por cidade: 200 páginas de 100. Resumos em lote: até 10.000 itens, com resultados na mesma ordem.Sessão web:
/api/exportse/api/auth/api-key/*ainda exigem autenticação de sessão, e não funcionam só comX-API-Key. Não são expostos como ferramentas de integração. Exportações privadas, rotação de chave, cobrança, administração e chat interno não fazem parte deste SDK.panorama_csvé a exportação de uma publicação pública e está disponível.
Erros
from cnpjaberto import Client, AuthError, ProRequiredError, RateLimitError
with Client() as cnpj:
try:
cnpj.companies_by_contact(email="contato@example.com")
except ProRequiredError as error: # 403; subclasse de AuthError
print("Acesso negado:", error.payload)
except AuthError as error: # 401
print("Verifique a chave:", error.payload)
except RateLimitError as error: # 429: throttle ou cota diária/mensal
print("Aguarde:", error.retry_after, error.payload)CnpjAbertoError é a base; NotFoundError representa 404 e QuotaExceededError representa 402. Todos preservam status_code, payload, headers e retry_after quando disponíveis. Outros erros HTTP, JSON inválido e falhas de transporte usam a classe base. Redirecionamentos não são seguidos. Validações locais lançam ValueError; validações adicionais do backend preservam o erro 400/422. O MCP reporta falhas como erros de ferramenta, com detalhes da API e Retry-After quando presente, em vez de resultados vazios.
Migração da versão 0.1
Os nove nomes MCP originais foram preservados. Mudanças de contrato necessárias:
CNPJ completo tem 14 caracteres, aceita letras ASCII em maiúsculas/minúsculas nas primeiras 12 posições e mantém os dois verificadores numéricos. Máscaras são removidas sem descartar letras. Lookup e filiais não aceitam os prefixos de 8/12 caracteres anunciados pela versão antiga. A validação do dígito verificador fica com a API.
lookupcom chave retorna apenas o estabelecimento solicitado. Consultefiliaispara os demais.Busca textual passou de 3 para 4 caracteres.
Joins por endereço e contato exigem PRO na integração.
companies_by_contactagora também expõeexcludeno MCP.filiaisganhouq; panoramas nacional/anual ganharamsem_mei.close()não fecha um transporte HTTP fornecido pelo chamador.
Desenvolvimento e validação
python -m venv .venv
.venv/bin/python -m pip install -e '.[mcp,dev]' hatchling
.venv/bin/ruff check src tests examples
.venv/bin/ruff format --check src tests examples
.venv/bin/pytest
.venv/bin/python -m build --no-isolationContratos revisados contra o backend do repositório cnpj, commit 50b17005c81d4c81f2faebd8f322dc5e93d66405 (2026-10-04), incluindo rotas, serviços de autenticação e gates de plano. Testes usam transporte HTTP simulado e sessões MCP reais em memória/stdio; não requerem conta e não consomem cota. Cobrem todas as ferramentas, serialização, erros, planos, schemas e encerramento. Não substituem uma consulta autenticada de ponta a ponta ao ambiente de produção.
Fontes de dados
Cadastro empresarial da Receita Federal, complementado pelos conjuntos disponibilizados pelo backend para compliance, dívida ativa, B3/CVM e publicações do panorama. Consulte os metadados da resposta para cobertura e atualização; indicadores não constituem prova de irregularidade.
Licença
MIT.
This server cannot be deployed
Maintenance
Related MCP Connectors
Official remote MCP server for Brazilian company data (CNPJ): lookup, filtered search, contacts and partners with masked CPF. 70M CNPJs, base of Aug 2026; updated monthly, with the base date in every response. https://cnpj.ia.br/?utm_source=glama&utm_medium=listing
CNPJ Brazil MCP — Brazilian company-registry (Receita Federal) lookup via
MCP server for Brazilian Federal Senate open data (legislative, administrative, e-Cidadania).
Brazilian company and person data by CNPJ/CPF: registry, partners, tax status, sanctions, lawsuits.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server for querying data on 27 million Brazilian companies from the Federal Revenue, enabling searches by CNPJ, company name, location, and industry. It supports advanced features like partner discovery, sector benchmarking, and similarity analysis.1617 npmMIT
- AlicenseAqualityCmaintenanceAn MCP server for Brazilian company and public procurement data, enabling CNPJ lookup, company search, tender resolution, and more via paid USDC-based API calls.1544 npmMIT
- FlicenseNot gradedqualityBmaintenanceMCP server that provides access to Brazilian public and commercial data, including CNPJ company info, government procurement (PNCP) searches, and FIPE vehicle pricing, with optional alert registration for new tenders.-
- AlicenseNot gradedqualityCmaintenanceMCP server that issues joint federal debt certificates for Brazilian companies from CNPJ. Read-only, hosted, pay-per-use, works with any MCP client.MIT