MCP Dados Brasil
Servidor MCP com dados oficiais brasileiros: IBGE, Banco Central, INMET, Câmara e Senado.
Open source Open in the app JSON README (API)
About
Servidor MCP com dados oficiais brasileiros: IBGE, Banco Central, INMET, Câmara e Senado.
Details
- Kind
- MCP servers
- Topic
- No topic detected
- Publisher
- lucianoon
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.5.2
- Stars
- 2
- Last push
- 2026-09-01T23:47:01Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 04:00:26
- Updated
- 2026-08-29 04:00:26
- Origin id
io.github.lucianoon/mcp-dados-br
README
# mcp-dados-br
[](https://github.com/lucianoon/mcp-dados-br/actions/workflows/ci.yml)
[](https://pypi.org/project/mcp-dados-br/)
[](https://www.python.org)
[](LICENSE)
*[English version](README.en.md)*
Servidor **MCP (Model Context Protocol)** que expõe dados públicos brasileiros como ferramentas para assistentes de IA: [Claude Desktop](https://claude.ai/download), Claude Code, Cursor e qualquer cliente MCP.
<!-- mcp-name: io.github.lucianoon/mcp-dados-br -->
## Instalação
A forma mais simples, sem instalar nada permanentemente:
```bash
uvx mcp-dados-br
```
Configuração no Claude Desktop:
```json
{
"mcpServers": {
"dados-brasil": {
"command": "uvx",
"args": ["mcp-dados-br"]
}
}
}
```
Ou no Claude Code:
```bash
claude mcp add dados-brasil -- uvx mcp-dados-br
```
### A partir do código-fonte
```bash
git clone https://github.com/lucianoon/mcp-dados-br
cd mcp-dados-br
uv sync
```
## Ferramentas disponíveis
| Fonte | Tools | Descrição |
|---|---|---|
| IBGE/SIDRA | `ibge_populacao`, `ibge_pib`, `ibge_municipios`, `ibge_sidra` | População, PIB, busca de municípios e consulta genérica a qualquer agregado SIDRA |
| Banco Central | `bcb_serie`, `bcb_cambio`, `bcb_moedas`, `bcb_focus` | Séries SGS com atalhos nomeados (`selic`, `ipca`, `cdi`...), cotações PTAX, lista de moedas e expectativas do Boletim Focus |
| INMET | `inmet_estacoes`, `inmet_dados` | Lista de estações meteorológicas e dados horários observados (dados observacionais exigem token) |
| Câmara dos Deputados | `camara_deputados`, `camara_detalhes_deputado`, `camara_proposicoes`, `camara_votacoes_proposicao`, `camara_agenda`, `camara_tramitacao` | Deputados, proposições, votações, agenda e tramitações |
| Senado Federal | `senado_senadores`, `senado_materias`, `senado_votacoes` | Senadores em exercício, matérias legislativas e votações nominais com placar |
Todas as fontes são APIs oficiais abertas — nenhuma chave de API necessária,
exceto os dados horários do INMET (veja abaixo).
## Configuração
### Claude Desktop / Cursor
Adicione ao arquivo de configuração (`claude_desktop_config.json` ou `mcp.json`):
```json
{
"mcpServers": {
"mcp-dados-br": {
"command": "uv",
"args": ["run", "--directory", "/caminho/para/mcp-dados-br", "mcp-dados-br"]
}
}
}
```
### Claude Code
```bash
claude mcp add mcp-dados-br -- uv run --directory /caminho/para/mcp-dados-br mcp-dados-br
```
## Token opcional do INMET
A listagem de estações (`inmet_estacoes`) é aberta. Já os **dados horários
observados** (`inmet_dados`) exigem um token fornecido pelo INMET — solicite em
[portal.inmet.gov.br](https://portal.inmet.gov.br) e configure a variável de
ambiente no cliente MCP:
```json
{
"mcpServers": {
"mcp-dados-br": {
"command": "uv",
"args": ["run", "--directory", "/caminho/para/mcp-dados-br", "mcp-dados-br"],
"env": { "INMET_TOKEN": "seu-token" }
}
}
}
```
Sem o token, as demais 18 ferramentas funcionam normalmente.
## Transporte streamable-http
Além do stdio padrão, o servidor pode rodar em modo HTTP remoto:
```bash
MCP_TRANSPORTE=streamable-http MCP_PORTA=8000 mcp-dados-br
```
Aponte clientes para `http://localhost:8000/mcp`. Útil para Docker ou
compartilhar o servidor na rede local. Por padrão o servidor escuta só em
`127.0.0.1`; defina `MCP_HOST=0.0.0.0` para aceitar conexões de outras máquinas
(a imagem Docker já faz isso).
### Docker
```bash
docker build -t mcp-dados-br .
docker run -p 8000:8000 -e INMET_TOKEN=seu-token mcp-dados-br
```
## Exemplos de uso
Depois de configurar, pergunte diretamente ao assistente:
- "Qual foi o IPCA dos últimos 6 meses?"
- "O que o mercado espera para a Selic nas próximas reuniões?" (Boletim Focus)
- "Quem são os deputados federais de Minas Gerais do partido X?"
- "Qual a população de São Paulo em 2022? E o PIB?"
- "Como está o dólar PTAX nos últimos dias?"
- "Busque projetos de lei de 2025 sobre saúde mental"
- "O que está na agenda da Câmara esta semana?"
- "Como o Senado votou a PEC X? Qual o placar?"
- "Quem são os senadores de Minas Gerais?"
- "Quais estações automáticas do INMET existem no Amazonas?"
## Desenvolvimento
```bash
uv sync --dev
uv run pytest # suíte unitária (mocks)
uv run pytest -m integration # consulta as APIs reais
uv run ruff check .
uv run mypy src
```
Logs de depuração: configure `MCP_LOG_LEVEL=DEBUG` no cliente MCP.
Para contribuir, leia o [CONTRIBUTING.md](CONTRIBUTING.md).
### Arquitetura
```
src/mcp_dados_br/
├── server.py # Servidor MCP e registro das tools
├── http.py # Cliente HTTP compartilhado, retry e tratamento de erros
├── cache.py # Cache TTL em memória para as respostas das APIs
└── tools/
├── ibge.py # SIDRA v3 + localidades v1
├── bcb.py # SGS + Olinda (PTAX e Boletim Focus)
├── inmet.py # Estações e dados observacionais
├── camara.py # Dados Abertos da Câmara v2
└── senado.py # Dados Abertos do Senado (LegisSaber)
```
- Transporte stdio (padrão MCP desktop)
- Cache TTL de 10 minutos por requisição idêntica
- Retry automático em falhas de rede
- Saídas formatadas como texto legível pelo modelo
## Roadmap
- [x] v0.2 — INMET (estações + observacional com token) e Boletim Focus
- [x] v0.3 — Agenda da Câmara, transporte streamable-http e testes de integração agendados no CI
- [x] v0.4 — Tramitações, atalhos nomeados no SGS, imagem Docker
- [x] v0.5 — Publicação no PyPI (`uvx mcp-dados-br`), MCP Registry e Smithery
- [ ] DOU: busca no Diário Oficial da União (aguardando API pública estável)
- [ ] TSE: resultados eleitorais
## Licença
MIT