# DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP (remote · sih.sidneybissoli.com)

DATASUS SIH/SUS hospital admissions in Brazil (AIH, 1992-2025): ICD-10 causes, ICSAP, rates.

- Trust score: 82/100 (high trust)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `sih.sidneybissoli.com`: 82/100 (this document), [markdown](https://verifymcp.io/servers/sidneybissoli-sih-br-mcp/sih.md), [page](https://verifymcp.io/servers/sidneybissoli-sih-br-mcp/sih)
- npm · `sih-br-mcp`: 92/100, [markdown](https://verifymcp.io/servers/sidneybissoli-sih-br-mcp/sih-br-mcp.md), [page](https://verifymcp.io/servers/sidneybissoli-sih-br-mcp/sih-br-mcp)

## Channel facts

- Endpoint: `https://sih.sidneybissoli.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.8.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 59/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3611 tokens (~300/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 12 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 13 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP server?

DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP is a hosted endpoint at https://sih.sidneybissoli.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http sidneybissoli-sih-br-mcp 'https://sih.sidneybissoli.com/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "sidneybissoli-sih-br-mcp": {
      "url": "https://sih.sidneybissoli.com/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "sidneybissoli-sih-br-mcp": {
      "type": "http",
      "url": "https://sih.sidneybissoli.com/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.sidneybissoli-sih-br-mcp]
url = "https://sih.sidneybissoli.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sidneybissoli-sih-br-mcp": {
      "type": "remote",
      "url": "https://sih.sidneybissoli.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add sidneybissoli-sih-br-mcp --url 'https://sih.sidneybissoli.com/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  sidneybissoli-sih-br-mcp:
    url: "https://sih.sidneybissoli.com/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "sidneybissoli-sih-br-mcp": {
      "Transport": "http",
      "Url": "https://sih.sidneybissoli.com/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add sidneybissoli-sih-br-mcp -t streamable-http -u 'https://sih.sidneybissoli.com/mcp'
```

### Other

```json
{
  "mcpServers": {
    "sidneybissoli-sih-br-mcp": {
      "type": "http",
      "url": "https://sih.sidneybissoli.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-02 (score 82, 0)

- [functional] Server version: 1.8.1 → 1.8.2

### 2026-10-28 (score 82, 0)

- [functional] Server version: 1.8.0 → 1.8.1

### 2026-10-25 (score 82, 0)

- [security] Stability: 0.97 → pass

### 2026-10-24 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-22 (score 81, +1)

No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-20 (score 80, +1)

No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-18 (score 79, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-16 (score 78, 0)

- [functional] Server version: 1.7.0 → 1.8.0

## MCP tools (12)

### `list_csap_groups` (~104 tokens)

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.

Input parameters:

- `group_code` (string): Código do grupo específico (ex: 'g01'). Se omitido, retorna todos.
- `include_cid_codes` (boolean): Se true, inclui lista de códigos CID-10 (default: false)

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `error` (string): Grupo CSAP não encontrado
- `group` (object): O grupo pedido por `group_code`
- `groups` (array): Os 19 grupos, na ordem da Portaria
- `provenance` (object): Bloco de proveniência do portfólio: fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando há o que dizer, avisos, o que o servidor calculou e se o número ainda pod…
- `source` (string): Norma que define a lista (Portaria MS/SAS 221/2008)
- `total_groups` (number): Número de grupos na lista (19)

### `list_cid_chapters` (~76 tokens)

Capí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).

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `chapters` (array): Os capítulos, na ordem da CID
- `provenance` (object): Bloco de proveniência do portfólio: fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando há o que dizer, avisos, o que o servidor calculou e se o número ainda pod…
- `total_chapters` (number): Número de capítulos (22)

### `get_available_years` (~205 tokens)

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`.

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `cid_revision` (object): Internações por revisão da CID — chave é o ano (string)
- `csap_universe` (object): Universo do % ICSAP — chave é o ano (string)
- `cubes_channel` (object): Canal público dos cubos e cache local
- `currency` (object): Moeda de `value` — chave é o ano (string)
- `data_range` (object): Intervalo dos anos locais
- `error` (string): Falha ao listar os anos
- `freshness` (object): Frescor dos cubos locais frente ao espelho healthbr-data
- `icsap_available` (object): ICSAP disponível — chave é o ano (string)
- `icsap_list_revision` (object): Lista ICSAP por revisão da CID — chave é o ano (string)
- `municipality_available` (object): Município disponível — chave é o ano (string)
- `note` (string): Aviso sobre o que `years` significa
- `population_years` (object|null): Cobertura dos arquivos de população por UF: o que as ferramentas de taxa aceitam
- `provenance` (object): Bloco de proveniência do portfólio: fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando há o que dizer, avisos, o que o servidor calculou e se o número ainda pod…
- `race_available` (object): Raça/cor disponível — chave é o ano (string)
- `records_date_imputed` (object): Datas imputadas — chave é o ano (string)
- `uf_basis` (object): Base do eixo `uf` — chave é o ano (string)
- `years` (array): Anos com cubos Parquet presentes localmente
- `years_cid9` (array): Anos em que o cubo usa CID-9 (1992–1997)
- `years_uf_arquivo` (array): Anos em que `uf` é a do estabelecimento (1992–1997)
- `years_without_race` (array): Anos sem raça/cor (1998–2007)

### `get_hospitalizations` (~489 tokens)

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).

Input parameters:

- `age_max` (integer): Idade máxima em anos
- `age_min` (integer): Idade mínima em anos
- `cid_chapter` (array): Capítulos CID-10 (1-22). Se omitido, todos.
- `group_by` (array): Dimensões para agrupamento
- `is_csap` (boolean): Filtrar apenas CSAP (true) ou não-CSAP (false)
- `limit` (integer): Limitar número de resultados
- `month` (array): Meses (1-12). Se omitido, todos.
- `race` (array): Raça/cor (branca, preta, parda, amarela, indigena, ignorado). Só existe de 2008 em diante: em 1998–2007 race é nulo e o filtro não alcança esses anos.
- `sex` (string): Filtrar por sexo
- `uf` (array): Lista de UFs (ex: ['SP', 'RJ']). Se omitido, todas.
- `year` (array): Anos para consultar (ex: [2023, 2024]); série de 1992 em diante

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `available_sih_years` (array): Anos com dados SIH atendíveis por este servidor
- `data` (array): Linhas agrupadas (vazio no caminho de erro-mole)
- `error` (string): Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)
- `filters_applied` (object): Os argumentos recebidos, ecoados
- `note` (string): Como obter o dado (por exemplo, consultar get_available_years)
- `notes` (array): Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento
- `provenance` (object): Bloco de proveniência do portfólio: fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando há o que dizer, avisos, o que o servidor calculou e se o número ainda pod…
- `published_years` (array): Anos que o canal de cubos publica — a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado
- `summary` (object): Totais do recorte inteiro (não do trecho devolvido, quando truncado)
- `truncated` (object): Presente só quando `data` foi truncado no teto de linhas; os totais em `summary` são do conjunto inteiro
- `years_not_available` (object): Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos

### `get_hospitalization_trends` (~229 tokens)

Sé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`.

Input parameters:

- `cid_chapter` (integer): Capítulo CID-10 específico
- `granularity` (string): Granularidade temporal (default: yearly)
- `uf` (array): UFs para filtrar
- `year_end` (integer, required): Ano final
- `year_start` (integer, required): Ano inicial

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `available_sih_years` (array): Anos com dados SIH atendíveis por este servidor
- `data` (array): Sempre vazio: só aparece no caminho de erro-mole do funil
- `error` (string): Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)
- `granularity`: Grão da série
- `note` (string): Como obter o dado (por exemplo, consultar get_available_years)
- `notes` (array): Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento
- `period` (object): Intervalo pedido
- `provenance` (object): Bloco de proveniência do portfólio: fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando há o que dizer, avisos, o que o servidor calculou e se o número ainda pod…
- `published_years` (array): Anos que o canal de cubos publica — a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado
- `series` (array): Um ponto por ano ou por mês, em ordem cronológica
- `years_not_available` (object): Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos

### `compare_regions` (~154 tokens)

Comparaçã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`.

Input parameters:

- `cid_chapter` (integer): Capítulo CID-10 específico
- `compare_by` (string): Comparar por UF ou região (default: uf)
- `is_csap` (boolean): Filtrar apenas CSAP
- `limit` (integer): Número de resultados (default: 10)
- `metric` (string): Métrica para ranking (default: n)
- `year` (array): Anos para consultar

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `available_sih_years` (array): Anos com dados SIH atendíveis por este servidor
- `compare_by`: Eixo da comparação (hoje ambos agrupam por UF)
- `data` (array): Sempre vazio: só aparece no caminho de erro-mole do funil
- `error` (string): Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)
- `metric`: Métrica que ordena o ranking
- `note` (string): Como obter o dado (por exemplo, consultar get_available_years)
- `notes` (array): Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento
- `provenance` (object): Bloco de proveniência do portfólio: fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando há o que dizer, avisos, o que o servidor calculou e se o número ainda pod…
- `published_years` (array): Anos que o canal de cubos publica — a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado
- `ranking` (array): Ranking em ordem decrescente da métrica
- `total_locations` (number): Quantas localidades no ranking
- `years_not_available` (object): Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos

### `get_icsap` (~449 tokens)

Internaçõ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.

Input parameters:

- `age_max` (integer): Idade máxima
- `age_min` (integer): Idade mínima
- `csap_group` (array): Grupos CSAP (ex: ['g01', 'g05'])
- `group_by` (array): Dimensões para agrupamento
- `municipality_code` (string): Código IBGE do município (6 dígitos)
- `race` (array): Raça/cor (branca, preta, parda, amarela, indigena, ignorado). Só existe de 2008 em diante: em 1998–2007 race é nulo e o filtro não alcança esses anos.
- `sex` (string): Filtrar por sexo
- `uf` (array): UFs para filtrar
- `universe` (string): Universo do % ICSAP: 'csapaih' (padrão) tira do numerador e do denominador as internações por procedimento obstétrico, com diagnóstico de parto (O80-O84) e as AIH de longa permanência, como o pacote…
- `year` (array): Anos para consultar

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `available_sih_years` (array): Anos com dados SIH atendíveis por este servidor
- `data` (array): Linhas agrupadas (vazio no caminho de erro-mole)
- `error` (string): Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)
- `filters_applied` (object): Os argumentos recebidos, ecoados
- `note` (string): Como obter o dado (por exemplo, consultar get_available_years)
- `notes` (array): Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento
- `provenance` (array): Um bloco por procedência que contribuiu com esta resposta (SIH, lista CSAP, csapAIH, população…); licenças nunca se fundem
- `published_years` (array): Anos que o canal de cubos publica — a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado
- `summary` (object): Totais do recorte inteiro, calculados sem agrupamento
- `truncated` (object): Presente só quando `data` foi truncado no teto de linhas; os totais em `summary` são do conjunto inteiro
- `years_not_available` (object): Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos

### `get_icsap_indicators` (~330 tokens)

Indicadores 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.

Input parameters:

- `age_max` (integer): Idade máxima
- `age_min` (integer): Idade mínima
- `group_by` (array): Dimensões para agrupamento
- `municipality_code` (string): Código IBGE do município
- `sex` (string): Filtrar por sexo
- `uf` (array): UFs para calcular
- `universe` (string): Universo do % ICSAP: 'csapaih' (padrão) tira do numerador e do denominador as internações por procedimento obstétrico, com diagnóstico de parto (O80-O84) e as AIH de longa permanência, como o pacote…
- `year` (array): Anos para calcular

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `available_sih_years` (array): Anos com dados SIH atendíveis por este servidor
- `data` (array): Um estrato por linha (vazio no caminho de erro-mole)
- `error` (string): Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)
- `indicators_calculated` (array): Indicadores presentes nas linhas (icsap_percentage)
- `note` (string): Fórmula do indicador — ou, no caminho de erro-mole, como obter o dado
- `notes` (array): Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento
- `provenance` (array): Um bloco por procedência que contribuiu com esta resposta (SIH, lista CSAP, csapAIH, população…); licenças nunca se fundem
- `published_years` (array): Anos que o canal de cubos publica — a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado
- `truncated` (object): Presente só quando `data` foi truncado no teto de linhas; os totais em `summary` são do conjunto inteiro
- `years_not_available` (object): Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos

### `rank_csap_groups` (~289 tokens)

Ranking 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.

Input parameters:

- `age_max` (integer): Idade máxima
- `age_min` (integer): Idade mínima
- `limit` (integer): Número de grupos no ranking (default: 19)
- `metric` (string): Métrica para ranking (default: n)
- `sex` (string): Filtrar por sexo
- `uf` (array): UFs para filtrar
- `universe` (string): Universo do % ICSAP: 'csapaih' (padrão) tira do numerador e do denominador as internações por procedimento obstétrico, com diagnóstico de parto (O80-O84) e as AIH de longa permanência, como o pacote…
- `year` (array): Anos para consultar

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `available_sih_years` (array): Anos com dados SIH atendíveis por este servidor
- `concentration` (object): Concentração da métrica nos primeiros grupos do ranking (soma de `pct_of_total`, duas casas)
- `data` (array): Sempre vazio: só aparece no caminho de erro-mole do funil
- `error` (string): Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)
- `metric`: Métrica que ordena
- `note` (string): Como obter o dado (por exemplo, consultar get_available_years)
- `notes` (array): Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento
- `provenance` (array): Um bloco por procedência que contribuiu com esta resposta (SIH, lista CSAP, csapAIH, população…); licenças nunca se fundem
- `published_years` (array): Anos que o canal de cubos publica — a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado
- `ranking` (array): Ranking em ordem decrescente da métrica
- `total_groups` (number): Quantos grupos no ranking
- `years_not_available` (object): Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos

### `classify_as_csap` (~197 tokens)

Classificar 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.

Input parameters:

- `cid_codes` (array, required): Códigos CID-10 para classificar (ex: ['J18', 'A09', 'K35'])

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `classifications` (array): Uma entrada por código, na ordem informada
- `error` (string): Só quando houver código não classificado: quantos foram e para onde olhar
- `provenance` (object): Bloco de proveniência do portfólio: fonte, URL, competência, extração, diagnóstico de origem, citação e licença; e, só quando há o que dizer, avisos, o que o servidor calculou e se o número ainda pod…
- `summary` (object): Contagem dos códigos informados: sensíveis, não sensíveis e não classificados

### `get_hospitalization_rates` (~337 tokens)

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.

Input parameters:

- `age_max` (integer): Idade máxima
- `age_min` (integer): Idade mínima
- `cid_chapter` (array): Capítulos CID-10 (1-22)
- `group_by` (array): Dimensões para agrupamento
- `is_csap` (boolean): Filtrar apenas CSAP
- `rate_per` (integer): Taxa por X habitantes (default: 100000)
- `rate_type` (string): Tipo de taxa: crude (bruta) ou specific (específica por filtro)
- `sex` (string): Filtrar por sexo
- `uf` (array): UFs para filtrar
- `year` (array): Anos para calcular

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `available_sih_years` (array): Anos com dados SIH atendíveis por este servidor
- `data` (array): Um estrato por linha (vazio quando não há internação no recorte)
- `error` (string): Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)
- `metadata` (object): De onde veio o denominador (arquivo de população por ano, avisos) e os argumentos efetivamente atendidos
- `note` (string): Como obter o dado (por exemplo, consultar get_available_years)
- `notes` (array): Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento
- `population_years` (object): Cobertura dos arquivos de população por UF: o que as ferramentas de taxa aceitam
- `provenance` (array): Um bloco por procedência que contribuiu com esta resposta (SIH, lista CSAP, csapAIH, população…); licenças nunca se fundem
- `published_years` (array): Anos que o canal de cubos publica — a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado
- `summary` (object): Totais somados sobre as linhas de `data` e a taxa do conjunto
- `truncated` (object): Presente só quando `data` foi truncado no teto de linhas; os totais em `summary` são do conjunto inteiro
- `years_not_available` (object): Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos

### `compare_icsap_trends` (~362 tokens)

Tendê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.

Input parameters:

- `compare_by` (string): Comparar por UF ou grupo CSAP
- `compare_values` (array): Valores específicos para comparar (UFs ou grupos CSAP)
- `end_year` (integer, required): Ano final
- `include_trend_line` (boolean): Incluir análise de tendência linear (default: true)
- `indicator` (string): Indicador: percentage (% ICSAP), count (número), rate_per_10k (taxa)
- `start_year` (integer, required): Ano inicial
- `universe` (string): Universo do % ICSAP: 'csapaih' (padrão) tira do numerador e do denominador as internações por procedimento obstétrico, com diagnóstico de parto (O80-O84) e as AIH de longa permanência, como o pacote…

