🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

@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
135
68.75%
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

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts