153 tools, one MCP server, live Brazilian government data — federal AND state. Every tool reads straight from the original source, one period or entity at a time (never a bulk historical dump) — not from a mirrored copy. Point an agent (Claude, Cursor, any MCP client) at this server and it can look up the Selic rate, a CNPJ, a deputy's expenses, a court case, an active wildfire hotspot, a município's 2024 election results, a state budget line item, or a postal code, live.
Sibling project to lakebrasil,
the open-source engine that aggregates 35 pipelines of historical data
into an Iceberg lakehouse. This package is the live counterpart — most
tools need no lake at all, hitting the government's own API/file for
just the slice asked for; a handful (município reference data, CEPs,
flags) query a bundled local dataset instead of the network on every call.
uvx lakebrasil-mcp
# or
pip install lakebrasil-mcpAdd to an MCP client config (e.g. Claude Desktop, claude_desktop_config.json):
{
"mcpServers": {
"lakebrasil": {
"command": "uvx",
"args": ["lakebrasil-mcp"]
}
}
}That's it — no account, no API key, for almost every tool. One exception:
transparencia_* tools need PORTAL_TRANSPARENCIA_API_KEY (free,
register at https://api.portaldatransparencia.gov.br/swagger-ui.html).
(b3_* tools work unauthenticated too, but only for PETR4/VALE3/MGLU3/ITUB4
unless you also set BRAPI_TOKEN — brapi.dev's free-tier limit.)
| Domain | Sources |
|---|---|
| Economy | BACEN/SGS (Selic, IPCA, câmbio), BCB Olinda/PTAX, BNDES, Ipeadata, Comex Stat, CEMPRE/RAIS |
| Capital markets | B3 quotes/dividends (via brapi.dev), CVM company filings/fatos relevantes/fund reports |
| Legislature | Câmara dos Deputados, Senado Federal |
| Transparency & fiscal | Portal da Transparência, TCU, SICONFI/Tesouro Nacional, Orçamento (execução), Emendas Parlamentares, FNDE/SIOPE |
| State governments | Open-data (CKAN) portals — São Paulo, Rio Grande do Sul, Goiás, more as confirmed |
| Judiciary | DataJud/CNJ, TST jurisprudência |
| Elections | TSE (candidatos, resultados municipais), Meta Ad Library (anúncios políticos) |
| Geography & stats | IBGE (localidades, agregados/SIDRA, regiões metropolitanas), município reference (57 fields incl. TSE/INEP/Tesouro), CEP lookup/search, flags |
| Procurement | PNCP (compras públicas), TransfereGov |
| Environment | INPE (queimadas), ANA (hidrologia) |
| Energy & transport | ANEEL, ANTT, ANP (fuel prices), frota (DENATRAN/SENATRAN) |
| Aviation | OpenSky |
| Public safety | Atlas da Violência, Fórum Brasileiro de Segurança Pública |
| Health | CNES, SISVAN/opendatasus, PNI/imunização, ANVISA, Banco de Preços em Saúde, Farmácia Popular, ANS (health plan beneficiaries) |
| Social programs | BPC, Bolsa Família, Pé-de-Meia — municipal aggregates only (LGPD; never per-beneficiary data) |
| Education | INEP Censo Escolar, MEC Censo da Educação Superior |
| Sanitation | SINISA (current), SNIS (historical) |
| Municipal gazettes | Querido Diário |
| News | Agência Brasil |
| Utilities | BrasilAPI (CEP, CNPJ, bancos, feriados, DDD) |
Every tool's description documents its own caveats (rate limits, LGPD/ CC-BY-ND notes where relevant, which fields are unreliable) — read the tool description your MCP client surfaces before assuming a field means what it looks like it means.
The plan here is straightforward: build the widest possible community of people actually using this against real government data, learn from that usage, and let that shape whatever comes after — rather than guessing at a product behind a paywall from day one. If you hit a broken source, a wrong field, or a rate limit that shouldn't be there, open an issue.
Ported from an original Rust implementation (rmcp + reqwest) to
Python (mcp SDK's FastMCP + httpx). Every module follows the same
shape: <source>/client.py (pure fetch/parse logic) and
<source>/tools.py (@mcp.tool()-decorated functions).
pip install -e ".[dev]"
ruff check src/MIT — see LICENSE.
