Manual RAG SIH/SUS MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "GEMINI_API_KEY=${GEMINI_API_KEY}" mcp-datasus -- docker compose up -d
Required:GEMINI_API_KEY+ 2 optional
README.md

RAG-based system for auditing hospital billing manuals and regulations.

Manual RAG — Auditoria de Faturamento SIH/SUS

Sistema RAG (Retrieval-Augmented Generation) para auditoria de faturamento hospitalar SIH/SUS com consulta de manuais, portarias, SIGTAP e CNES em linguagem natural.

Funciona como MCP Server para o Claude Code, expondo 43 tools organizadas em 8 módulos: RAG, SIGTAP, CNES, auditoria, auditoria de AIH, inteligência, legacy e health.

v2.1.0 — Busca híbrida (semântica + BM25), DuckDB/DATASUS client, Docker Compose, parent-child chunking.

Instalação rápida

cd scripts/manual-rag
bash setup.sh

O script cria o venv, instala dependências, indexa os documentos (se existirem em ragData/) e registra o MCP server no Claude Code.

Instalação manual

1. Ambiente e dependências

cd scripts/manual-rag
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

2. Alimentar o banco vetorial

Coloque PDFs em ragData/manuais/ e portarias em ragData/portarias/, depois:

python extrair_manual.py --ragdata ragData/
python scripts/indexar_manual.py

3. Registrar MCP no Claude Code

# Local (este repo)
claude mcp add manual-sih -- .venv/bin/python mcp_server.py

# Global (qualquer repo)
pip install -e .
claude mcp add --scope user manual-sih -- manual-sih-mcp

Abra uma nova sessão do Claude Code — as 43 tools ficam disponíveis automaticamente.

4. SIGTAP e CNES via DATASUS

As tools de SIGTAP e CNES usam DuckDB sobre Parquet armazenado no MinIO. Precisa do container do modulo-processos rodando:

cd modulo-processos && docker compose up -d minio

Copie .env.example para .env e ajuste se necessário:

cp .env.example .env

Variáveis relevantes:

Variável Default Descrição
S3_ENDPOINT http://localhost:9000 Endpoint MinIO/S3
AWS_ACCESS_KEY_ID minioadmin Credencial S3
AWS_SECRET_ACCESS_KEY minioadmin Credencial S3
DATASUS_BUCKET bucket-datasus Bucket com Parquets SIGTAP/CNES
CHROMA_HOST localhost Host ChromaDB (para modo Docker)
CHROMA_PORT 8000 Porta ChromaDB
MCP_HOST 0.0.0.0 Host do MCP Server (modo SSE)
MCP_PORT 8200 Porta do MCP Server (modo SSE)
LOG_LEVEL WARNING Nível de log

5. Docker Compose (opcional)

Para rodar o MCP Server e ChromaDB em containers:

docker compose up -d

Expõe o MCP Server na porta 8200 e ChromaDB na 8201.

API Key (para `/explicar` e `analisar_critica.py`)

export GEMINI_API_KEY="sua-chave"

Ou salve em arquivo:

mkdir -p ~/.config/google
echo "sua-chave" > ~/.config/google/api_key
chmod 600 ~/.config/google/api_key

Alimentar o banco

Opção 1: Processar todo o ragData (recomendado)

Processa recursivamente todos os arquivos em ragData/ (PDFs, HTMLs, DOCs, ZIPs):

source .venv/bin/activate
python extrair_manual.py --ragdata ragData/
python scripts/indexar_manual.py

Opção 2: PDFs individuais

# Múltiplos PDFs
python extrair_manual.py manual1.pdf manual2.pdf

# Adicionar sem apagar existentes
python extrair_manual.py --adicionar novo.pdf

Opção 3: Auto-detecção

Se nenhum argumento for passado, procura *.pdf no diretório raiz do projeto:

python extrair_manual.py

Após qualquer extração, sempre indexar:

python scripts/indexar_manual.py

A indexação gera embeddings (paraphrase-multilingual-MiniLM-L12-v2) no ChromaDB e um índice BM25 para busca híbrida.

Uso

`consulta_manual.py` — Consulta interativa

Busca semântica no manual em linguagem natural.

# Modo interativo
python consulta_manual.py

# Consulta direta (uma pergunta)
python consulta_manual.py 'como registrar politraumatizado na AIH'

Comandos no modo interativo:

Comando Ação
`` Busca semântica no manual
/explicar N Explica como a crítica N é validada (usa IA + RAG + código)
/critica Modo validação de críticas (busca semântica simples)
/fontes Lista todas as fontes indexadas com tipo e ano
/secoes Lista todas as seções do manual
/buscar N Altera quantidade de resultados (padrão: 5)
sair Encerra
`/explicar N` — Como funciona a validação de uma crítica

Combina o código TypeScript da crítica + trechos relevantes do manual + Claude para gerar uma explicação didática:

  1. O que a crítica verifica
  2. Passo a passo da validação
  3. Campos envolvidos
  4. Exceções (quando NÃO gera crítica)
  5. Fundamentação no manual (com seção e página)

Após a explicação, abre modo interativo para perguntas de follow-up.

Manual SIH> /explicar 92

`analisar_critica.py` — Agente de Análise Crítica (IA)

Envia o código + trechos do manual para o Claude e recebe um parecer estruturado de conformidade.

# Analisar uma crítica
python analisar_critica.py 92

# Analisar e salvar resultado em data/analises/
pytho

Tools (4)

rag_queryPerforms semantic search across healthcare manuals and ordinances.
sigtap_queryQueries SIGTAP database via DuckDB.
cnes_queryQueries CNES database via DuckDB.
explain_critiqueExplains how a specific billing critique is validated using RAG and code analysis.

Environment Variables

GEMINI_API_KEYrequiredAPI key for AI-powered critique analysis
S3_ENDPOINTEndpoint for MinIO/S3 storage
DATASUS_BUCKETBucket name containing SIGTAP/CNES Parquet files

Configuration

claude_desktop_config.json
{"mcpServers": {"manual-sih": {"command": "python", "args": ["/path/to/mcp_server.py"]}}}

Try it

How do I register a polytrauma patient in the AIH system according to the latest manual?
Explain the validation logic for billing critique 92.
Search for the latest ordinances regarding hospital billing procedures.
What are the requirements for CNES registration for a new hospital unit?

Frequently Asked Questions

What are the key features of Manual RAG SIH/SUS?

Hybrid search combining semantic embeddings and BM25. Integration with SIGTAP and CNES databases via DuckDB. AI-assisted critique validation and explanation. Support for parent-child chunking in RAG pipelines. Interactive query interface for healthcare manuals.

What can I use Manual RAG SIH/SUS for?

Auditing hospital billing records against official SIH/SUS manuals. Automating the explanation of billing rejection codes for hospital staff. Querying complex healthcare regulatory data using natural language. Cross-referencing billing procedures with official government ordinances.

How do I install Manual RAG SIH/SUS?

Install Manual RAG SIH/SUS by running: pip install -e . && claude mcp add manual-sih -- .venv/bin/python mcp_server.py

What MCP clients work with Manual RAG SIH/SUS?

Manual RAG SIH/SUS works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Manual RAG SIH/SUS docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare