New:Microsoft Teams Notifications Are Now Available in Socket.Learn more
Get Started

@mcpassure/mcp-cnes

Package Overview
Dependencies
Maintainers
1
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mcpassure/mcp-cnes

MCP server para consulta ao CNES — Cadastro Nacional de Estabelecimentos de Saúde

latest
Source
npmnpm
Version
0.3.2
Version published
Weekly downloads
44
18.92%
Maintainers
1
Weekly downloads
 
Created
Source

🇧🇷 Português (BR) · 🇺🇸 English

@mcpassure/mcp-cnes

MCP server para consulta ao CNES — Cadastro Nacional de Estabelecimentos de Saúde

npm License: MIT OSSF Scorecard SAFE-MCP

Permite que agentes de IA (Claude, GPT, Copilot, etc.) consultem dados oficiais do CNES/DATASUS: estabelecimentos de saúde, leitos, equipamentos, profissionais e serviços especializados em todos os ~5.570 municípios brasileiros.

Aviso: Os dados refletem o cadastro CNES do mês de referência da última sincronização e podem não corresponder à realidade operacional atual do estabelecimento. Execute mcp-cnes sync para atualizar.

Instalação em 1 comando

Claude Desktop

Adicione ao seu claude_desktop_config.json:

{
  "mcpServers": {
    "cnes": {
      "command": "npx",
      "args": ["-y", "@mcpassure/mcp-cnes"]
    }
  }
}

Claude Code / Cursor / VS Code

npx -y @mcpassure/mcp-cnes

Tools disponíveis

ToolDescriçãoInput principal
buscar_por_codigo_cnesEstabelecimento pelo código CNES (7 dígitos)codigoCnes
buscar_por_nomeBusca por nome fantasia ou razão socialnome, uf?
buscar_por_municipioLista estabelecimentos de um município IBGEcodigoIbge, tipo?
buscar_por_tipoFiltra por tipo (hospital, UBS, UPA, etc.)tipo, uf?
listar_profissionaisProfissionais vinculados a um estabelecimentocodigoCnes
listar_leitosLeitos por tipo (UTI adulto/pediátrico/neonatal, clínico, etc.)codigoCnes
listar_equipamentosEquipamentos cadastrados no estabelecimentocodigoCnes
listar_servicosServiços especializados oferecidoscodigoCnes

Todas as tools retornam structuredContent com schema validável.

Prompts

Prompts MCP estruturados para análise de dados CNES:

PromptDescriçãoParâmetros principais
perfil_estabelecimentoConsolida perfil completo de um estabelecimentocodigo_cnes, flags de seções
mapear_rede_municipioMapeia rede de saúde de um municípiomunicipio (código IBGE), uf?, tipo?
analisar_cobertura_ufAnalisa cobertura de estabelecimentos por UFuf, agrupar_por

Resources

Resources MCP com dados de referência do domínio CNES:

URIMIMEConteúdo
cnes://tipos_estabelecimentoapplication/jsonTaxonomia oficial de tipos com código e descrição
cnes://categorias_servicosapplication/jsonCategorias de serviços especializados
cnes://scopetext/markdownEscopo do MCP, limitações e disclaimer (PT/EN)

Demo

🚧 Demo GIF em breve.

Sincronização do dataset

Os dados vêm do FTP DATASUS (fonte oficial). Para sincronizar:

# Requer: blast (conversor DBC proprietário DATASUS)
# macOS: brew install blast-datasus
# Ubuntu: apt install blast
# Windows: ver documentação

# Sincronizar São Paulo (ST, LT, EQ, PF, SR)
npx @mcpassure/mcp-cnes sync --uf SP --grupos ST,LT,EQ,PF,SR

# Sincronizar todos os estados (operação longa, ~30min por estado)
npx @mcpassure/mcp-cnes sync

# Forçar re-download mesmo se já sincronizado
npx @mcpassure/mcp-cnes sync --uf SP --force

Sem sincronização, as tools de leitos/equipamentos/profissionais/serviços retornam aviso de "dataset não sincronizado". A tool buscar_por_codigo_cnes usa fallback online (REST API Mapa da Saúde/TCU).

Casos de uso reais

Mapeamento de rede assistencial:

"Quais hospitais com UTI adulto existem em Campinas/SP?" → buscar_por_municipio("350950", "hospital") + listar_leitos por estabelecimento

Capacidade de leitos UTI por região:

"Qual a capacidade de UTI neonatal nos hospitais de Recife/PE?" → buscar_por_municipio("261160", "hospital") + listar_leitos filtrando UTI neonatal

Identificação de equipamentos:

"Quais estabelecimentos têm ressonância magnética em Fortaleza/CE?" → buscar_por_municipio("230440") + listar_equipamentos por estabelecimento

Verificação de estabelecimento:

"O CNES 2077485 é ativo? Que serviços oferece?" → buscar_por_codigo_cnes("2077485") + listar_servicos("2077485")

Dados de profissionais

Os dados de profissionais cadastrados no CNES são públicos e incluem nome, CBO (Classificação Brasileira de Ocupações) e tipo de vínculo. CPFs são sempre mascarados na resposta.

Uso responsável: Estes dados não devem ser usados para identificar pacientes ou para fins que violem a privacidade dos profissionais além do contexto assistencial para o qual foram publicados.

Compliance LGPD

  • Nenhum dado pessoal identificável de pacientes é tratado em nenhuma camada
  • Dados de profissionais são públicos no CNES/DATASUS por obrigação legal
  • Repositório aberto, sem coleta de dados de uso
  • Consulte SECURITY.md para reporte de vulnerabilidades

Masking de CPF (opt-in PII)

Por padrão, CPFs de profissionais são mascarados no formato ***.***.XXX-**, preservando apenas os dígitos 7–9. Este é o comportamento padrão (privacy-first).

Para ambientes internos que necessitem do CPF completo (ex: auditoria, reconciliação de cadastro):

MCPASSURE_LGPD_ALLOW_PII=cnes npx @mcpassure/mcp-cnes

Ou no claude_desktop_config.json:

{
  "mcpServers": {
    "cnes": {
      "command": "npx",
      "args": ["-y", "@mcpassure/mcp-cnes"],
      "env": {
        "MCPASSURE_LGPD_ALLOW_PII": "cnes"
      }
    }
  }
}

Atenção: Ao habilitar MCPASSURE_LGPD_ALLOW_PII=cnes, certifique-se de que o ambiente de execução tem controles de acesso adequados e que o uso está em conformidade com a LGPD (Lei 13.709/2018).

Catálogo MCPAssure Brasil

Este é parte do catálogo MCPAssure Brasil, que disponibiliza MCPs de qualidade para o ecossistema de saúde brasileiro:

Desenvolvimento

git clone https://github.com/mcpassure/monorepo
cd monorepo
pnpm install
pnpm --filter @mcpassure/mcp-cnes dev       # servidor MCP em modo desenvolvimento
pnpm --filter @mcpassure/mcp-cnes test      # testes unitários e de integração
pnpm --filter @mcpassure/mcp-cnes lint      # lint + format check
pnpm --filter @mcpassure/mcp-cnes typecheck # verificação de tipos

Veja CONTRIBUTING.md para guia de contribuição.

SAFE-MCP Mapping

Avaliação contra o framework SAFE-MCP (OpenSSF + LF + OpenID Foundation).

Ataques mitigados

IDAtaqueStatusComo mitigamos
SAFE-T001Tool Poisoning✓ MitigadoSchema Zod estrito em todos os inputs; parâmetros tipados
SAFE-T002Indirect Prompt Injection✓ MitigadostructuredContent separado do texto livre; dados do DATASUS não contêm markup
SAFE-T003Credential exposure✓ MitigadoCredenciais R2 apenas em Worker server-side; client não armazena secrets
SAFE-T004PII leakage✓ MitigadoCPF mascarado por padrão (privacy-first); opt-in explícito para PII
SAFE-T005Resource exhaustion✓ MitigadoCache SQLite local, sem requests em runtime ao FTP DATASUS

Ataques NÃO mitigados (declaração honesta)

IDAtaquePor que não mitigado
SAFE-T010Supply-chain attackpnpm audit + Renovate; sem SBOM gerado ainda
SAFE-T011LGPD violation por misconfigurationMCPASSURE_LGPD_ALLOW_PII=cnes requer configuração consciente do usuário

Lethal Trifecta Declaration (Willison, 2025)

  • Acesso a dados privados — ⚠ Parcial. Dados de profissionais CNES são públicos por lei, mas CPFs são dados pessoais. Mitigados com masking por default + opt-in explícito.
  • Exposição a conteúdo não-confiável — ⚠ Parcial. Inputs validados por Zod; dados DATASUS são governamentais e considerados confiáveis.
  • Capacidade de comunicação externa — ✗ Ausente. MCP opera apenas sobre DB local; sem chamadas externas em runtime.

Conclusão: Fator #1 é parcial e gerenciado — não completa o trifecta. CNES é o MCP com maior atenção à privacidade da suíte MCPAssure.

Keywords

mcp

FAQs

Package last updated on 16 May 2026

Related posts