
MCP Dados Brasil
io.github.lucianoonPublished by GitHub account lucianoonv0.6.0Updated Oct 24, 2026
Servidor MCP com dados oficiais brasileiros: IBGE, Banco Central, INMET, Câmara e Senado.
Overview
MCP server that gives an AI assistant tools to query official Brazilian public data: IBGE statistics, Central Bank indicators, INMET weather, and Chamber and…
- What you can do
- Look up IBGE population, GDP, municipalities and generic SIDRA aggregates
- Query Central Bank series (Selic, IPCA, CDI), PTAX exchange rates, currency list and Focus market expectations
- List INMET weather stations and fetch hourly observed data
- Search Chamber of Deputies members, bills, votes, agenda and legislative progress
- Retrieve senators, legislative matters and roll-call vote results from the Senate
- When to use it
- Useful when you need Brazilian official statistics, economic indicators, weather observations or legislative information inside an assistant conversation, without writing API calls yourself. It suits analysts, journalists and researchers working with Brazilian public data.
- Requirements
- Runs locally as a Python package via uvx (or uv from source); no API key for most sources. Hourly INMET observations need an INMET_TOKEN environment variable obtained from INMET. Network access to the official APIs is required. Optional HTTP mode uses MCP_TRANSPORTE, MCP_HOST, MCP_PORTA and MCP_AUTH_TOKEN.
Installation
In SourceWeft
- Open MCP Dados Brasil in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
mcp-dados-br
[CI] [Integração] [PyPI] [Python] [Licença: MIT]
Servidor MCP (Model Context Protocol) que expõe dados públicos brasileiros como ferramentas para assistentes de IA: Claude Desktop, Claude Code, Cursor e qualquer cliente MCP.
Instalação
A forma mais simples, sem instalar nada permanentemente:
Configuração no Claude Desktop:
Ou no Claude Code:
A partir do código-fonte
Ferramentas disponíveis
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):
Claude Code
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 e configure a variável de
ambiente no cliente MCP:
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:
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).
Autenticação (bearer opcional)
Risco: sem
MCP_AUTH_TOKEN, o modo HTTP não tem autenticação. Escutando em0.0.0.0(como na imagem Docker), qualquer pessoa que alcance a porta pode chamar as 19 tools, consumir a sua cota nas APIs públicas e usar o seuINMET_TOKEN. O servidor registra um aviso no log quando sobe assim. Não publique a porta na internet sem token e prefira um proxy reverso com TLS na frente: sobre HTTP puro o token trafega em texto claro.
Gere um token longo e aleatório e passe-o ao servidor:
Requisições sem o cabeçalho, com outro esquema ou com token diferente recebem
401 com WWW-Authenticate: Bearer. A comparação usa secrets.compare_digest
(tempo constante). No cliente, envie o cabeçalho, por exemplo no Claude Code:
Em stdio o token não se aplica: o processo só fala com o cliente que o iniciou.
Docker
Para uso só na própria máquina, publique a porta apenas no loopback:
docker run -p 127.0.0.1:8000:8000 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
Logs de depuração: configure MCP_LOG_LEVEL=DEBUG no cliente MCP.
Para contribuir, leia o CONTRIBUTING.md.
Arquitetura
- Dois transportes: stdio (padrão dos clientes desktop) e streamable-http
(Docker/rede), este com autenticação bearer opcional via
MCP_AUTH_TOKEN - Validação de entrada antes de montar qualquer URL: UF entre as 27 siglas,
moeda ISO 4217 de 3 letras, datas ISO, códigos IBGE/SIDRA numéricos, IDs
positivos e limites de
dias/ultimas. Os limites também aparecem noinputSchemadas tools, e o erro chega ao cliente MCP dizendo o que foi recebido e o que é aceito - Cache TTL de 10 minutos por requisição idêntica, com chave inequívoca (JSON ordenado de URL e parâmetros)
- Retry automático em falhas de rede e em
429/502/503/504 - Mudança de formato numa API upstream (campo renomeado, tipo trocado) vira
erro da tool (
isError: true) com a fonte e o campo, ex.:Resposta inesperada de BCB/PTAX: campo 'cotacaoCompra' ausente - Saídas formatadas como texto legível pelo modelo;
bcb_serie,bcb_cambioecamara_deputadostambém devolvemstructuredContentcomoutputSchema(datas ISO, valores numéricos), mantendo o texto como fallback - User-Agent com a versão instalada do pacote
Roadmap
- v0.2 — INMET (estações + observacional com token) e Boletim Focus
- v0.3 — Agenda da Câmara, transporte streamable-http e testes de integração agendados no CI
- v0.4 — Tramitações, atalhos nomeados no SGS, imagem Docker
- v0.5 — Publicação no PyPI (
uvx mcp-dados-br), MCP Registry e Smithery - v0.6 — Validação de entrada, autenticação bearer no modo HTTP e saída estruturada
- DOU: busca no Diário Oficial da União (aguardando API pública estável)
- TSE: resultados eleitorais
Licença
MIT
Source: README.md at commit d530033
Tools
0Version history
2- v0.6.0LatestSep 23, 2026
- v0.5.2Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts