About brdata
brdata is a CLI and stdio MCP server that brings Brazilian public data into one interface. It is for users looking up geography, registrations, economic indicators, procurement, and public records; most endpoints require no account or key.
Key features
- 01Query IBGE states and municipalities
- 02Search procurement notices and municipal gazettes
- 03Look up CNPJ, CEP, and .br WHOIS data
- 04Validate CPF check digits locally
- 05Retrieve rates, FIPE brands, and health facilities
Use cases
- 01Find a Brazilian postal-code locality
- 02Check a company registration or CPF validity
- 03Review central bank indicators or FIPE brands
- 04Search procurement notices or municipal records
MCP support
Its stdio MCP server exposes 12 tools for Brazilian public data, including geography, procurement, registries, economic indicators, and health facilities.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
12Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| uf | string | No | Two-letter state code (UF) to filter to. |
| scope | string | No | Locality scope: estados (default) or municipios. |
Details
From the project READMEbrdata
brdata puts Brazil's open public data behind one small command-line tool and one stdio MCP server. Most of the questions it answers need no account and no key: where a CEP lands, what a company registration says, whether a CPF number is even arithmetically valid, what the central bank's headline rates are doing, which vehicle brands the FIPE table tracks, what a state or municipality looks like in the IBGE geography, and what is being bought, published, or registered in the public procurement portal, municipal gazettes, the lawyers' registry, the slave-labour blacklist, and the national health facility registry.
Twelve tools are included. This is a labelled core subset of a larger catalogue: company deep profiles, court-process and warrant searches, wanted-person and consumer-complaint lookups, and several other tools from that catalogue are deliberately out of scope here.
Install
npx @reneturcios/brdata ibge --uf SP
Or run the container image:
docker run -i ghcr.io/cloudcorprecords/brdata
The container defaults to the MCP server. Pass CLI arguments to use it as a CLI instead. No environment variable is required: every upstream used here is a public, keyless endpoint.
CLI
brdata ibge --scope municipios --uf SP
brdata pncp merenda --uf BA
brdata diario edital
brdata oab "Maria Silva" --uf RJ
brdata lista-suja "Fazenda Exemplo"
brdata cnpj 12345678000195
brdata cep 01310-100
brdata cpf 529.982.247-25
brdata whois example.com.br
brdata bacen --indicator selic
brdata fipe Fiat
brdata cnes "Hospital Central" --municipio Campinas
brdata --version
Each command prints the upstream JSON payload, except cpf, which
prints the local validation result. Exit codes: 0 on success, 1
when a call or validation input fails, 2 for usage errors.
MCP server
npx -y @reneturcios/brdata mcp
MCP client configuration:
{
"mcpServers": {
"brdata": {
"command": "npx",
"args": ["-y", "@reneturcios/brdata", "mcp"]
}
}
}
Tools
| Tool | Input | What it returns |
|---|---|---|
ibge_localidades | scope (optional: estados/municipios), uf (optional) | IBGE states or municipalities. |
pncp_licitacoes | query, uf (both optional) | PNCP public procurement notices. |
querido_diario | query (required) | Municipal gazette search results. |
oab_advogado | name (required), uf (optional) | OAB lawyer registry matches. |
lista_suja_lookup | query (required) | Slave-labour blacklist matches. |
cnpj_lookup | cnpj (required, 14 digits) | Company registration data via BrasilAPI. |
cep_lookup | cep (required, 8 digits) | Postal-code locality via BrasilAPI. |
cpf_validate | cpf (required) | Local check-digit validation; no network call. |
domain_whois | domain (required) | .br domain WHOIS via the registro.br data on BrasilAPI. |
bacen_taxas | indicator (optional: selic/ipca/usd/eur/cdi) | Latest Banco Central SGS value for the indicator. |
fipe_veiculos | query (optional) | FIPE vehicle brands, filtered by the query when given. |
cnes_saude | query, municipio (both optional) | CNES health facilities. |
Notes on sources: IBGE geography comes from the IBGE localities service, Banco Central figures from the BCB open-data SGS series, FIPE brands from the public Parallelum FIPE API, and CNPJ/CEP/WHOIS from BrasilAPI. The PNCP, OAB, lista suja, and CNES requests are shaped against those services' public endpoints; their parameter shapes are reconstructions from the public search surface and are labelled as such in the build report, since no live call was made while building this package.
CPF validation is exact, not sampled: it strips punctuation, rejects all-equal digits and wrong lengths, and recomputes both modulo-11 check digits locally.
Development
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
License
MIT — see LICENSE.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.