Saúde do Brasil (DataSUS + IBGE) consultável por IA — mortalidade, dengue e internações SUS
io.github.pedropaulofernandes88-stack/saudeemdado MCP Server
This MCP server provides AI-consultable public health data for Brazil, focused on SUS sources. The dataset covers mortality, dengue, and SUS hospitalizations, and the project also references natality and social vulnerability. The catalog entry describes access to microdata from DataSUS and IBGE and includes a public site and MIT license.
🛠️ Key Features
Consultable by AI
Public health topics: mortality, dengue, and SUS hospitalizations
Includes references to natality and social vulnerability
Based on DataSUS microdata (and also IBGE)
🚀 Use Cases
Epidemiology-focused queries over Brazilian SUS indicators
Analysis involving mortality and dengue
Studies using SUS hospitalization records
Demographic and social vulnerability-related exploration (per described scope)
⚡ Developer Benefits
Health-data workflow with open data sources
Developer-facing stack themes include Python and MCP
Repository emphasizes open science and public availability
⚠️ Limitations
The provided description does not specify available MCP tools, query formats, or data schema details.
Os dados do SUS são públicos por lei, mas inacessíveis na prática: microdados em formato
proprietário (DBC), fragmentados por estado e competência, somando dezenas de gigabytes. Pesquisadores,
jornalistas e gestores gastam semanas em engenharia de dados antes de qualquer análise.
O Saúde em Dado elimina essa barreira. Ele transforma os microdados oficiais do DataSUS e do
IBGE em indicadores agregados, validados e consultáveis por API pública gratuita, painéis
navegáveis e downloads abertos — com pipeline 100% reproduzível e custo de manutenção zero.
Mais de 14,4 milhões de óbitos (2015–2024), 6,56 milhões de casos de dengue (recorde de 2024),
40,0 milhões de AIHs aprovadas (R$ 63,4 bi) e 5,2 milhões de nascimentos — em uma consulta.
📊 Fontes de dados
Sistema
Conteúdo
Cobertura
Indicadores derivados
SIM
Mortalidade (óbitos)
2015–2024
Taxa bruta + IC95%, taxa padronizada por idade, excesso de mortalidade
SINAN
Dengue (notificações)
2015–2024
Incidência, gravidade, letalidade, canal endêmico
SIH
Internações hospitalares (AIH)
2022–2024
Permanência média e custo por episódio (AIH normal), mortalidade intra-hospitalar
SINASC
Nascidos vivos
2021–2022
Baixo peso, prematuridade, pré-natal, mortalidade infantil
IBGE
População (Censo 2022, Estimativas) e malhas
—
Denominadores, padronização, mapas
IPEA / IBGE
Vulnerabilidade social (proxy Censo 2022)
2022
Cruzamento desigualdade × saúde
Todas as fontes são de domínio público. Apenas agregados são publicados — nenhum microdado
individual sai da máquina de processamento (privacidade por desenho).
🧮 Indicadores e métodos
Taxa padronizada por idade (método direto, padrão Brasil/Censo 2022) — comparação legítima entre municípios, corrigindo o efeito da estrutura etária.
Intervalo de confiança de 95% (método gama / Poisson exato) em toda taxa bruta; alerta para municípios < 10 mil hab.
Excesso de mortalidade — observado vs. esperado (baseline 2015–2019 ajustado por população), por UF e Brasil.
Canal endêmico de dengue (diagrama de controle) — faixa esperada P25–P75 de 2015–2023 vs. ano observado.
Taxa de Mortalidade Infantil — óbitos < 1 ano (SIM) ÷ nascidos vivos (SINASC).
Índice de vulnerabilidade social (proxy) — z-score de analfabetismo + falta de água (Censo 2022).
Tipo de AIH (SIH) — o arquivo do SIH mistura AIH normal com AIH de continuação, emitida quando
a internação se prolonga: uma internação longa vira várias linhas. internacoes conta AIHs aprovadas
(produção); permanência e custo médios são por episódio, sobre a AIH normal. Nos capítulos V
(transtornos mentais) e VI (sistema nervoso) os dois números divergem muito — 25% e 10% das AIHs são
de continuação. AIH não é internação nem paciente.
Microdados DataSUS (.dbc/.csv) IBGE (SIDRA / localidades / malhas)
│ │
▼ ▼
┌───────────────────────────────────────────────────────┐
│ Pipelines Python (local) — streaming + DuckDB │
│ scripts/pipeline_*.py · agregação · validação │
└───────────────────────────────────────────────────────┘
│ (sobem apenas marts agregados, ~400 MB)
▼
┌───────────────────────────────────────────────────────┐
│ Supabase (Postgres free tier) — somente leitura (RLS) │
│ ├── API REST automática (PostgREST) │
│ └── Storage (Parquet com SHA-256) │
└───────────────────────────────────────────────────────┘
│
▼
┌───────────────────────────────────────────────────────┐
│ Next.js estático (GitHub Pages) → saudeemdado.com │
│ JSON estático no build = egress ~zero no banco │
└───────────────────────────────────────────────────────┘
Automação (GitHub Actions): deploy · keep-alive (≤6 dias) · validação de dados
Onde cada fonte mora é declarado uma vez, em scripts/_fontes.py:
diretório FTP, prefixo S3 ou endpoint, com o padrão do nome do arquivo e o motivo escrito quando
não há o que observar. Pipelines e o observador semanal leem a mesma declaração — antes eram
cópias, e elas divergiram: o /dissemin/publicos/SIHSUS/200801_/Dados estava digitado em 8
arquivos, e o preliminar do SIM era lido pelo pipeline sem ser vigiado por ninguém.
Princípios: (1) agregar localmente, publicar só o essencial; (2) nenhum servidor de aplicação para
manter; (3) reprodutibilidade radical — todo número regenerável das fontes oficiais por um script aberto.
🚀 Como acessar
Site:saudeemdado.com — painéis de mortalidade, dengue, internações,
nascimentos, mapa municipal, tendências e boletim por município.
API REST pública (sem cadastro; chave de leitura em .env.example):
bash
URL="https://zekjhmxjamatlxpkykde.supabase.co/rest/v1"; KEY="<anon key>"# Municípios de MG por taxa padronizada de mortalidade (2023)
curl "$URL/mart_mortalidade_municipio?uf_sigla=eq.MG&ano=eq.2023&capitulo_cid=eq.TOTAL&sexo=eq.TOTAL&order=taxa_padronizada_100k.desc&limit=10" -H "apikey: $KEY"# Dengue por município/ano (incidência e letalidade)
curl "$URL/mart_dengue_municipio_ano?uf_sigla=eq.SP&ano_epi=eq.2024&order=incidencia_100k.desc&limit=10" -H "apikey: $KEY"
Servidor MCP — a saúde do Brasil consultável por IA (mcp_server/).
Conecte o Claude Desktop/Code e pergunte em linguagem natural. Expõe 41 ferramentas: consulta
(mortalidade, internações, dengue, ICSAP, fluxo de pacientes, visão hospitalar, excesso) e análise
(comparar_com_pares — município vs. estrato de saúde com percentis; canal_endemico_dengue —
diagrama de controle por UF; boletim_semanal — a edição vigente do boletim automático) — mais a
camada de confiabilidade (avisa quando o registro do município é pouco confiável) e o
detector de anomalias para briefing de gestor. Custo zero: roda no seu cliente e consome a API
pública — cada usuário traz o próprio Claude. Regras anti-alucinação embutidas: todo número vem
de uma ferramenta, com a fonte citada.
Os pipelines fazem download, agregam em streaming com checkpoint resumível e publicam via API.
A rotina de validação (.github/workflows/validate-data.yml)
confere mensalmente totais oficiais e conciliação entre marts.
Código de saída — três valores, não dois. "Rodou sem erro" e "veio dado novo" são perguntas
diferentes, e todo pipeline responde as duas (scripts/_saida.py):
Código
Significado
0
rodou certo e o mart mudou
1
falhou
2
rodou certo, e nada mudou desde a última vez
A novidade é medida pelo sha256 do mart, antes e depois da gravação — não por tamanho de
arquivo nem por contagem de linhas, que não distinguem duplicata de ausência. Reprocessar um ano
já processado sai com 2.
Atenção ao encadear: 2 é diferente de zero, e set -e, && e o run: do GitHub Actions leem
qualquer código != 0 como falha. Só o 1 é falha:
saude-publica-br/
│
├── site/ # Next.js 14, export estático → saudeemdado.com
│ ├── app/ # uma pasta por rota: painel, dengue, internacoes,
│ │ # nascimentos, mapa, tendencias, artigos, dados,
│ │ # metodologia, atencao-basica, boletim, hospitalar
│ ├── components/ # gráficos (Recharts), KPIs, navegação
│ ├── lib/ # regras puras e testáveis: municipios, completude,
│ │ # tokens de design, seções da metodologia
│ ├── content/ # artigos assinados (seção Análises)
│ └── scripts/ # gera o JSON estático durante o build
│
├── scripts/ # pipelines: SIM, SINAN, SIH, SINASC, CNES, IVS, SIOPS
├── ingestion/utils/ # bulk load (Parquet → COPY) e ledger de ingestão
├── dbt/ # modelos intermediate → marts
├── migrations/ # SQL versionado do Supabase, incluindo as políticas RLS
├── validation/ # suítes Great Expectations sobre os marts
├── ml/ # detector de anomalias e scoring em lote
├── data/refs/ # tabelas de referência (CID-10, municípios, população)
│
├── mcp_server/ # servidor MCP → PyPI: saudeemdado-mcp
├── clients/python/ # cliente da API → pacote saudeemdado
├── supabase/functions/ # Edge Functions do boletim por assinatura
│
├── .github/workflows/ # CI, deploy do site, boletim, publicação do MCP
├── docs/ # ADRs e notas de arquitetura
└── archive/ # a primeira arquitetura, aposentada — ver archive/README.md
📰 Análises
A seção Análises reúne artigos que cruzam os dados da plataforma
com leitura epidemiológica e estatística — da anatomia da epidemia de dengue de 2024 ao paradoxo do
sub-registro na relação vulnerabilidade × mortalidade.
Dezesseis fontes: SIM, SIH, SINAN, sífilis, SINASC, PNI, Painel de
Oncologia, CNES, convênios federais, SISCAN, SIA/SUS, SISAGUA, APS,
SIOPS, ANS e RHC/INCA
IVS oficial do IPEA — hoje dim_ivs é proxy do Censo 2022
(analfabetismo + sem água), e o nome não diz isso
SIH 2015–2021 — a série publicada começa em 2021
Imagens de capa próprias para a seção de Análises
🤝 Créditos e projetos relacionados
LabSUS (Lucas Amaral Dourado, Universidade Federal do Tocantins) — projeto acadêmico de inteligência em saúde pública que inspirou aqui o cruzamento saúde × vulnerabilidade, a detecção de surtos por canal endêmico e a nota de uso ético. Métodos de domínio público; nenhum código foi copiado.
Fontes primárias: DATASUS/Ministério da Saúde (SIM, SINAN, SIH, SINASC), IBGE (Censo 2022, Estimativas, malhas) e IPEA.
⚖️ Uso ético
Os indicadores são agregados e descritivos — não substituem julgamento técnico. Pede-se, de boa-fé,
que a plataforma não seja usada para discriminação no acesso à saúde, vigilância em massa de indivíduos
ou automação de decisões clínicas/de política pública sem supervisão profissional. Detalhes na LICENSE.
🔒 Segurança
Vulnerabilidades vão por canal privado — ver SECURITY.md. Leia
antes a seção sobre o que não é vazamento aqui: a chave anon do Supabase é
pública por desenho (é o que permite consultar a API sem cadastro), e os arquivos
.env versionados são templates com placeholders.
📄 Licença
Código sob licença MIT. Dados originais em domínio público (DATASUS/MS, IBGE, IPEA) — cite as
fontes primárias.
Metadados legíveis por gerenciadores de referência em CITATION.cff.
👤 Autor
Pedro Fernandes
Mestrando em Saúde Coletiva (IAMSPE) · Pós-graduando em Inteligência Artificial e Ciência de Dados em
Saúde (Hospital Sírio-Libanês) · Diretor de Tecnologia da Informação — Setor Público (SP)