Conecte sua IA à base CNPJLeads
Servidor MCP oficial: Claude, Cursor, VS Code e outros assistentes consultam mais de 70 milhões de empresas brasileiras direto da conversa.
Visão geral
O Model Context Protocol (MCP) é o padrão aberto que permite a assistentes de IA usar ferramentas externas. O servidor MCP da CNPJLeads dá ao seu assistente acesso direto à nossa base de empresas da Receita Federal.
Em vez de montar filtros e exportar planilhas, você pede em português — "liste clínicas odontológicas ativas em São José/SC com telefone" — e a IA escolhe os códigos CNAE, encontra o município, consulta a base e organiza o resultado.
Mesma base do site
Dados cadastrais, endereço, telefones, e-mail, CNAE, porte, regime tributário e sócios.
Custo transparente
Cada resposta informa os créditos usados. Ferramentas de consulta de códigos são gratuitas.
Somente leitura
As ferramentas apenas consultam dados: nada é alterado na sua conta além do consumo de créditos.
- URL do servidor:
https://cnpjleads.com/api/mcp- Transporte:
- Streamable HTTP (POST, JSON)
- Autenticação:
Authorization: Bearer SEU_TOKEN- Versões do protocolo:
- 2025-06-18, 2025-03-26, 2024-11-05
Quem pode usar
O MCP é exclusivo para clientes com plano ativo. Sua conta tem acesso quando possui:
- uma assinatura ativa dentro do período vigente (com 3 dias de tolerância após o vencimento); ou
- a compra de um plano/pacote paga nos últimos 30 dias.
Créditos de bônus, indicação ou do plano gratuito não liberam o MCP sozinhos. O acesso é liberado assim que o pagamento é confirmado e suspenso automaticamente quando o plano deixa de estar ativo.
Início rápido
-
1
Gere seu token de API
No seu perfil, clique em "Gerar token de API". É o mesmo token da API REST. Abrir meu perfil
-
2
Adicione o servidor ao seu cliente
Copie a configuração do seu aplicativo abaixo e troque SEU_TOKEN pelo token gerado.
-
3
Converse
Reinicie o aplicativo e peça, por exemplo: "Quantos créditos eu tenho na CNPJLeads?". Se ele responder, está conectado.
Configurar seu cliente
Em todos os exemplos, substitua SEU_TOKEN pelo seu token de API.
Claude Code
claude mcp add --transport http cnpjleads https://cnpjleads.com/api/mcp \
--header "Authorization: Bearer SEU_TOKEN"Rode no terminal. Use --scope user para disponibilizar em todos os projetos. Confira com "claude mcp list".
Claude Desktop
Em Configurações → Desenvolvedor → Editar configuração, abra o claude_desktop_config.json e adicione:
{
"mcpServers": {
"cnpjleads": {
"command": "npx",
"args": [
"-y", "mcp-remote", "https://cnpjleads.com/api/mcp",
"--header", "Authorization: Bearer SEU_TOKEN"
]
}
}
}Requer Node.js 18+ instalado (o mcp-remote faz a ponte para servidores HTTP com cabeçalho de autenticação).
Cursor
Em Settings → MCP → Add new global MCP server (arquivo ~/.cursor/mcp.json) ou em .cursor/mcp.json no projeto:
{
"mcpServers": {
"cnpjleads": {
"url": "https://cnpjleads.com/api/mcp",
"headers": { "Authorization": "Bearer SEU_TOKEN" }
}
}
}VS Code (GitHub Copilot)
Crie .vscode/mcp.json no projeto. O VS Code pedirá o token na primeira execução e o guardará de forma segura:
{
"inputs": [
{ "id": "cnpjleads-token", "type": "promptString", "description": "CNPJLeads API token", "password": true }
],
"servers": {
"cnpjleads": {
"type": "http",
"url": "https://cnpjleads.com/api/mcp",
"headers": { "Authorization": "Bearer ${input:cnpjleads-token}" }
}
}
}Windsurf
Em Settings → Cascade → MCP servers → View raw config (~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": {
"cnpjleads": {
"serverUrl": "https://cnpjleads.com/api/mcp",
"headers": { "Authorization": "Bearer SEU_TOKEN" }
}
}
}Outros clientes
Qualquer cliente compatível com MCP via Streamable HTTP funciona: informe a URL do servidor e o cabeçalho Authorization: Bearer SEU_TOKEN. Se o cliente só suporta stdio, use a ponte "npx mcp-remote" como no exemplo do Claude Desktop.
Testar com curl
Útil para validar o token e o plano antes de configurar o aplicativo (não consome créditos):
curl -s -X POST https://cnpjleads.com/api/mcp \
-H "Authorization: Bearer SEU_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_account","arguments":{}}}'Ferramentas
A IA decide sozinha quais ferramentas chamar. Esta é a referência completa, gerada a partir do próprio servidor.
search_companies
1 crédito por empresa
Busca empresas com filtros combináveis (CNAE, UF, município, bairro, CEP, porte, situação, regime, data de abertura, contato, funcionários e faturamento estimado). Paginada: 20 ou 50 por página. Exige pelo menos um filtro.
| Parâmetro | Tipo | Descrição |
|---|---|---|
business_sector |
string | Código CNAE fiscal (7 dígitos, ex.: 8630504 ou 8630-5/04). Obtenha com find_cnae. |
state |
string | UF com 2 letras, ex.: SP |
city_id |
string | Código do município (Receita). Obtenha com find_cities. |
neighborhood |
string | Bairro |
zip_code |
string | CEP (parcial ou completo) |
trading_name |
string | Trecho do nome fantasia |
company_size |
string (01 | 03 | 05) | Porte: 01=ME, 03=EPP, 05=Demais |
situacao_cadastral |
string (01 | 02 | 03 | 04 | 08) | 01=Nula, 02=Ativa, 03=Suspensa, 04=Inapta, 08=Baixada. Sem filtro = todas. |
nature_code |
string | Natureza jurídica (4 dígitos, ex.: 2062 = Sociedade Ltda) |
tax_regime |
string (mei | simples | normal) | Regime tributário |
opening_date_from |
string | Data de abertura inicial (AAAA-MM-DD) |
opening_date_to |
string | Data de abertura final (AAAA-MM-DD) |
has_phone |
boolean | Somente com telefone |
has_email |
boolean | Somente com e-mail |
min_employees_rais |
integer | Mínimo de funcionários (RAIS) |
max_employees_rais |
integer | Máximo de funcionários (RAIS) |
min_revenue_brl |
number | Faturamento estimado mínimo (R$) |
max_revenue_brl |
number | Faturamento estimado máximo (R$) |
page |
integer | — default 1 |
per_page |
integer (20 | 50) | Resultados por página (cada um custa 1 crédito) — default 20 |
get_company
1 crédito
Ficha completa de uma empresa pelo CNPJ (14 caracteres) ou CNPJ básico (8), incluindo sócios. Aceita com ou sem máscara.
| Parâmetro | Tipo | Descrição |
|---|---|---|
cnpj* |
string | CNPJ, ex.: 12.345.678/0001-90 |
get_companies_batch
1 crédito por CNPJ encontrado
Consulta até 100 CNPJs numa única chamada. CNPJs repetidos são cobrados uma vez só; não encontrados não são cobrados.
| Parâmetro | Tipo | Descrição |
|---|---|---|
cnpjs* |
array |
ai_search
1 busca com IA
Interpreta um pedido em linguagem natural e executa a busca correspondente. Consome 1 busca da cota mensal de IA do plano.
| Parâmetro | Tipo | Descrição |
|---|---|---|
query* |
string | |
page |
integer | — default 1 |
per_page |
integer | — default 20 |
find_cnae
Grátis
Encontra códigos CNAE por palavra-chave ("padaria") ou código parcial ("6201"), com o número de empresas em cada um.
| Parâmetro | Tipo | Descrição |
|---|---|---|
term* |
string | Ex.: "odontologia", "padaria", "6201" |
limit |
integer | — default 15 |
find_cities
Grátis
Encontra municípios pelo nome (com ou sem acento), opcionalmente filtrando por UF, e retorna o city_id para a busca.
| Parâmetro | Tipo | Descrição |
|---|---|---|
term* |
string | Nome do município, ex.: "São José" |
state |
string | UF opcional |
limit |
integer | — default 15 |
get_account
Grátis
Mostra saldo de créditos, buscas com IA restantes e o plano ativo.
Sem parâmetros.
* obrigatório. Porte: 01=ME, 03=EPP, 05=Demais. Situação cadastral: 01=Nula, 02=Ativa, 03=Suspensa, 04=Inapta, 08=Baixada. CNPJs alfanuméricos (2026) são aceitos.
Prompt pronto
O servidor também oferece o prompt prospect_leads (argumentos: segment e location), que conduz a IA por uma prospecção completa: encontra CNAE e cidade, confere o saldo e só então busca empresas ativas com telefone.
Exemplos de pedidos
Experimente pedir ao seu assistente:
- “Quais códigos CNAE correspondem a academias de ginástica? Quantas empresas há em cada um?”
- “Liste 20 clínicas odontológicas ativas em Campinas/SP com telefone, numa tabela com razão social, telefone e bairro.”
- “Traga a ficha completa do CNPJ 00.000.000/0001-91, incluindo os sócios.”
- “Verifique estes 30 CNPJs e me diga quais estão baixados ou inaptos.”
- “Quantos créditos eu ainda tenho? Quanto custaria buscar mais 3 páginas dessa lista?”
Créditos e limites
- O MCP usa os mesmos créditos da sua conta no site e na API REST, com as mesmas regras de cobrança.
- Toda resposta paga traz credits_used e credits_remaining, para a IA informar o gasto a você.
- Se o saldo acabar no meio de uma busca, o resultado é limitado ao que os créditos cobrem — nada é cobrado além do saldo.
- Limite de 60 requisições por minuto por conta. A busca com IA tem limite próprio por minuto.
- Dica: peça à IA para confirmar o custo antes de buscar várias páginas.
Erros
Erros de autenticação e de protocolo voltam como erro JSON-RPC; falhas de uma ferramenta (filtro inválido, saldo insuficiente) voltam como resultado com isError: true, para a IA explicar o problema na conversa.
| HTTP | Código | Significado |
|---|---|---|
| 401 | — | Token ausente, mal formatado ou inválido. Gere um novo no seu perfil. |
| 403 | -32003 | Conta sem plano ativo (error_code: active_plan_required). A resposta traz o link de planos. |
| 403 | -32600 | Requisição de navegador com Origin não autorizado. |
| 400 | -32700 | O corpo não é um JSON válido. |
| 400 | -32600 | Cabeçalho MCP-Protocol-Version não suportado. |
| 200 | -32601 | Método JSON-RPC inexistente. |
| 200 | -32602 | Ferramenta desconhecida ou parâmetros inválidos. |
| 200 | isError: true | A ferramenta rodou mas falhou (ex.: créditos insuficientes, nenhum filtro informado). A mensagem explica o motivo. |
| 429 | — | Muitas requisições. Aguarde alguns segundos. |
| 503 | -32000 | Servidor MCP temporariamente desativado para manutenção. |
Exemplo de resposta para uma conta sem plano ativo:
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32003,
"message": "MCP access requires an active CNPJLeads plan. Subscribe or buy a plan to enable it.",
"data": { "error_code": "active_plan_required", "upgrade_url": "https://cnpjleads.com/pt-br/preco" }
}
}Segurança
- O token dá acesso aos seus créditos. Não o compartilhe nem o publique em repositórios de código; prefira variáveis de ambiente ou o campo seguro do VS Code.
- O token não expira: trate-o como uma senha e guarde-o apenas em locais seguros.
- Todas as ferramentas são somente leitura e cada chamada é registrada para auditoria.
- Conexões só por HTTPS. Requisições de navegadores de sites não autorizados são bloqueadas.
Detalhes do protocolo
- Transporte Streamable HTTP, sem estado: cada POST em /api/mcp é independente e retorna application/json. Não é preciso guardar sessão.
- Versões suportadas: 2025-06-18, 2025-03-26, 2024-11-05. O servidor responde com a versão pedida pelo cliente quando suportada.
- Capacidades: tools, prompts e resources (lista vazia). GET e DELETE retornam 405 (não há stream iniciado pelo servidor).
- Resultados de ferramentas trazem content (texto JSON) e structuredContent (objeto), além das anotações readOnlyHint.
Fluxo típico:
→ {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"my-app","version":"1.0"}}}
← {"jsonrpc":"2.0","id":1,"result":{"protocolVersion":"2025-06-18","serverInfo":{"name":"cnpjleads",...},"capabilities":{"tools":{...}}}}
→ {"jsonrpc":"2.0","method":"notifications/initialized"} ← HTTP 202
→ {"jsonrpc":"2.0","id":2,"method":"tools/list"}
→ {"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"find_cnae","arguments":{"term":"padaria"}}}
← {"jsonrpc":"2.0","id":3,"result":{"content":[{"type":"text","text":"..."}],"structuredContent":{...},"isError":false}}Perguntas frequentes
Funciona no ChatGPT ou no claude.ai pelo navegador?
Os conectores web desses produtos exigem login via OAuth, que ainda não oferecemos. Hoje o MCP funciona em clientes que aceitam token por cabeçalho: Claude Code, Claude Desktop, Cursor, VS Code, Windsurf e similares.
Comprei um pacote avulso. Tenho acesso?
Sim. Compras de plano pagas liberam o MCP por 30 dias a partir do pagamento. Assinaturas mantêm o acesso enquanto estiverem ativas.
A IA pode gastar todos os meus créditos?
Cada busca custa no máximo o tamanho da página (20 ou 50 créditos), e o servidor orienta a IA a informar o custo e começar pequeno. Ainda assim, revise os pedidos que envolvem muitas páginas.
Os dados são os mesmos do site?
Sim: é a mesma base, atualizada a cada nova publicação da Receita Federal.
Posso exportar a planilha pelo MCP?
Não; o MCP retorna os dados na conversa. Para listas grandes em Excel/CSV, use a exportação do site.
O cliente diz que não conseguiu conectar. E agora?
Teste com o comando curl desta página. 401 = token inválido; 403 com active_plan_required = plano inativo; se o curl funciona, revise a configuração do cliente e reinicie o aplicativo.