Output parameters:

- `attribution` (array): URLs canônicas das fontes desta resposta (lista de atribuição)
- `available_sih_years` (array): Anos com dados SIH atendíveis por este servidor
- `compare_by` (string): Eixo comparado: uf, csap_group ou total (sem eixo)
- `data` (array): Sempre vazio: só aparece no caminho de erro-mole do funil
- `error` (string): Motivo pelo qual não há dados nesta resposta (ano sem dado, cobertura populacional, falha na consulta)
- `indicator`: Indicador das séries
- `note` (string): Como obter o dado (por exemplo, consultar get_available_years)
- `notes` (array): Avisos que qualificam os números: era CID-9, raça/cor ausente, universo do % ICSAP, denominador populacional, truncamento
- `period` (object): Intervalo de anos pedido
- `population_years` (object): Cobertura populacional; só no erro-mole de `rate_per_10k` fora do intervalo
- `provenance` (array): Um bloco por procedência que contribuiu com esta resposta (SIH, lista CSAP, csapAIH, população…); licenças nunca se fundem
- `published_years` (array): Anos que o canal de cubos publica — a verdade do canal, distinta do que esta instância tem em disco; só com o cache de cubos ligado
- `series` (array): Pontos em ordem cronológica
- `summary` (object): Melhor e pior evolução entre os valores comparados (pela variação entre as pontas) e como ler o indicador; vazio quando não há o que dizer
- `trends` (object): Tendência por valor comparado; só com `include_trend_line` e ao menos dois anos — ausente quando desligada
- `years_not_available` (object): Presente só quando parte dos anos pedidos não tem dado: os números cobrem apenas os anos atendidos

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/sidneybissoli-sih-br-mcp/sih#diagnostics

## Score history

- 2026-11-05: 82
- 2026-11-04: 82
- 2026-11-03: 82
- 2026-11-02: 82
- 2026-11-01: 82
- 2026-10-31: 82
- 2026-10-30: 82
- 2026-10-29: 82
- 2026-10-28: 82
- 2026-10-27: 82
- 2026-10-26: 82
- 2026-10-25: 82
- 2026-10-24: 82
- 2026-10-23: 81
- 2026-10-22: 81
- 2026-10-21: 80
- 2026-10-20: 80
- 2026-10-19: 79
- 2026-10-18: 79
- 2026-10-17: 78
- 2026-10-16: 78
- 2026-10-15: 78
- 2026-10-14: 77
- 2026-10-13: 77
- 2026-10-12: 76
- 2026-10-10: 75
- 2026-10-07: 74
- 2026-10-04: 73
- 2026-10-03: 72
- 2026-10-02: 72

## Common questions

### What is the DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP server?

DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP is listed in the public MCP registry as io.github.SidneyBissoli/sih-br-mcp. DATASUS SIH/SUS hospital admissions in Brazil (AIH, 1992-2025): ICD-10 causes, ICSAP, rates. This page covers its hosted endpoint (https://sih.sidneybissoli.com/mcp).

### Is the DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP server safe to use?

DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP scores 82 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP server expose?

DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP exposes 12 tools: list_csap_groups, list_cid_chapters, get_available_years, get_hospitalizations, get_hospitalization_trends, and 7 more. Their descriptions and schemas cost roughly 3,221 tokens of context every time the server is loaded.

### Does the DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP server require authentication?

No. We connected to DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP server still maintained?

DATASUS SIH/SUS — Brazil Hospital Admissions (AIH) MCP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://sih.sidneybissoli.com/mcp
- Repository: https://github.com/SidneyBissoli/sih-br-mcp
- Website: https://sih.sidneybissoli.com/
- Changelog RSS feed: https://verifymcp.io/servers/sidneybissoli-sih-br-mcp/sih.xml
- Changelog JSON feed: https://verifymcp.io/servers/sidneybissoli-sih-br-mcp/sih.json
- HTML version of this page: https://verifymcp.io/servers/sidneybissoli-sih-br-mcp/sih
