Public log

sih-br-mcp

Servidor MCP do DATASUS SIH/SUS: internações hospitalares do Brasil (AIH, 1992–2025) — causas CID-10 e CID-9, séries mensais, ICSAP e taxas por UF e município, sem baixar .dbc nem usar TabNet. Brazilian hospital admissions (SIH/SUS) MCP server.

npm · fingerprint 6d3fdcb4e109fac42b1da0e0 · repository · RSS

12tools
3recorded versions
24dtracked
unchanged 7d

What changed

Changed between 13 October 2026 and 20 October 2026 (first seen 2026-10-20 11:29 UTC)

1 schema or annotation change with the description left byte-identical.

--- pinned/get_hospitalization_rates
+++ observed/get_hospitalization_rates
  {
    "annotations": {
      "destructiveHint": false,
-               "description": "Internações por `rate_per` habitantes, duas casas",
+               "description": "Internações por `rate_per` habitantes, com no mínimo 3 algarismos significativos e nunca menos de duas casas (taxa pequena não vira 0)",
                "type": "number"
              },
              "rate_per": {
-               "description": "DEPRECADO — use `rate` com `rate_per`. Internações por 100 mil habitantes, qualquer que seja `rate_per`; sai numa versão futura",
+               "description": "DEPRECADO — use `rate` com `rate_per`. Internações por 100 mil habitantes, qualquer que seja `rate_per`, mesmo arredondamento de `rate`; sai numa versão futura",
                "type": "number"
              },
              "uf": {
-             "description": "Taxa do conjunto, na base `rate_per`",
+             "description": "Taxa do conjunto, na base `rate_per`, mesmo arredondamento de `rate`",
              "type": "number"
            },
            "rate_per": {

Changed 2026-10-09 13:13 UTC

1 description rewritten, 11 schema or annotation changes with the description left byte-identical.

--- pinned/classify_as_csap
+++ observed/classify_as_csap
  {
    "annotations": {
      "destructiveHint": false,
-         "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+         "description": "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 pode mudar",
          "properties": {
            "citation": {
              "description": "Citação pronta para uso",
+           "derivation_note": {
+             "description": "Como o número foi calculado; presente junto com derived",
+             "type": "string"
+           },
+           "derived": {
+             "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+             "type": "boolean"
+           },
            "field_sources": {
              "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
              "items": {
+           "notices": {
+             "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+             "items": {
+               "type": "string"
+             },
+             "minItems": 1,
+             "type": "array"
+           },
            "retrieval": {
-             "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+             "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
              "oneOf": [
                {
                  "additionalProperties": false,
+           "revision": {
+             "additionalProperties": false,
+             "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+             "properties": {
+               "note": {
+                 "description": "O específico da fonte: o que revisa, quando, por quê",
+                 "type": [
+                   "string",
+                   "null"
+                 ]
+               },
+               "status": {
+                 "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                 "enum": [
+                   "current",
+                   "provisional",
+                   "final"
+                 ],
+                 "type": "string"
+               }
+             },
+             "required": [
+               "status",
+               "note"
+             ],
+             "type": "object"
+           },
            "source": {
              "description": "Fonte oficial do dado",
              "type": "string"
--- pinned/compare_icsap_trends
+++ observed/compare_icsap_trends
  {
    "annotations": {
      "destructiveHint": false,
-           "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+           "description": "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 pode mudar",
            "properties": {
              "citation": {
                "description": "Citação pronta para uso",
+             "derivation_note": {
+               "description": "Como o número foi calculado; presente junto com derived",
+               "type": "string"
+             },
+             "derived": {
+               "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+               "type": "boolean"
+             },
              "field_sources": {
                "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
                "items": {
+             "notices": {
+               "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+               "items": {
+                 "type": "string"
+               },
+               "minItems": 1,
+               "type": "array"
+             },
              "retrieval": {
-               "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+               "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
                "oneOf": [
                  {
                    "additionalProperties": false,
+             "revision": {
+               "additionalProperties": false,
+               "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+               "properties": {
+                 "note": {
+                   "description": "O específico da fonte: o que revisa, quando, por quê",
+                   "type": [
+                     "string",
+                     "null"
+                   ]
+                 },
+                 "status": {
+                   "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                   "enum": [
+                     "current",
+                     "provisional",
+                     "final"
+                   ],
+                   "type": "string"
+                 }
+               },
+               "required": [
+                 "status",
+                 "note"
+               ],
+               "type": "object"
+             },
              "source": {
                "description": "Fonte oficial do dado",
                "type": "string"
--- pinned/compare_regions
+++ observed/compare_regions
  {
    "annotations": {
      "destructiveHint": false,
-         "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+         "description": "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 pode mudar",
          "properties": {
            "citation": {
              "description": "Citação pronta para uso",
+           "derivation_note": {
+             "description": "Como o número foi calculado; presente junto com derived",
+             "type": "string"
+           },
+           "derived": {
+             "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+             "type": "boolean"
+           },
            "field_sources": {
              "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
              "items": {
+           "notices": {
+             "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+             "items": {
+               "type": "string"
+             },
+             "minItems": 1,
+             "type": "array"
+           },
            "retrieval": {
-             "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+             "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
              "oneOf": [
                {
                  "additionalProperties": false,
+           "revision": {
+             "additionalProperties": false,
+             "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+             "properties": {
+               "note": {
+                 "description": "O específico da fonte: o que revisa, quando, por quê",
+                 "type": [
+                   "string",
+                   "null"
+                 ]
+               },
+               "status": {
+                 "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                 "enum": [
+                   "current",
+                   "provisional",
+                   "final"
+                 ],
+                 "type": "string"
+               }
+             },
+             "required": [
+               "status",
+               "note"
+             ],
+             "type": "object"
+           },
            "source": {
              "description": "Fonte oficial do dado",
              "type": "string"
--- pinned/get_available_years
+++ observed/get_available_years
  {
    "annotations": {
      "destructiveHint": false,
-         "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+         "description": "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 pode mudar",
          "properties": {
            "citation": {
              "description": "Citação pronta para uso",
+           "derivation_note": {
+             "description": "Como o número foi calculado; presente junto com derived",
+             "type": "string"
+           },
+           "derived": {
+             "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+             "type": "boolean"
+           },
            "field_sources": {
              "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
              "items": {
+           "notices": {
+             "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+             "items": {
+               "type": "string"
+             },
+             "minItems": 1,
+             "type": "array"
+           },
            "retrieval": {
-             "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+             "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
              "oneOf": [
                {
                  "additionalProperties": false,
+           "revision": {
+             "additionalProperties": false,
+             "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+             "properties": {
+               "note": {
+                 "description": "O específico da fonte: o que revisa, quando, por quê",
+                 "type": [
+                   "string",
+                   "null"
+                 ]
+               },
+               "status": {
+                 "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                 "enum": [
+                   "current",
+                   "provisional",
+                   "final"
+                 ],
+                 "type": "string"
+               }
+             },
+             "required": [
+               "status",
+               "note"
+             ],
+             "type": "object"
+           },
            "source": {
              "description": "Fonte oficial do dado",
              "type": "string"
--- pinned/get_hospitalization_rates
+++ observed/get_hospitalization_rates
  {
    "annotations": {
      "destructiveHint": false,
-               "description": "Ano (quando agrupado por ano ou mais de um ano)",
+               "description": "Ano da internação (DT_INTER), quando agrupado por ano ou mais de um ano",
                "type": "number"
              }
            },
-           "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+           "description": "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 pode mudar",
            "properties": {
              "citation": {
                "description": "Citação pronta para uso",
+             "derivation_note": {
+               "description": "Como o número foi calculado; presente junto com derived",
+               "type": "string"
+             },
+             "derived": {
+               "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+               "type": "boolean"
+             },
              "field_sources": {
                "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
                "items": {
+             "notices": {
+               "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+               "items": {
+                 "type": "string"
+               },
+               "minItems": 1,
+               "type": "array"
+             },
              "retrieval": {
-               "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+               "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
                "oneOf": [
                  {
                    "additionalProperties": false,
+             "revision": {
+               "additionalProperties": false,
+               "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+               "properties": {
+                 "note": {
+                   "description": "O específico da fonte: o que revisa, quando, por quê",
+                   "type": [
+                     "string",
+                     "null"
+                   ]
+                 },
+                 "status": {
+                   "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                   "enum": [
+                     "current",
+                     "provisional",
+                     "final"
+                   ],
+                   "type": "string"
+                 }
+               },
+               "required": [
+                 "status",
+                 "note"
+               ],
+               "type": "object"
+             },
              "source": {
                "description": "Fonte oficial do dado",
                "type": "string"
--- pinned/get_hospitalization_trends
+++ observed/get_hospitalization_trends
  {
    "annotations": {
      "destructiveHint": false,
-   "description": "Retorna séries temporais de internações (mensal ou anual). Útil para análise de tendências e sazonalidade. 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`.",
+   "description": "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`.",
    "inputSchema": {
      "additionalProperties": false,
      "properties": {
-         "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+         "description": "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 pode mudar",
          "properties": {
            "citation": {
              "description": "Citação pronta para uso",
+           "derivation_note": {
+             "description": "Como o número foi calculado; presente junto com derived",
+             "type": "string"
+           },
+           "derived": {
+             "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+             "type": "boolean"
+           },
            "field_sources": {
              "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
              "items": {
+           "notices": {
+             "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+             "items": {
+               "type": "string"
+             },
+             "minItems": 1,
+             "type": "array"
+           },
            "retrieval": {
-             "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+             "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
              "oneOf": [
                {
                  "additionalProperties": false,
+           "revision": {
+             "additionalProperties": false,
+             "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+             "properties": {
+               "note": {
+                 "description": "O específico da fonte: o que revisa, quando, por quê",
+                 "type": [
+                   "string",
+                   "null"
+                 ]
+               },
+               "status": {
+                 "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                 "enum": [
+                   "current",
+                   "provisional",
+                   "final"
+                 ],
+                 "type": "string"
+               }
+             },
+             "required": [
+               "status",
+               "note"
+             ],
+             "type": "object"
+           },
            "source": {
              "description": "Fonte oficial do dado",
              "type": "string"
-                   "description": "Ano",
+                   "description": "Ano da internação (DT_INTER)",
                    "type": "number"
                  }
                },
-                   "description": "Competência AAAA-MM",
+                   "description": "Ano-mês da INTERNAÇÃO (DT_INTER), AAAA-MM — não a competência de faturamento; só nas internações sem DT_INTER na fonte (1992-01..04, 1993-01) é a competência",
                    "type": "string"
                  }
                },
--- pinned/get_hospitalizations
+++ observed/get_hospitalizations
  {
    "annotations": {
      "destructiveHint": false,
-               "description": "Ano (group_by: year)",
+               "description": "Ano da internação (DT_INTER) — group_by: year",
                "type": "number"
              }
            },
-         "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+         "description": "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 pode mudar",
          "properties": {
            "citation": {
              "description": "Citação pronta para uso",
+           "derivation_note": {
+             "description": "Como o número foi calculado; presente junto com derived",
+             "type": "string"
+           },
+           "derived": {
+             "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+             "type": "boolean"
+           },
            "field_sources": {
              "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
              "items": {
+           "notices": {
+             "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+             "items": {
+               "type": "string"
+             },
+             "minItems": 1,
+             "type": "array"
+           },
            "retrieval": {
-             "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+             "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
              "oneOf": [
                {
                  "additionalProperties": false,
+           "revision": {
+             "additionalProperties": false,
+             "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+             "properties": {
+               "note": {
+                 "description": "O específico da fonte: o que revisa, quando, por quê",
+                 "type": [
+                   "string",
+                   "null"
+                 ]
+               },
+               "status": {
+                 "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                 "enum": [
+                   "current",
+                   "provisional",
+                   "final"
+                 ],
+                 "type": "string"
+               }
+             },
+             "required": [
+               "status",
+               "note"
+             ],
+             "type": "object"
+           },
            "source": {
              "description": "Fonte oficial do dado",
              "type": "string"
--- pinned/get_icsap
+++ observed/get_icsap
  {
    "annotations": {
      "destructiveHint": false,
-               "description": "Ano (group_by: year)",
+               "description": "Ano da internação (DT_INTER) — group_by: year",
                "type": "number"
              }
            },
-           "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+           "description": "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 pode mudar",
            "properties": {
              "citation": {
                "description": "Citação pronta para uso",
+             "derivation_note": {
+               "description": "Como o número foi calculado; presente junto com derived",
+               "type": "string"
+             },
+             "derived": {
+               "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+               "type": "boolean"
+             },
              "field_sources": {
                "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
                "items": {
+             "notices": {
+               "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+               "items": {
+                 "type": "string"
+               },
+               "minItems": 1,
+               "type": "array"
+             },
              "retrieval": {
-               "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+               "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
                "oneOf": [
                  {
                    "additionalProperties": false,
+             "revision": {
+               "additionalProperties": false,
+               "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+               "properties": {
+                 "note": {
+                   "description": "O específico da fonte: o que revisa, quando, por quê",
+                   "type": [
+                     "string",
+                     "null"
+                   ]
+                 },
+                 "status": {
+                   "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                   "enum": [
+                     "current",
+                     "provisional",
+                     "final"
+                   ],
+                   "type": "string"
+                 }
+               },
+               "required": [
+                 "status",
+                 "note"
+               ],
+               "type": "object"
+             },
              "source": {
                "description": "Fonte oficial do dado",
                "type": "string"
--- pinned/get_icsap_indicators
+++ observed/get_icsap_indicators
  {
    "annotations": {
      "destructiveHint": false,
-               "description": "Ano (group_by: year)",
+               "description": "Ano da internação (DT_INTER) — group_by: year",
                "type": "number"
              }
            },
-           "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+           "description": "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 pode mudar",
            "properties": {
              "citation": {
                "description": "Citação pronta para uso",
+             "derivation_note": {
+               "description": "Como o número foi calculado; presente junto com derived",
+               "type": "string"
+             },
+             "derived": {
+               "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+               "type": "boolean"
+             },
              "field_sources": {
                "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
                "items": {
+             "notices": {
+               "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+               "items": {
+                 "type": "string"
+               },
+               "minItems": 1,
+               "type": "array"
+             },
              "retrieval": {
-               "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+               "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
                "oneOf": [
                  {
                    "additionalProperties": false,
+             "revision": {
+               "additionalProperties": false,
+               "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+               "properties": {
+                 "note": {
+                   "description": "O específico da fonte: o que revisa, quando, por quê",
+                   "type": [
+                     "string",
+                     "null"
+                   ]
+                 },
+                 "status": {
+                   "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                   "enum": [
+                     "current",
+                     "provisional",
+                     "final"
+                   ],
+                   "type": "string"
+                 }
+               },
+               "required": [
+                 "status",
+                 "note"
+               ],
+               "type": "object"
+             },
              "source": {
                "description": "Fonte oficial do dado",
                "type": "string"
--- pinned/list_cid_chapters
+++ observed/list_cid_chapters
  {
    "annotations": {
      "destructiveHint": false,
-         "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+         "description": "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 pode mudar",
          "properties": {
            "citation": {
              "description": "Citação pronta para uso",
+           "derivation_note": {
+             "description": "Como o número foi calculado; presente junto com derived",
+             "type": "string"
+           },
+           "derived": {
+             "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+             "type": "boolean"
+           },
            "field_sources": {
              "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
              "items": {
+           "notices": {
+             "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+             "items": {
+               "type": "string"
+             },
+             "minItems": 1,
+             "type": "array"
+           },
            "retrieval": {
-             "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+             "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
              "oneOf": [
                {
                  "additionalProperties": false,
+           "revision": {
+             "additionalProperties": false,
+             "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+             "properties": {
+               "note": {
+                 "description": "O específico da fonte: o que revisa, quando, por quê",
+                 "type": [
+                   "string",
+                   "null"
+                 ]
+               },
+               "status": {
+                 "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                 "enum": [
+                   "current",
+                   "provisional",
+                   "final"
+                 ],
+                 "type": "string"
+               }
+             },
+             "required": [
+               "status",
+               "note"
+             ],
+             "type": "object"
+           },
            "source": {
              "description": "Fonte oficial do dado",
              "type": "string"
--- pinned/list_csap_groups
+++ observed/list_csap_groups
  {
    "annotations": {
      "destructiveHint": false,
-         "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+         "description": "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 pode mudar",
          "properties": {
            "citation": {
              "description": "Citação pronta para uso",
+           "derivation_note": {
+             "description": "Como o número foi calculado; presente junto com derived",
+             "type": "string"
+           },
+           "derived": {
+             "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+             "type": "boolean"
+           },
            "field_sources": {
              "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
              "items": {
+           "notices": {
+             "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+             "items": {
+               "type": "string"
+             },
+             "minItems": 1,
+             "type": "array"
+           },
            "retrieval": {
-             "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+             "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
              "oneOf": [
                {
                  "additionalProperties": false,
+           "revision": {
+             "additionalProperties": false,
+             "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+             "properties": {
+               "note": {
+                 "description": "O específico da fonte: o que revisa, quando, por quê",
+                 "type": [
+                   "string",
+                   "null"
+                 ]
+               },
+               "status": {
+                 "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                 "enum": [
+                   "current",
+                   "provisional",
+                   "final"
+                 ],
+                 "type": "string"
+               }
+             },
+             "required": [
+               "status",
+               "note"
+             ],
+             "type": "object"
+           },
            "source": {
              "description": "Fonte oficial do dado",
              "type": "string"
--- pinned/rank_csap_groups
+++ observed/rank_csap_groups
  {
    "annotations": {
      "destructiveHint": false,
-           "description": "Bloco de proveniência (contrato v1.1): fonte, URL, competência, extração, diagnóstico de origem, citação e licença",
+           "description": "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 pode mudar",
            "properties": {
              "citation": {
                "description": "Citação pronta para uso",
+             "derivation_note": {
+               "description": "Como o número foi calculado; presente junto com derived",
+               "type": "string"
+             },
+             "derived": {
+               "description": "Presente (true) quando o número foi calculado por este servidor — os cubos SIH são somas das internações dos arquivos do DATASUS",
+               "type": "boolean"
+             },
              "field_sources": {
                "description": "Presente só quando a resposta junta partes de origens ou momentos distintos: para cada grupo de campos, a URL, a extração e se veio do cache. Ausente nas respostas de uma origem só",
                "items": {
+             "notices": {
+               "description": "Avisos que acompanham o dado (ex.: cubo atrás do espelho healthbr-data, frescor não verificado). Ausente quando não há aviso",
+               "items": {
+                 "type": "string"
+               },
+               "minItems": 1,
+               "type": "array"
+             },
              "retrieval": {
-               "description": "Diagnóstico de origem desta chamada (contrato v1.1): idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
+               "description": "Diagnóstico de origem desta chamada: idas ao canal sih/cubos/ do healthbr-data (manifesto e arquivos que faltavam no disco), tentativas somadas e anomalias contornadas; unstable=true quando houve anomalia. null = a resposta veio do DISCO (cache aquecido) ou o bloco não é do canal (listas de referência)",
                "oneOf": [
                  {
                    "additionalProperties": false,
+             "revision": {
+               "additionalProperties": false,
+               "description": "Se o número ainda pode mudar: provisional quando algum ano da resposta ainda tem competências abertas no SIH (o total ainda pode crescer); current nos demais — o DATASUS reedita arquivos de competências passadas",
+               "properties": {
+                 "note": {
+                   "description": "O específico da fonte: o que revisa, quando, por quê",
+                   "type": [
+                     "string",
+                     "null"
+                   ]
+                 },
+                 "status": {
+                   "description": "current = versão vigente, a fonte pode revisá-la; provisional = preliminar, incompleta ou sujeita a mudança (não compare como se fosse fechada); final = não muda mais, declarado pela fonte",
+                   "enum": [
+                     "current",
+                     "provisional",
+                     "final"
+                   ],
+                   "type": "string"
+                 }
+               },
+               "required": [
+                 "status",
+                 "note"
+               ],
+               "type": "object"
+             },
              "source": {
                "description": "Fonte oficial do dado",
                "type": "string"

Current tools

Show all 12 tool fingerprints
classify_as_csap
11faee656a90711b
compare_icsap_trends
dce89a59de626769
compare_regions
c2c708de54afad60
get_available_years
0e162b21d39d8679
get_hospitalization_rates
ef0e0c1cd1ec12c0
get_hospitalization_trends
fd6c430553d2946a
get_hospitalizations
a6c339cec0c6bcf0
get_icsap
523a92a621329a13
get_icsap_indicators
fdc0b6487773077f
list_cid_chapters
60cfd3117da41532
list_csap_groups
c03d3a1a1395be1c
rank_csap_groups
e533ce6664f7a8ed

Watch this server yourself

If you run this server, put the proxy in front of it. It pins these exact fingerprints on first connect and stops the session if they move.

npx -y mcp-pin@0.2.3 -- <your sih-br-mcp command>

Or subscribe to this page's RSS feed to be told when it changes.

Badge

mcp-pin status badge for sih-br-mcp

The badge states one fact about time and nothing else. It never claims a server is safe.

[![mcp-pin](https://mcp-pin.gautamkhosla.com/badge/782bc88657a273c8.svg)](https://mcp-pin.gautamkhosla.com/servers/782bc88657a273c8.html)