Servidor MCP do cnpj.ia.br
Conecte Claude, Cursor, Windsurf ou um agente OpenAI à base de empresas do Brasil. Quatro ferramentas, a mesma chave da API, o mesmo custo em créditos e a chave sempre no cliente do agente.
O servidor MCP em https://mcp.cnpj.ia.br expõe a API como ferramentas para agentes: o agente consulta uma empresa, busca empresas por filtro, transforma uma descrição em filtros e consulta o uso, com a mesma chave e o mesmo custo em créditos da API REST. A chave fica guardada no cliente do agente e vai ao servidor só no header de cada chamada, para validação; o agente não compra créditos nem muda de plano.
Conectar
Transporte HTTP, autenticação pela chave da conta no header Authorization. Crie a chave em app.cnpj.ia.br e cole no cliente:
Claude Desktop
{
"mcpServers": {
"cnpjia": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.cnpj.ia.br",
"--header", "Authorization: Bearer ${CNPJIA_KEY}"],
"env": { "CNPJIA_KEY": "cnpj_live_..." }
}
}
}
Claude Code
claude mcp add --transport http cnpjia https://mcp.cnpj.ia.br \
--header "Authorization: Bearer $CNPJIA_KEY"
Cursor
{
"mcpServers": {
"cnpjia": {
"url": "https://mcp.cnpj.ia.br",
"headers": { "Authorization": "Bearer cnpj_live_..." }
}
}
}
Windsurf
{
"mcpServers": {
"cnpjia": {
"serverUrl": "https://mcp.cnpj.ia.br",
"headers": { "Authorization": "Bearer cnpj_live_..." }
}
}
}
OpenAI
import os
from openai import OpenAI
client = OpenAI()
resp = client.responses.create(
model="gpt-5",
tools=[{
"type": "mcp",
"server_label": "cnpjia",
"server_url": "https://mcp.cnpj.ia.br",
"headers": {"Authorization": f"Bearer {os.environ['CNPJIA_KEY']}"},
"require_approval": "never",
}],
input="Qual é a situação cadastral do CNPJ 00.000.000/0001-91?",
)
print(resp.output_text)
Os caminhos de arquivo variam por cliente (Claude Desktop: claude_desktop_config.json, que só aceita servidores locais e por isso usa a ponte mcp-remote; Cursor: .cursor/mcp.json; Windsurf: mcp_config.json). Com a conexão feita, tools/list devolve as quatro ferramentas abaixo e nada mais.
As quatro ferramentas
| Ferramenta | Operação da API | Créditos | Planos |
|---|---|---|---|
consultar_cnpj |
GET /v1/cnpjs/{cnpj} |
1 em basic, 6 em full |
todos |
buscar_empresas |
GET /v1/cnpjs |
1 por empresa retornada, até 20 por página | pagos; no Free responde insufficient_plan |
gerar_filtro |
POST /v1/filters/generate |
1 por chamada | todos |
ver_uso |
GET /v1/usage |
0 | todos |
gerar_filtro recebe uma descrição em linguagem natural (“padarias ativas em Curitiba optantes do Simples”) e devolve os filtros estruturados que buscar_empresas aceita. É a ponte entre a pergunta do usuário e a busca, e custa 1 crédito por chamada, independentemente do resultado.
Exemplos de perguntas
- “Qual é a situação cadastral e o CNAE principal do CNPJ 00.000.000/0001-91?” →
consultar_cnpjembasic. - “Me dá o telefone e os sócios do Banco do Brasil, CNPJ 00.000.000/0001-91.” →
consultar_cnpjemfull. - “Quantas empresas de software ativas existem em Florianópolis?” →
gerar_filtroe depoisbuscar_empresas; a primeira página já traz a contagem com teto. - “Quantos créditos ainda tenho este mês?” →
ver_uso.
O agente decide o perfil a partir do pedido; oriente-o no prompt do sistema se quiser forçar basic para economizar.
Limites
- Requisições por minuto: as do plano da conta, contadas junto com as chamadas da API REST. Um agente em loop atinge
rate_limitedrápido; o servidor devolve o erro comRetry-Aftere o agente deve esperar. - Free: 60 créditos por mês, sem
buscar_empresas. A ferramenta aparece emtools/list, mas respondeinsufficient_plancom um link para/precos. - Chave revogada: o servidor valida a chave com um cache de até 60 segundos; depois disso recusa a conexão.
Segurança
A chave fica no cliente do agente, em arquivo de configuração local ou em variável de ambiente, e chega ao servidor MCP no header de cada chamada, onde é validada contra a API. O servidor não a guarda, não abre sessão sem ela e não tem operação de compra: crédito e plano se gerenciam no portal, por uma pessoa. Se um agente com acesso à chave sair do controle, revogue a chave no portal; a API recusa na próxima chamada e o MCP em até 60 segundos.
Relacionados
- Autenticação e Créditos, franquia e rate limit.
- Busca de empresas: os filtros que
gerar_filtroproduz ebuscar_empresasaceita. - Referência gerada do OpenAPI: cada operação com o campo
x-mcp-tool.
Perguntas frequentes
Preciso de OAuth para conectar o agente?
Não. O servidor aceita a chave da conta no header Authorization: Bearer, a mesma da API REST. Não há fluxo OAuth nem token separado para o MCP.
Funciona no ChatGPT e em agentes OpenAI?
Em agentes construídos com a API da OpenAI, sim: a ferramenta mcp da Responses API aceita server_url e headers, como no exemplo da página. No app ChatGPT a conexão depende do que a OpenAI habilita para conectores MCP com autenticação por header na sua conta.
O agente pode comprar créditos ou mudar meu plano?
Não. O servidor MCP só expõe consulta, busca, geração de filtro e leitura de uso. Compra de pacote e troca de plano acontecem no portal, por uma pessoa autenticada.
O custo pelo MCP é o mesmo da API?
Sim. Cada ferramenta chama a operação correspondente da API e debita os mesmos créditos: uma consulta full pelo agente custa o que custaria por curl. O agente vê o saldo com ver_uso.
Por que a busca aparece na lista de ferramentas se meu plano é Free?
Porque a lista é a mesma para toda conta, e o agente precisa saber que a ferramenta existe para explicar ao usuário por que não pode usá-la. No Free ela responde insufficient_plan com um link para os planos, sem consumir crédito.