e-SUS PEC MCP Server
Provides read-only access to the e-SUS APS/PEC Data Warehouse stored in PostgreSQL, enabling clinical auditing, patient care tracking, and monitoring of primary health care indicators through specialized MCP tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@e-SUS PEC MCP Serverliste pacientes hipertensos sem consulta nos últimos 6 meses"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
e-SUS PEC MCP Server
===================================================================================
███████╗ ███████╗██╗ ██╗███████╗ ██████╗ ███████╗ ██████╗ ███╗ ███╗ ██████╗██████╗
██╔════╝ ██╔════╝██║ ██║██╔════╝ ██╔══██╗██╔════╝██╔════╝ ████╗ ████║██╔════╝██╔══██╗
█████╗ █████╗███████╗██║ ██║███████╗ ██████╔╝█████╗ ██║ ██╔████╔██║██║ ██████╔╝
██╔══╝ ╚════╝╚════██║██║ ██║╚════██║ ██╔═══╝ ██╔══╝ ██║ ██║╚██╔╝██║██║ ██╔═══╝
███████╗ ███████║╚██████╔╝███████║ ██║ ███████╗╚██████╗ ██║ ╚═╝ ██║╚██████╗██║
╚══════╝ ╚══════╝ ╚═════╝ ╚══════╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝╚═╝
===================================================================================Servidor Model Context Protocol (MCP) de alta performance, auditoria clínica e inteligência em saúde pública para o Data Warehouse do e-SUS APS / PEC (PostgreSQL).
Sumário
Related MCP server: mcp-read-only-sql
Visão Geral
O e-SUS PEC MCP Server é uma infraestrutura de integração padronizada baseada na especificação do Model Context Protocol (MCP), desenvolvida para conectar sistemas e ferramentas analíticas diretamente à base de dados relacional e ao Data Warehouse do Prontuário Eletrônico do Cidadão (PEC) do Ministério da Saúde.
O projeto permite extração clínica, rastreamento de linhas de cuidado, auditoria de cofinanciamento da Atenção Primária à Saúde (APS) e monitoramento nominal de indicadores com garantia de leitura estrita (READ ONLY) e blindagem total de dados pessoais sensíveis (LGPD).
Stack Tecnológica
Componente | Tecnologia | Detalhes |
Linguagem | Python 3.10+ | Compatível com runtimes 3.10, 3.11, 3.12 e 3.13 |
Framework MCP | FastMCP ( | Suporte a transportes |
Banco de Dados | PostgreSQL 11 a 16 | Conexão com transação somente leitura ( |
Driver Relacional |
| Cursors otimizados com |
Data Warehouse | Star Schema e-SUS APS | Tabelas fato ( |
Gerenciador de Pacotes |
| Builds determinísticos e resolução ágil de dependências |
Qualidade & Auditoria |
| Varreduras sintéticas de PII em runtime e checagem léxica no SQL |
Arquitetura do Sistema
flowchart TD
subgraph CLIENTS["Clientes MCP & Camada Analítica"]
CLI["CLI / Desktop MCP Client"]
DASH["Dashboards & Serviços Analíticos"]
end
subgraph SERVER["Servidor FastMCP (pec-mcp-server)"]
TRANSPORT["Transport Layer (stdio / HTTP Streamable)"]
SECURITY["Filtros de Segurança & LGPD"]
TOOLS["24 Ferramentas Especializadas"]
MODELS["Contratos Tipados (TypedDict)"]
end
subgraph DW["PostgreSQL — e-SUS PEC (Read-Only)"]
TRANSACTION["Sessão Segura: readonly=on, timeout=30s"]
FAT["Tabelas Fato (tb_fat_*)"]
DIM["Tabelas Dimensão (tb_dim_*)"]
CORE["Tabelas Clínicas (tb_cidadao, tb_prontuario)"]
end
CLI --> TRANSPORT
DASH --> TRANSPORT
TRANSPORT --> SECURITY
SECURITY --> TOOLS
TOOLS --> MODELS
TOOLS --> TRANSACTION
TRANSACTION --> FAT
TRANSACTION --> DIM
TRANSACTION --> CORESegurança e Blindagem LGPD
O servidor opera sob o princípio da minimização absoluta de dados (Lei Geral de Proteção de Dados - Lei nº 13.709/2018):
Ausência Total de Colunas Proibidas no SQL: A suíte de testes estática (AST) impede que qualquer consulta utilize ou selecione colunas de identificação civil direta:
nu_cpf,nu_cns,no_mae,nu_telefone,nu_celular,no_logradouro,nu_numero_logradouro,no_bairro,ds_email,nu_cep.
Anonimização de Nomes em Tempo Real: Nenhum nome completo de paciente é retornado. A função
to_initials()converte nomes em iniciais tratadas (ex.: "Maria da Silva Santos" $\rightarrow$ "MSS"), descartando preposições e preservando a confidencialidade.Cálculo de Idade sem Exposição de Nascimento: A data exata de nascimento nunca é exposta na saída pública. A função
compute_age_display()deriva representações textuais amigáveis (ex.: "41 anos", "6 meses", "15 dias"), calculadas no servidor.Mascaramento de Códigos Identificadores:
Procedimentos SIGTAP: Mascarados no padrão oficial
XX.XX.XX.XXX-Xpara prevenir falso-positivo com números de contato.Equipes INE: Formatadas com delimitador
XXXXXXX-XXX.
Tetos Rígidos de Paginação: Todas as consultas contam com teto de paginação forçado (
safe_limit = max(1, min(int(limite), 200))ou500), bloqueando tentativas de exfiltração em lote.
Catálogo de Ferramentas (24 Tools)
1. Identificação e Demografia
Ferramenta | Descrição | Principais Parâmetros | Saída |
| Busca paciente de forma segura por identificador, iniciais, sexo ou faixa etária. |
|
|
| Retorna o quantitativo agregado de pacientes segundo filtros clínicos e demográficos. | Filtros demográficos e/ou códigos CID/CIAP |
|
| Lista as unidades de saúde ativas com códigos CNES para parametrização de filtros. | N/A |
|
2. Condições Crônicas e Diagnósticos
Ferramenta | Descrição | Principais Parâmetros | Saída |
| Consulta condições ativas e diagnósticos (CID-10 e CIAP-2) registrados nos prontuários. |
| Lista de |
| Mapeia tabelas de referência de termos clínicos para códigos padronizados CID-10 e CIAP-2. |
| Lista de códigos e descrições oficiais |
3. Atendimentos Clínicos e Prescrições
Ferramenta | Descrição | Principais Parâmetros | Saída |
| Histórico clínico com notas SOAP (Subjetivo, Objetivo, Avaliação e Plano), CBO e profissional. |
| Notas SOAP estruturadas, data/hora e profissional |
| Histórico farmacológico com posologia, concentração, via, duração, uso contínuo e status. |
| Doses, vigência, status de renovação ou interrupção |
4. Medições e Sinais Vitais
Ferramenta | Descrição | Principais Parâmetros | Saída |
| Série temporal de peso, altura e IMC calculados, unificando PEC e visitas domiciliares. |
|
|
| Histórico de pressão arterial decomposta em sistólica (PAS) e diastólica (PAD). |
|
|
| Histórico de glicemia capilar (HGT em mg/dL) com momento da aferição (jejum, pós-prandial). |
|
|
| Resultados laboratoriais históricos de hemoglobina glicada para monitoramento de diabetes. |
|
|
5. Imunização e Procedimentos SIGTAP
Ferramenta | Descrição | Principais Parâmetros | Saída |
| Histórico vacinal do Data Warehouse ( |
|
|
| Procedimentos individuais e ambulatoriais unificados com formatação SIGTAP oficial. |
| Código SIGTAP formatado, quantidade, profissional e contexto |
6. Ciclos de Vida e Busca Ativa
Ferramenta | Descrição | Principais Parâmetros | Saída |
| Monitoramento de gestações ativas, idade gestacional em semanas/dias, DPP e estratificação de risco. |
| Iniciais, DPP, semanas gestacionais, tipo e risco |
| Registro de visitas domiciliares dos Agentes Comunitários de Saúde (motivo, desfecho e ações). |
| Desfecho da visita, acompanhamentos e aferições |
| Contagem de busca ativa para hipertensos, diabéticos ou gestantes sem consulta recente. |
| Quantitativo total de pacientes elegíveis |
| Lista nominal anonimizada de pacientes elegíveis para busca ativa e agendamento preventivo. |
| Iniciais, idade textual, sexo, data da última consulta |
7. Saúde Bucal (eSB / Indicadores B1–B6)
Ferramenta | Descrição | Principais Parâmetros | Saída |
| Consultas odontológicas individuais, condutas de tratamento concluído (B2) e primeira consulta (B1). |
| Dados do atendimento, fornecimento de insumos e vigilância |
| Procedimentos em cadeira odontológica: exodontias (B3), preventivos (B4) e restaurações TRA/ART (B6). |
| Quantidade, flags de classificação e dados profissionais |
| Condições e diagnósticos bucais (CID-10 e CIAP-2) avaliados nos atendimentos de saúde bucal. |
| CID, CIAP, situação clínica e profissional responsável |
8. Atividades Coletivas e eMulti (Indicadores M1–M2)
Ferramenta | Descrição | Principais Parâmetros | Saída |
| Ações coletivas, reuniões de equipe e grupos com filtro de Discussão de Caso / PTS (M2). |
| Temas de reunião, saúde, práticas coletivas e participantes |
| Participações individuais anônimas em grupos de saúde, tabagismo e avaliação nutricional. |
| Métricas antropométricas e evolução no grupo |
| Condutores da atividade para validação de ações conjuntas e matriciamento (28 CBOs eMulti). |
| Profissional, CBO, flag |
9. Programa Saúde na Escola (PSE)
Ferramenta | Descrição | Principais Parâmetros | Saída |
| Ações de saúde escolar cruzadas com escolas cadastradas (código INEP) e temas prioritários. |
| Escola INEP, equipe, participantes e flags temáticas |
Instalação e Pré-requisitos
Pré-requisitos
Python: versão 3.10 ou superior.
Banco de Dados: instância acessível do PostgreSQL contendo o schema do e-SUS PEC (produção, réplica de leitura ou staging de testes).
Instalação via uv (Recomendado)
# Criar o ambiente virtual isolado
uv venv .venv
# Ativar o ambiente virtual
# No Linux/macOS:
source .venv/bin/activate
# No Windows:
.venv\Scripts\activate
# Instalar em modo editável com dependências
uv pip install -e .Instalação via pip tradicional
python -m venv .venv
.venv\Scripts\activate
pip install -e .Configuração de Ambiente
Crie um arquivo .env na raiz do projeto a partir do modelo fornecido:
cp .env.example .envConfigure uma string de conexão unificada em PEC_DB_DSN ou as variáveis individuais:
# Configuração Unificada de DSN (Prioritária)
PEC_DB_DSN=postgresql://usuario_leitura:senha_segura@127.0.0.1:5432/esus_db?sslmode=prefer
# Ou Parâmetros Individuais:
PEC_DB_HOST=127.0.0.1
PEC_DB_PORT=5432
PEC_DB_NAME=esus_db
PEC_DB_USER=usuario_leitura
PEC_DB_PASSWORD=senha_segura
PEC_DB_SSLMODE=prefer
# Configuração do Transporte MCP
MCP_TRANSPORT=stdio
MCP_HTTP_HOST=127.0.0.1
MCP_HTTP_PORT=5174Execução do Servidor
1. Modo Padrão via Stdio (Para Clientes MCP Locais e IDEs)
# Executando via entrypoint instalado
pec-mcp
# Ou via módulo Python
python -m pec_mcp.server2. Modo HTTP Streamable (Para Serviços Remotos e Redes Locais)
Defina MCP_TRANSPORT=streamable-http no arquivo .env ou via linha de comando:
# Executando servidor HTTP MCP
MCP_TRANSPORT=streamable-http pec-mcpO endpoint estará disponível em http://127.0.0.1:5174/mcp.
Integração com Clientes MCP
Para integrar com qualquer cliente compatível com MCP, adicione a configuração no arquivo de configuração do seu cliente:
{
"mcpServers": {
"esus-pec": {
"command": "uv",
"args": [
"--directory",
"D:\\caminho\\para\\esus-pec-mcp",
"run",
"python",
"-m",
"pec_mcp.server"
],
"env": {
"PEC_DB_DSN": "postgresql://usuario_leitura:senha_segura@127.0.0.1:5432/esus_db"
}
}
}
}Testes e Garantia de Qualidade
O projeto possui uma infraestrutura de testes automatizados com cobertura rigorosa:
# Executar suíte completa de testes
uv run pytestMecanismos de Proteção Testados
Teste T1 (
test_no_pii_in_tool_outputs.py): Injeta em memória linhas sintéticas carregadas propositalmente com CPFs, CNSs, telefones, endereços e nomes civis em todas as ferramentas registradas. O teste valida que nenhum dado sensível sobrevive à serialização final.Teste T2 (
test_projected_columns.py): Audita a árvore sintática abstrata (AST) do código-fonte em tempo de compilação, assegurando que nenhuma consulta SQL faça referência a colunas de dados civis protegidos.Contratos e Limites (
test_tool_output_keys.pyetest_limit_caps.py): Assegura previsibilidade das chaves retornadas e conformidade dos tetos máximos de paginação.
Licença
Distribuído sob a Licença MIT. Consulte o arquivo LICENSE para mais detalhes.
This server cannot be deployed
Maintenance
Related MCP Connectors
Reporting and queries over Astrea (Aurum), Brazilian legal-practice software: cases per client, cale
Query 40 databases from Claude, ChatGPT, or Cursor — on any device. Read-only, encrypted, audited.
Safe, read-only Postgres and MySQL access for AI agents. Audit log + column-level controls.
Portal da Transparência: Auxílio Emergencial, official-source lookup. Platform-hosted, pay per query
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides read-only access to PostgreSQL databases with schema inspection, query execution in multiple formats (JSON, CSV, Markdown), and query history tracking with built-in security features.-
- AlicenseNot gradedqualityBmaintenanceProvides secure read-only SQL access to PostgreSQL and ClickHouse databases with built-in safety features like read-only enforcement, timeouts, and managed result files.50 PyPIMIT
- FlicenseNot gradedqualityDmaintenanceRead-only MCP server for querying Brazilian CNES health establishment data in PostgreSQL, enabling AI-assisted database exploration and analysis.-
- AlicenseAqualityBmaintenanceMCP server for secure read-only PostgreSQL queries with automatic PII masking, pseudonymization, and strict SQL guards to enforce data privacy compliance.3MIT