list_csap_groups
Grupos CSAP (Portaria 221/2008)
Lista os 19 grupos de Condições Sensíveis à Atenção Primária (CSAP) conforme Portaria MS/SAS 221/2008. Retorna código, nome e códigos CID-10 de cada grupo.
group_codeinclude_cid_codesio.github.SidneyBissoli由 GitHub 账号 SidneyBissoli 发布v1.8.2更新于 Nov 3, 2026
DATASUS SIH/SUS hospital admissions in Brazil (AIH, 1992-2025): ICD-10 causes, ICSAP, rates.
发布方自己的服务:Tower and Wing: FHA-insured hospital loans (HUD Section 242)
用于查询巴西 SUS 住院数据(DATASUS SIH/SUS AIH,1992–2025)的 MCP 服务器,提供病因、ICSAP、趋势与发生率,并附数据来源信息。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。
阅读 https://sourceweft.com/mcp/io.github.SidneyBissoli%2Fsih-br-mcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。把它添加到你客户端的 mcpServers 配置中。
{
"mcpServers": {
"datasus-sih-sus-brazil-hospital-admissio": {
"type": "http",
"url": "https://sih.sidneybissoli.com/mcp"
}
}
}Servidor MCP (Model Context Protocol) que responde perguntas sobre as internações
hospitalares do SUS — o SIH/SUS do DATASUS, AIH reduzida — dentro do assistente de
IA, sem TabNet, sem baixar .dbc do FTP e sem escrever SQL. Doze ferramentas sobre
34 anos (1992 a 2025, 420.103.883 internações): causas por capítulo e grupo da
CID-10 (CID-9 antes de 1998), séries mensais, ICSAP — internações por condições
sensíveis à atenção primária, lista brasileira — e taxas brutas, específicas ou
padronizadas por idade, por UF e por município. Cada estrato traz internações, dias de
permanência, valor pago pelo SUS e óbitos, com a proveniência da safra e a citação
da fonte em cada resposta.
In English. MCP server for Brazilian hospital admissions (DATASUS SIH/SUS, "AIH" records), 1992–2025: causes by ICD-10 chapter and group (ICD-9 before 1998), monthly series, ambulatory care sensitive conditions (ICSAP/ACSC, Brazilian list) and crude, age-specific or age-standardized rates by state and municipality — answered inside Claude, ChatGPT or any MCP client, with provenance and a citation in every answer. No FTP download, no DBC decoding, no SQL:
npx -y sih-br-mcp.
Em linguagem comum, no cliente MCP: quem escolhe a ferramenta e os parâmetros é o assistente.
get_hospitalizations)get_icsap_indicators)get_hospitalization_rates, compare_regions)rank_csap_groups)get_hospitalization_trends)classify_as_csap)Quem trabalha com SIH/SUS em R ou Python já tem ferramentas consolidadas, e este
servidor não substitui nenhuma delas — ele ocupa um lugar diferente da cadeia:
responde a pergunta agregada no ponto onde ela é feita, dentro do assistente, sem
ETL e sem download de microdado. Detalhe, exemplos lado a lado e os números medidos
em docs/comparativo-alternativas.md.
Não use este servidor quando a pergunta exigir o registro individual da AIH,
variáveis que os cubos não carregam (procedimento realizado, CNES do estabelecimento,
caráter de atendimento, diagnóstico secundário) ou outro sistema do DATASUS (SIM,
SINASC, SIA, SINAN) — nesses casos o caminho é microdatasus, PySUS ou o espelho
Parquet do healthbr-data. O que os
cubos carregam por estrato está em
docs/tool-specifications.md: internações, dias de
permanência, valor pago (R$) e óbitos, por ano, mês, UF, município, capítulo e grupo
CID, sexo, idade, raça/cor e grupo ICSAP.
Este servidor é consumidor do canal público sih/cubos/ do projeto
healthbr-data:
Até 08/09/2026 o builder dos cubos vivia aqui (scripts/build-aggregations.R,
rebuild-cubes.yml); desde então o produtor é o healthbr-data e este repositório
não gera nem publica cubo nenhum (CONTEXT.md, decisão 27). A receita completa está
em healthbr-data/scripts/pipeline/sih-cubos/README.md e no card
sih-cubos.
~/.cache/sih-br-mcp/cubos/ (SIH_CACHE_DIR), com o sidecar
sih_provenance_<ano>.json ao lado. SIH_CUBES_BASE_URL aponta outro canal;
SIH_CUBES_CACHE=off desliga (smoke e golden usam).src/upstream.ts (fetch comum do portfólio,
@sbissoli/mcp-upstream, desde a 1.1.0): User-Agent, 15 s por tentativa até os
cabeçalhos, 2 retries em 429/5xx/rede com backoff, corpo em stream sob o prazo do
arquivo; a política foi medida contra o canal (55 MB em 1,2 s) e está documentada
no cabeçalho do módulo. O bloco de proveniência de cada resposta segue o contrato
v1.3 (desde a 1.7.1): traz retrieval (quantas idas, tentativas e anomalias a
chamada custou ao canal — null quando a resposta veio do disco), revision
(provisional quando algum ano consultado ainda tem competências abertas,
current nos demais), derived + derivation_note nos blocos dos cubos e
notices quando há aviso (cubo atrás do espelho, frescor não verificado).src/freshness.ts compara o sidecar com sih/rd/manifest-summary.json
e avisa quando um cubo está atrás do espelho; quem reconstrói é o produtor
(rebuild-sih-cubes.yml, toda terça e após cada manutenção do espelho).icsap_summary, desde a 0.14.0, e causas_summary,
desde a 0.15.0): atalhos DERIVADOS dos cubos publicados, no mesmo canal. O da
ICSAP é um resumo de 276 KB mais os estratos por ano; o de causas é o grão A
(sih_causas_resumo.parquet, 569 KB com os 34 anos: year × uf × cid_chapter × cid_revision × is_csap × exclusion com internações, dias, valor e óbitos) mais o
grão B por ano, que acrescenta sexo, faixa etária quinquenal e raça. Uma
chamada que cabe no grão responde sem baixar cubo nenhum — "internações e gasto
por ano desde 1992" custa 569 KB em vez de 1,25 GB. O roteamento é conservador:
o que não cabe (mês, categoria CID de 3 dígitos, grupo CSAP, idade fora das
faixas quinquenais) cai no cubo e sai exato. Cada ano só usa o pré-agregado se o
derived_from do manifesto ainda bater com o SHA-256 do cubo publicado; rebuild
sem nova derivação devolve aquele ano ao caminho lento, nunca ao número errado.src/data/): cópias do contrato publicado em
sih/cubos/tables/; npm run tables:check confere o SHA-256 contra o manifesto
(roda no CI). Nunca edite aqui — a fonte é o produtor.pop_uf.parquet, pop_uf_agregado.parquet, pop_municipios.parquet):
desde a 0.12.0 vem do mesmo canal, assinada no bloco population do manifest.json
(produtor: build-population.R + build-sih-population.yml do healthbr-data — IBGE,
Projeção 2024 por UF; DATASUS POPBR/POPSVS por município). As ferramentas de taxa
(get_hospitalization_rates, compare_icsap_trends com rate_per_10k) e
get_available_years baixam os três arquivos para o cache na primeira chamada,
com SHA-256 conferido; uma pasta de dados que já tenha pop_uf.parquet tem
precedência (fixture, build local). A proveniência da população responde com o
built_at do manifesto.Pacote no npm: sih-br-mcp (Node 22+).
Ele não embarca dado nenhum — cubos, tabelas e população vêm do canal na primeira
chamada e ficam no cache local.
Configuração num cliente MCP (Claude Desktop, Claude Code):
A partir do código-fonte:
Variáveis: SIH_DATA_DIR (pasta com cubos já prontos, em vez do cache),
SIH_CACHE_DIR, SIH_CUBES_BASE_URL, SIH_CUBES_CACHE=off,
SIH_FRESHNESS_CHECK=off.
As mesmas 12 ferramentas por HTTP, para conectores remotos (claude.ai):
PORT e SIH_HTTP_HOST além das variáveis acima. Sem sessão: cada request
cria servidor e transporte novos, então qualquer instância atende qualquer
chamada. Em produção roda num Cloudflare Container (Dockerfile, população
pré-baixada na imagem) atrás do Worker de borda em worker/, que cuida de
domínio, rate limit, autenticação opcional e medição — desenho e custos em
docs/plan-004-servidor-remoto.md.
O CI (.github/workflows/ci.yml) roda tudo isso em Node 22 e 24. A fixture
tests/fixtures/sih/ é uma cópia real dos cubos de 2023/RR gerados pelo builder
(hoje no healthbr-data) — é o que torna medível qualquer bump.
A divisão de trabalho entre as duas famílias: os scripts em scripts/*.mjs
pinam VALORES (mudou um número, o baseline acusa); a suíte de tests/*.test.ts
afirma INVARIANTES (qual cubo responde a pergunta; toda resposta sai com
proveniência, com o texto igual à estrutura e obedecendo ao outputSchema que
o tools/list publica — validado com o mesmo validador do SDK), e por isso
republicar um cubo não a move. Cada ferramenta tem ali um caso CHEIO e um caso
MAGRO — a resposta com os campos opcionais ausentes, que o golden, sempre com
fixture cheia, não alcança — e o caminho de erro-mole ("ano sem dado") também
é validado. Os esquemas de saída estão em src/output-schemas.ts, escritos à
mão a partir das formas medidas, como os de entrada.
Cada release publica, na sua entrada do MCP Registry,
o sha256 da superfície que esta versão serve (initialize, ferramentas, resources, prompts) e
quais métodos respondem sem credencial. Mudar a superfície sem subir a versão reprova o build
(surface.lock.json); a impressão digital no registro deixa o cliente conferir o mesmo do lado
dele. Forma canônica e procedimento: SPEC.md do @sbissoli/mcp-surface
(em inglês). Para conferir por conta própria (Node 18+, sem dependência):
Quem mantém: npm run surface:lock grava o bloco no server.json (mcp-surface registro),
o teste da trava reprova server.json defasado, e o publish.yml termina com
mcp-surface conferir-registro — a entrada desta versão no registro contra o endpoint no ar,
como um cliente, sem ler a trava. Ideia de dois leitores do artigo do replay no dev.to
(Mike Dabydeen e Valentina Koniukhova).
CONTEXT.md — decisões arquiteturais numeradas (a 27 é a migração do produtor; a 29, o servidor remoto).docs/analise-001 (janela de competências), analise-002 (era CID-9, 1992–1997),
analise-003 (lista ICSAP em CID-9 derivada), plan-002 (DuckDB Node Neo),
plan-003 (rebuild automático, hoje no healthbr-data), plan-004 (servidor remoto
HTTPS para o claude.ai), plan-005 (série pré-agregada da ICSAP), plan-006
(cubo de causas pré-agregado), tool-specifications.md.MIT (LICENSE). Os dados são do Ministério da Saúde / DATASUS; a redistribuição em
Parquet e os cubos derivados são do healthbr-data (CC-BY-4.0).
来源:README.md,提交 6f54396
Grupos CSAP (Portaria 221/2008)
Lista os 19 grupos de Condições Sensíveis à Atenção Primária (CSAP) conforme Portaria MS/SAS 221/2008. Retorna código, nome e códigos CID-10 de cada grupo.
group_codeinclude_cid_codesCapítulos da CID-10
Lista os 22 capítulos da CID-10 com seus códigos e faixas de diagnóstico. Os cubos de 1992–1997 (diagnóstico em CID-9) trazem `cid_chapter` como o capítulo CID-10 equivalente (mapa por categoria em src/data/cid9-chapters.json).
无需输入参数。
Anos disponíveis e frescor dos cubos
Retorna os anos disponíveis nos dados do SIH-SUS carregados e o frescor dos cubos em relação ao espelho healthbr-data (`freshness.status`: current, stale, unknown, pending ou disabled; quando stale, lista por ano as partições reeditadas pelo MS, regeneradas, retiradas ou novas na janela). Por ano, o que muda entre as eras do SIH: `race_available` (raça/cor só de 2008), `cid_revision` (9 = CID-9 de 6 dígitos em 1992–1997, 10 = CID-10; 1997 tem as duas), `icsap_list_revision` (cid9-derivada, não oficial, em 1992–1997), `uf_basis` (arquivo em 1992–1997, residencia de 1998), `municipality_available`, `currency` e `records_date_imputed`.
无需输入参数。
Internações do SUS com filtros
Consulta dados de internações hospitalares do SUS com filtros flexíveis. Permite agregar por múltiplas dimensões (UF, CID, sexo, idade, raça, ano/mês). Raça/cor só existe de 2008 em diante: em 1998–2007 `race` é nulo (ver get_available_years.race_available). Série desde 1992: em 1992–1997 o diagnóstico é CID-9 decodificado por tabela (`cid_group` = categoria de 3 dígitos, `cid_chapter` = capítulo CID-10 equivalente; agrupar por `cid_revision` separa 9 e 10 — 1997 tem os dois), `uf` é a UF do ARQUIVO (estabelecimento), não de residência, e `value` é nominal na moeda da época — ver get_available_years (uf_basis, currency) e as `notes` da resposta. `exclusion` (agrupável) marca as internações fora do universo do % ICSAP do csapAIH (procedimento_obstetrico, parto, longa_permanencia; nula = dentro).
ufsexraceyearlimitmonthage_maxage_minis_csapgroup_bycid_chapterSéries temporais de internações
Retorna séries temporais de internações (mensal ou anual). Útil para análise de tendências e sazonalidade. O ano e o mês são os da INTERNAÇÃO (DT_INTER), não a competência de faturamento; o ano mais recente cresce até a janela dele fechar (AIH faturada com atraso), e o DATASUS reedita arquivos de competências passadas — cada número é a versão do download do espelho. Série desde 1992; em 1992–1997 `uf` é a UF do arquivo (estabelecimento) e as internações sem data na fonte (1992-01..04 e 1993-01) entram no mês de faturamento — ver get_available_years e as `notes`.
ufyear_end必填year_start必填cid_chaptergranularityComparação entre UFs e regiões
Compara internações entre UFs ou regiões do Brasil. Gera rankings e identifica variações regionais. Em 1992–1997 `uf` é a UF do arquivo (estabelecimento), não de residência — ver get_available_years.uf_basis e as `notes`.
yearlimitmetricis_csapcompare_bycid_chapterInternações por condições sensíveis (ICSAP)
Consulta internações por Condições Sensíveis à Atenção Primária (ICSAP). Permite filtros por grupo CSAP, UF, município, sexo, idade e raça. Raça/cor só existe de 2008 em diante: em 1998–2007 `race` é nulo (ver get_available_years.race_available). Série desde 1992: em 1992–1997 a ICSAP vem de lista CID-9 DERIVADA e não oficial (g03 e g05 não comparáveis com 1998+), `uf` é a UF do arquivo e `municipality_code` é nulo — ver get_available_years (icsap_list_revision, uf_basis) e as `notes`. Percentual no universo do pacote R csapAIH por padrão (`universe`): fora do numerador e do denominador as internações por procedimento obstétrico, parto e longa permanência.
ufsexraceyearage_maxage_mingroup_byuniversecsap_groupmunicipality_codeIndicadores de ICSAP
Calcula indicadores de ICSAP: percentual (ICSAP/Total×100). Métricas-chave para avaliar a Atenção Primária. Agrupar por raça só faz sentido de 2008 em diante: em 1998–2007 `race` é nulo (ver get_available_years.race_available). Em 1992–1997 a ICSAP vem de lista CID-9 DERIVADA e não oficial (g03 e g05 não comparáveis com 1998+) e `uf` é a UF do arquivo — ver as `notes`. Percentual no universo do pacote R csapAIH por padrão (`universe`): fora do numerador e do denominador as internações por procedimento obstétrico, parto e longa permanência.
ufsexyearage_maxage_mingroup_byuniversemunicipality_codeRanking dos grupos CSAP
Gera ranking dos 19 grupos CSAP por número de internações, dias de internação ou valor. Identifica principais causas evitáveis. Em 1992–1997 a ICSAP vem de lista CID-9 DERIVADA e não oficial (g03 e g05 não comparáveis com 1998+) e `value` é nominal na moeda da época — ver as `notes`. Universo do pacote R csapAIH por padrão (`universe`): fora as internações por procedimento obstétrico, parto e longa permanência.
ufsexyearlimitmetricage_maxage_minuniverseClassificar CID-10 como CSAP
Classifica um ou mais códigos CID-10 como CSAP ou não. Retorna o grupo CSAP correspondente se aplicável. Aceita as duas notações do mesmo código — `J18.1` (OMS) e `J181` (SIH) — com a mesma resposta. Código que NÃO é CID-10 não é classificado: volta com `is_csap: null` e `error` próprio, nunca `false` (que afirmaria que a condição existe e não é sensível). Só CID-10: os códigos CID-9 de 6 dígitos do SIH de 1992–1997 são classificados no build pela lista derivada (src/data/csap-groups-cid9.json), não por esta ferramenta.
cid_codes必填Taxas de internação por população
Calcula taxas de internação por população. A taxa sai em `rate`, na base declarada em `rate_per` (1000, 10000 ou 100000; default 100000). Denominador lido de dois arquivos, informados em get_available_years.population_years: projeções do IBGE por idade simples de 2000 em diante (pop_uf.parquet) e, de 1991 a 1999, população por faixa etária quinquenal somada dos municípios (pop_uf_agregado.parquet) — antes de 2000 o recorte por idade só vale nos limites das faixas (age_min múltiplo de 5, age_max terminado em 4 ou 9, ou 80+). A resposta diz qual arquivo serviu a cada ano (population_source) e avisa quando mistura os dois.
ufsexyearage_maxage_minis_csapgroup_byrate_perrate_typecid_chapterTendências comparativas de ICSAP
Análise temporal comparativa de ICSAP entre UFs ou grupos CSAP. Calcula tendências, variação anual e identifica melhores/piores desempenhos. Para `percentage` e `count` valem todos os anos do SIH (desde 1992); `rate_per_10k` exige população e aceita só os anos de get_available_years.population_years. Em 1992–1997 a ICSAP vem de lista CID-9 DERIVADA e não oficial (g03 e g05 não comparáveis com 1998+) e `uf` é a UF do arquivo — ver as `notes`. Percentual no universo do pacote R csapAIH por padrão (`universe`): fora do numerador e do denominador as internações por procedimento obstétrico, parto e longa permanência.
end_year必填universeindicatorcompare_bystart_year必填compare_valuesinclude_trend_line已满足适用检查项的 100%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
loans.hospital官方发布者
Tower and Wing: FHA-insured hospital loans (HUD Section 242) 的托管 MCP 服务,由 hospital.loans 发布;无需登录;Streamable HTTP;4 个工具。

由 GitHub 账号 pipeworx-io 发布
hospital-prices——美国医院对某项服务的收费:总收费、自费价格以及……AI 翻译

由 GitHub 账号 jmshinhwa 发布
本地 MCP 服务器,用 15 条离线规则按 45 CFR Part 180 与 CMS 模板检查医院标准收费 JSON。
Ministério da Saúde / DATASUS (RD<UF><AAMM>.dbc, FTP) → healthbr-data sih/rd/ (Parquet 1:1, manifesto com MD5 e data de download) → healthbr-data pipeline sih-cubos (scripts/pipeline/sih-cubos/build-aggregations.R) → https://data.sidneybissoli.com/sih/cubos/ (cubos + sidecar por ano + manifest.json + tables/) → este servidor (cache local sob demanda, SHA-256 conferido contra o manifesto)npx -y sih-br-mcp # stdio{ "mcpServers": { "sih": { "command": "npx", "args": ["-y", "sih-br-mcp"] } } }npm installnpm run buildnode dist/index.js # stdionpm run start:http # http://localhost:8080/mcp (GET /healthz para sondar)npm ci && npm run buildnpm test # vitest: decisão de rota (puro) + envelope e outputSchema das 12 (caso cheio e caso magro)npm run smoke:stdio # superfície das ferramentas × baselines/surface-stdio.jsonnpm run smoke:http # mesma superfície e chamadas pelo transporte HTTP (dist/http.js)npm run golden:tools # 12 ferramentas byte a byte × baselines/golden-tools.json (fixture 2023/RR)npm run freshness:selftest # frescor offline sobre um trecho versionado do manifestonpm run cache:selftest # cache local (download + SHA-256) contra um canal falsonpm run tables:check # tabelas de src/data × manifesto do canalnpm run equiv:summary # pré-agregados da ICSAP × caminho clássico, byte a bytenpm run equiv:series # roteamento para o cubo leve de sériesnpm run equiv:causas # pré-agregados de causas (grão A e B) × cubo, byte a bytecurl -sO https://raw.githubusercontent.com/SidneyBissoli/mcp-br-commons/main/packages/mcp-surface/exemplos/verify.mjsnode verify.mjs io.github.SidneyBissoli/sih-br-mcp