loading…
Search for a command to run...
loading…
MCP server for querying Brazilian CNPJ company data, including partner graphs, address/contact joins, CNAE statistics, and national/annual overviews.
MCP server for querying Brazilian CNPJ company data, including partner graphs, address/contact joins, CNAE statistics, and national/annual overviews.
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
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
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:
| 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 |
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:
...
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.
MIT.
Add this to claude_desktop_config.json and restart Claude Desktop.
{
"mcpServers": {
"cnpjaberto": {
"command": "npx",
"args": []
}
}
}