brasil-data-mcp
This server exposes Brazilian public data as MCP tools, letting AI clients query official sources (BrasilAPI/BACEN/IBGE/CVM/registro.br) via natural language.
CNPJ:
consultar_cnpjreturns company registration data (razão social, status, address, partners, CNAE, capital).CEP:
consultar_cepreturns full address (street, neighborhood, city, UF, coordinates) from a Brazilian postal code.Banks:
consultar_bancoandlistar_bancosprovide bank details by COMPE code or full list from BACEN.Holidays:
consultar_feriadoslists national holidays (including movable ones) for a given year.Area codes (DDD):
consultar_dddlists cities and UF served by a DDD.ISBN:
consultar_isbnreturns book metadata (title, author, publisher, year, pages).Economic rates:
consultar_taxaandlistar_taxasreport current SELIC, CDI, and IPCA values.CVM brokers:
consultar_corretorafetches authorized securities broker registration data by CNPJ.Exchange rates:
consultar_cambiogets PTAX quotes for 10 foreign currencies;listar_moedaslists supported currencies.IBGE states/municipalities:
listar_estadoslists all UFs;consultar_municipioslists municipalities of a UF with IBGE codes..br domains:
consultar_dominio_brchecks availability/status of a .br domain (DNS, expiration, suggestions).Optional premium (with
CPFCNPJ_TOKEN):consultar_cpffor individuals,consultar_inscricao_estadualfor state registrations, and real-time CNPJ (D+0) with fallback.MCP prompts: guided workflows
analise-cnpj(structured company analysis) andpanorama-economico(rates + upcoming holidays snapshot).
brasil-data-mcp
MCP server that exposes Brazilian public data (CNPJ, CEP, banks, holidays) as tools for Claude Desktop, Claude Code, Cursor, Windsurf, and any client compatible with the Model Context Protocol.
Powered by BrasilAPI — no keys, no auth, official data.
🇧🇷 PT — What is it?
Connect your AI client to Brazilian public data without writing a single line of code. Ask in natural language:
"What is the legal name for CNPJ 33.000.167/0001-01?"
"Which city is this ZIP code 01310-100 in?"
"Which bank has the code 341?"
"What are the national holidays for 2026?"
Claude (or another MCP client) calls the tool, returns the structured JSON, and you read the answer in Portuguese directly in the conversation.
Available tools
Tool | What it does |
| Company registration data: legal name, status, address, partners, CNAE |
| Full address from ZIP code (street, neighborhood, city, state, coordinates) |
| Name and ISPB of a Brazilian bank by COMPE code (e.g., 341 = Itaú, 260 = Nubank) |
| Full list of Brazilian banks registered with BACEN (~250 institutions) |
| National holidays for a given year (dates, name, type) — includes Carnival and Easter |
Related MCP server: jurisprudenciaia-mcp
🇺🇸 EN — What is it?
Plug your AI client into Brazilian public data with zero code. Ask in natural language and the LLM picks the right tool, calls it, and answers you with structured data from official sources (Receita Federal, ViaCEP, BACEN).
Currently ships with consultar_cnpj. CEP, banks and holidays are landing next.
🚀 Installation
All instructions below use npx -y brasil-data-mcp, which downloads and runs the latest version without a global installation.
Claude Desktop
Edit the configuration file:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"brasil-data": {
"command": "npx",
"args": ["-y", "brasil-data-mcp"]
}
}
}Restart Claude Desktop. Done.
Claude Code
claude mcp add brasil-data -- npx -y brasil-data-mcpCursor
Create or edit .cursor/mcp.json in the project root:
{
"mcpServers": {
"brasil-data": {
"command": "npx",
"args": ["-y", "brasil-data-mcp"]
}
}
}🛠️ Development
git clone https://github.com/alanpcf/brasil-data-mcp.git
cd brasil-data-mcp
npm install
npm run dev # tsx watch — hot reload em desenvolvimento
npm run lint # tsc --noEmit
npm run build # tsup → dist/index.js
npm test # vitestTo point your MCP client to the local build instead of the npm package:
{
"mcpServers": {
"brasil-data-local": {
"command": "node",
"args": ["/caminho/absoluto/para/brasil-data-mcp/dist/index.js"]
}
}
}🗺️ Roadmap
[x] Phase 1 — Skeleton + HTTP client +
consultar_cnpj[x] Phase 2 —
consultar_cep,consultar_banco,listar_bancos,consultar_feriados+ Vitest tests[ ] Phase 3 — CI (GitHub Actions), CONTRIBUTING.md, coverage > 80%, npm publication
[ ] Phase 4 — FIPE, DDD, ISBN, rates (SELIC/CDI/IPCA), CVM, MCP prompts for workflows
💡 Why this project exists
Most AI tools are trained and demonstrated with American data: ZIP code, EIN, FedEx tracking. When a Brazilian dev wants to ask an LLM "give me the registration for CNPJ X", they either resort to scraping, build an HTTP integration from scratch, or give up.
brasil-data-mcp is the shortest path: a single npx and your Claude (or Cursor, or Windsurf) already speaks "Brazilian public data Portuguese". Everything is open source, MIT, no keys, no hostile rate limits — because BrasilAPI has already done the heavy lifting of unifying and caching official data.
If you are a Brazilian dev and use LLMs daily, this server is for you.
🤝 Contributing
Issues and PRs are very welcome. To add a new tool, follow the pattern in src/tools/cnpj.ts (Zod schema + description + handler) and register it in src/index.ts.
Detailed guide in CONTRIBUTING.md (coming soon).
Built with ❤️ in Brazil. Powered by BrasilAPI.
Available Tools
15 toolsconsultar_bancoA
Consulta os dados de um banco brasileiro pelo código COMPE/Febraban via BrasilAPI (fonte: BACEN). Retorna em JSON: nome curto, nome completo, código, ISPB (identificador no SPB). Use quando o usuário fornecer um código de banco e quiser saber o nome, ou quando precisar do ISPB pra montar um PIX/TED. NÃO use para: buscar banco por nome (use listar_bancos e filtre), validar conta corrente, ou consultar agência/conta. Códigos comuns: 001=BB, 104=CEF, 237=Bradesco, 341=Itaú, 260=Nubank, 077=Inter.
Inputs: codigo (required).
consultar_cambioA
Consulta a cotação de câmbio oficial de uma moeda estrangeira em relação ao Real (BRL) numa data, via boletins PTAX do Banco Central (BrasilAPI). Retorna em JSON os boletins do dia (ABERTURA, INTERMEDIÁRIO, FECHAMENTO) com cotação de compra e venda em BRL, paridade e data_hora_cotacao. A fonte NÃO expõe o dia corrente: com data omitida a tool consulta ontem (a cotação mais recente disponível), e em data sem pregão a API retorna os boletins do último dia útil anterior. Use quando o usuário perguntar 'quanto tá o dólar?' (retorna a cotação mais recente, do dia útil anterior), 'cotação do euro em 26/06', 'quanto fechou a libra sexta-feira' — qualquer pergunta sobre valor de moeda estrangeira em reais. NÃO use para: criptomoedas (não está nesta API), BRL (é a moeda base), série histórica (uma data por chamada), ou moedas fora das 10 suportadas — pra descobrir as moedas disponíveis use listar_moedas.
Inputs: moeda (required), data.
consultar_cepA
Consulta endereço completo a partir de um CEP brasileiro via BrasilAPI v2 (agrega ViaCEP, Postmon e outros provedores com fallback automático). Retorna em JSON: estado (UF), cidade, bairro, logradouro e, quando disponível, coordenadas geográficas. Use quando o usuário pedir o endereço de um CEP, validar um CEP, ou descobrir cidade/UF a partir de um CEP. NÃO use para: códigos postais de outros países, descobrir CEP a partir de endereço (a operação é só CEP → endereço, não inversa). Aceita CEP com ou sem hífen.
Inputs: cep (required).
consultar_cnpjA
Consulta dados cadastrais de uma empresa brasileira pelo CNPJ na Receita Federal (via BrasilAPI). Retorna em JSON: razão social, nome fantasia, situação cadastral (ativa/baixada/etc), data de abertura, endereço completo, CNAE principal e secundários, sócios (QSA), capital social, natureza jurídica, porte (MEI/ME/EPP/Demais), telefones, e-mail, simples nacional/MEI. Use quando o usuário pedir informações sobre uma empresa identificada por CNPJ. Fonte: BrasilAPI por padrão (sem chave), inclusive CNPJ alfanumérico (IN RFB 2.229/2024). Se a variável de ambiente CPFCNPJ_TOKEN estiver definida, usa o provedor premium cpfcnpj.com.br (dados oficiais em tempo real, pacote configurável) e cai para a BrasilAPI se o provedor falhar; aí o campo 'fonte' na resposta indica a origem. Sem o token a resposta é o JSON cru da BrasilAPI, igual às versões anteriores. NÃO use para: CPF (pessoa física), empresas estrangeiras, ou validação local de formato (rejeite formato inválido sem chamar a tool). Aceita CNPJ com ou sem máscara.
Inputs: cnpj (required).
consultar_corretoraA
Consulta dados cadastrais de uma corretora de valores autorizada pela CVM (Comissão de Valores Mobiliários) via BrasilAPI. Retorna em JSON: CNPJ, nome social, nome comercial, status (em funcionamento, cancelada, etc), endereço completo, e-mail, telefone, data de início e patrimônio quando disponível. Use quando o usuário fornecer um CNPJ e quiser saber se é uma corretora autorizada pela CVM, ou puxar os dados cadastrais. NÃO use para: empresas em geral (use consultar_cnpj), corretoras de seguros (CVM só regula valores mobiliários), ou buscar por nome (a API só aceita CNPJ).
Inputs: cnpj (required).
consultar_dddA
Lista as cidades atendidas por um código DDD brasileiro via BrasilAPI. Retorna em JSON: estado (UF) e lista de cidades que usam aquele DDD. Use quando o usuário perguntar de onde é um DDD, quais cidades um DDD cobre, ou descobrir o estado de um número de telefone. NÃO use para: validar número de telefone completo, descobrir DDD a partir de cidade (a operação só é DDD → cidades), ou consultar DDDs internacionais.
Inputs: ddd (required).
consultar_dominio_brA
Consulta o status de registro de um domínio .br direto na base do registro.br (via BrasilAPI). Retorna em JSON: status (AVAILABLE = disponível pra registro, REGISTERED = já registrado), fqdn, hosts (servidores DNS) e expires-at quando registrado, e suggestions de extensões quando disponível. O resultado nunca é cacheado — é sempre o status atual. Use quando o usuário perguntar 'o domínio X.com.br tá livre?', 'quando expira Y.org.br?', 'quem responde pelo DNS de Z.br?'. NÃO use para: domínios internacionais .com/.net/gTLDs (a base é só .br), dados de titular/whois completo (a API não expõe), ou hospedagem/conteúdo do site.
Inputs: dominio (required).
consultar_feriadosA
Lista os feriados NACIONAIS brasileiros de um ano específico via BrasilAPI. Retorna em JSON um array com data (YYYY-MM-DD), nome do feriado e tipo (national/optional). Inclui feriados móveis calculados (Carnaval, Páscoa, Corpus Christi). Use quando o usuário perguntar quando cai um feriado, listar feriados do ano, planejar emendas/pontes, ou calcular dias úteis. NÃO use para: feriados estaduais ou municipais (a API só cobre nacionais), datas comemorativas sem dia de folga (Dia das Mães etc.), ou anos fora da faixa 1900-2199.
Inputs: ano (required).
consultar_isbnA
Consulta metadados de um livro pelo ISBN via BrasilAPI (agrega CBL, Mercado Editorial, Open Library e Google Books). Retorna em JSON: título, subtítulo, autores, editora, ano, idioma, número de páginas, assunto/categoria, sinopse (quando disponível) e fonte do dado. Use quando o usuário fornecer um ISBN e quiser saber sobre o livro (título, autor, editora, ano). NÃO use para: buscar livro por título ou autor (a operação é só ISBN → metadados), validar formato sem consultar (rejeite local se não bater 10/13 dígitos), ou consultar preço/disponibilidade. Aceita ISBN-10 e ISBN-13, com ou sem hífens.
Inputs: codigo (required).
consultar_municipiosA
Lista todos os municípios de uma UF brasileira com nome e código IBGE de 7 dígitos, via BrasilAPI. Retorna em JSON um array de {nome, codigo_ibge}. Atenção: estados grandes retornam listas longas (SP tem 645 municípios, ~30KB) — prefira usar só quando precisar da lista ou do código de um município. Use quando o usuário precisar do código IBGE de um município ou listar as cidades de um estado. NÃO use para: buscar um município por nome no país inteiro (a API só filtra por UF — se souber o estado, consulte-o), endereços/CEP (use consultar_cep), ou dados populacionais.
Inputs: uf (required).
consultar_taxaA
Consulta o valor atual de uma taxa econômica brasileira (SELIC, CDI, IPCA) via BrasilAPI. Retorna em JSON: nome da taxa e valor atual (% ao ano). Use quando o usuário perguntar 'qual a SELIC hoje?', 'CDI atual?', 'inflação do IPCA?' — qualquer pergunta sobre o valor corrente de uma taxa específica. NÃO use para: série histórica (a API devolve só o último valor), outras taxas além de SELIC/CDI/IPCA, ou consultar dólar/bolsa (não está nesta API). Pra panorama com todas as 3 taxas use listar_taxas.
Inputs: sigla (required).
listar_bancosA
Lista TODOS os bancos brasileiros cadastrados no BACEN via BrasilAPI. Retorna em JSON um array com nome, código COMPE/Febraban e ISPB de cada instituição. Use quando o usuário quiser uma lista completa, buscar banco por nome (você filtra o resultado), ou descobrir o código de um banco específico cujo nome ele forneceu. NÃO use quando o usuário já forneceu o código numérico — nesse caso use consultar_banco que é mais barato. A lista tem ~250 entradas; cite só os relevantes na resposta.
Inputs: no named parameters.
listar_estadosA
Lista as 27 unidades federativas do Brasil (26 estados + DF) com dados do IBGE, via BrasilAPI. Retorna em JSON um array com id (código IBGE), sigla, nome, região (Norte/Nordeste/Centro-Oeste/Sudeste/Sul) e capital de cada UF. Use quando o usuário precisar do código IBGE de um estado, agrupar estados por região, validar siglas de UF ou saber a capital. NÃO use para: municípios (use consultar_municipios), dados demográficos ou populacionais (não estão nesta API).
Inputs: no named parameters.
listar_moedasA
Lista as moedas estrangeiras com cotação disponível na BrasilAPI (boletins PTAX/BACEN). Retorna em JSON um array com símbolo (ISO 4217), nome e tipo de cada moeda — 10 moedas: USD, EUR, GBP, JPY, CHF, CAD, AUD, DKK, NOK, SEK. Use quando o usuário quiser saber quais moedas têm cotação disponível ou não souber o código da moeda. NÃO use para obter a cotação em si — use consultar_cambio.
Inputs: no named parameters.
listar_taxasA
Lista TODAS as taxas econômicas brasileiras disponíveis na BrasilAPI (SELIC, CDI, IPCA) com seus valores atuais. Retorna em JSON um array com nome e valor (% ao ano) de cada taxa. Use quando o usuário quiser um panorama econômico, comparar SELIC vs CDI vs IPCA, ou não souber a sigla específica. NÃO use quando o usuário já sabe qual taxa quer — use consultar_taxa que é semanticamente mais direto. Hoje são só 3 taxas; o payload é pequeno.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Each tool targets a distinct Brazilian data resource (CNPJ, CEP, banks, holidays, DDD, ISBN, taxes, brokers, FX, states, municipalities, .br domains), and the descriptions explicitly state what each tool should not be used for. Even the companion list/consult tools (e.g., listar_bancos vs consultar_banco) have clear boundaries.
All tools follow a consistent Portuguese snake_case pattern: consultar_ for lookup-by-identifier and listar_ for fetching full collections. There is no mixing of conventions or vague verbs.
At 15 tools, the server is at the upper edge of the ideal range but each tool maps to a distinct BrasilAPI endpoint and earns its place. The consult/list pairs (bancos, taxas, moedas) are justified by different query needs rather than redundancy.
The server covers a broad and practical range of Brazilian public data queries, with sensible consult/list pairs and clearly documented read-only behavior. Obvious gaps include FIPE vehicle prices, demographic/census data, and inverse lookups (address to CEP, city to DDD), but these appear to be external API limitations rather than broken workflows.
Maintenance
Related MCP Connectors
Brazilian Open Finance MCP — 30+ banks (Itaú, Nubank, etc.) to Claude/Cursor. Read-only.
JusPronto is case-management software for Brazilian law firms. Its remote MCP server (OAuth 2.1 with PKCE, per-permission scopes, audit log) lets Claude and ChatGPT read the firm's own cases, deadlines, agenda, recent court movements and case files with the page cited. Write actions require the lawyer's approval. Requires a JusPronto account.
Talk to your public-facing AI from any MCP client — Claude, ChatGPT, Cursor, Cline, Windsurf.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP Server for accessing 36 Brazilian public data sources and 1 agent, enabling AI agents to query government data on economy, legislation, transparency, judiciary, elections, environment, health, and more.61MIT
- FlicenseNot gradedqualityBmaintenanceSelf-hosted MCP connector for querying Brazilian legal jurisprudence via JurisprudenciaIA. Enables natural language legal research using Claude.ai, with tools for consulting, searching, and comparing jurisprudence and legal theses.18-
- AlicenseNot gradedqualityDmaintenanceMCP server that connects AI agents to 28 Brazilian public APIs, providing tools to query government data on economy, legislation, transparency, judiciary, elections, environment, health, and more.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for consulting official ANTT transport data in read-only mode via a hosted HTTP endpoint. Works with any MCP-compatible client, including Claude, ChatGPT, and Cursor.MIT