SDK em Python e servidor MCP para o cnpjaberto.com.br, cadastro aberto de empresas brasileiras (CNPJ).
Project description
cnpjaberto
SDK em Python e servidor Model Context Protocol (MCP) para o cnpjaberto.com.br, o cadastro aberto de empresas brasileiras (CNPJ). Permite consulta de empresa, grafo de sócios, joins por endereço e contato, estatísticas por CNAE, e panoramas nacional e anual.
pip install cnpjaberto # apenas SDK
pip install cnpjaberto[mcp] # SDK + servidor MCP para Claude Desktop e similares
Início rápido com o SDK
from cnpjaberto import Client
with Client() as cnpj: # lê CNPJABERTO_API_KEY do ambiente
empresa = cnpj.lookup("18.236.120/0001-58")
print(empresa["razao_social"])
achados = cnpj.search("nubank", per_page=5)
for h in achados["results"]:
print(h["cnpj"], h["razao_social"])
snap = cnpj.panorama_year(2024)
print(f"{snap['abertas']:,} abertas, {snap['fechadas']:,} fechadas em 2024")
A chave de API é obrigatória. Crie uma conta gratuita em cnpjaberto.com.br/planos, copie sua chave e exporte:
export CNPJABERTO_API_KEY=sua_chave_aqui
Servidor MCP (Claude Desktop, Cursor, Cline)
Instale o extra e adicione esta config no seu cliente.
pip install cnpjaberto[mcp]
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"cnpjaberto": {
"command": "cnpjaberto-mcp",
"env": { "CNPJABERTO_API_KEY": "sua_chave_aqui" }
}
}
}
Reinicie o Claude Desktop. Agora dá para perguntar coisas como:
- "Consulta o CNPJ 18.236.120/0001-58 e me diz quando foi fundado."
- "Quantas empresas brasileiras abriram em 2024 vs 2023? Quais estados mais cresceram?"
- "Acha empresas onde 'Maria Silva' aparece como sócia, agrupando por estado."
- "Que outras empresas estão registradas no mesmo endereço da matriz da Magazine Luiza?"
Tools expostas
| Tool | O que retorna |
|---|---|
lookup_cnpj(cnpj) |
Registro completo: razão social, capital, sócios, com estabelecimentos[] (matriz e filiais, endereço, telefones, CNAEs) |
list_filiais(cnpj) |
Filiais de uma matriz, paginado, filtro opcional por UF |
search_companies(query) |
Busca por razão social, fantasia ou dígitos do CNPJ (mínimo 3 chars) |
companies_by_owner(name) |
Empresas onde a pessoa aparece como sócia; cpf ajuda a desambiguar homônimos |
companies_at_same_address(cep, logradouro, numero) |
Outras empresas registradas no mesmo endereço |
companies_by_contact(email | ddd+telefone) |
Empresas que compartilham o mesmo email ou telefone |
cnae_stats(codigo) |
Estatísticas agregadas de um CNAE (contagem, top UFs, top municípios) |
panorama_overview() |
Estatísticas nacionais: top UFs e CNAEs, faixas de capital, idade, histórico de 10 anos |
panorama_year(year) |
Recorte anual: aberturas e fechamentos, série mensal, fatia MEI |
Erros tipados
from cnpjaberto import Client, NotFoundError, RateLimitError, AuthError
with Client() as cnpj:
try:
cnpj.lookup("00000000000000")
except NotFoundError:
...
except RateLimitError as e:
print("Cota diária:", e.payload)
except AuthError:
...
Fonte de dados
Todos os dados vêm do dump público de CNPJ da Receita Federal, atualizado mensalmente. O cnpjaberto.com.br ingere, indexa e serve com lookups sub-segundo, mais joins de valor agregado (grafo de sócios, endereços compartilhados, agregados por CNAE) sobre cerca de 70 milhões de estabelecimentos e 67 milhões de empresas.
Licença
MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cnpjaberto-0.1.1.tar.gz.
File metadata
- Download URL: cnpjaberto-0.1.1.tar.gz
- Upload date:
- Size: 9.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65fbb3a743fdb92ec24859396cae9d75bcbebf9cedbe3bc16ba9f93fdeba61b0
|
|
| MD5 |
3c099e45f10702919ec955bcb4d0dfbd
|
|
| BLAKE2b-256 |
93ceea340288d048cd5acf1f2904127c26d9be896c2126e74938b375dafef617
|
Provenance
The following attestation bundles were made for cnpjaberto-0.1.1.tar.gz:
Publisher:
publish.yml on cnpjaberto/cnpjaberto-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cnpjaberto-0.1.1.tar.gz -
Subject digest:
65fbb3a743fdb92ec24859396cae9d75bcbebf9cedbe3bc16ba9f93fdeba61b0 - Sigstore transparency entry: 1398934610
- Sigstore integration time:
-
Permalink:
cnpjaberto/cnpjaberto-py@61b7ea5daa862755cc68db54de78355747aa01b6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/cnpjaberto
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@61b7ea5daa862755cc68db54de78355747aa01b6 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file cnpjaberto-0.1.1-py3-none-any.whl.
File metadata
- Download URL: cnpjaberto-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99e22909ef004dce5e9d8d4760d25d6257f897f0fa7e1453cef8a0dc5d88e6c0
|
|
| MD5 |
a46f508b4b5e3df6299cee88ed29c4f6
|
|
| BLAKE2b-256 |
0db6b5d34540c31985329956ac245622a313e091a7871d3c9d0de6632921e2e8
|
Provenance
The following attestation bundles were made for cnpjaberto-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on cnpjaberto/cnpjaberto-py
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cnpjaberto-0.1.1-py3-none-any.whl -
Subject digest:
99e22909ef004dce5e9d8d4760d25d6257f897f0fa7e1453cef8a0dc5d88e6c0 - Sigstore transparency entry: 1398934625
- Sigstore integration time:
-
Permalink:
cnpjaberto/cnpjaberto-py@61b7ea5daa862755cc68db54de78355747aa01b6 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/cnpjaberto
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@61b7ea5daa862755cc68db54de78355747aa01b6 -
Trigger Event:
workflow_dispatch
-
Statement type: