Skip to main content
Glama

Servidor MCP Multi-Agente de Gestión del Ciclo de Ingresos (RCM) en Salud

Un servidor MCP de gestión del ciclo de ingresos (RCM) multi-agente nativo de IA que implementa Verificación de Elegibilidad, Autorización Previa y una Traza de Razonamiento Compartido respaldado por Supabase y pgvector.


Resumen de la Arquitectura

                          ┌────────────────────────────┐
                          │    RCM Multi-Agent System  │
                          │   (Eligibility / PriorAuth)│
                          └─────────────┬──────────────┘
                                        │ (SSE / HTTP / stdio)
                          ┌─────────────▼──────────────┐
                          │   FastMCP Server (Port 8000)│
                          │  trace.* | eligibility.*   │
                          │        priorauth.*         │
                          └─────────────┬──────────────┘
                                        │
                 ┌──────────────────────┴──────────────────────┐
                 ▼                                             ▼
     ┌────────────────────────┐                   ┌────────────────────────┐
     │  Supabase Relational   │                   │  pgvector / Semantic   │
     │  (Payers, Coverage,    │                   │  (Historical Clinical  │
     │   Rules, Traces)       │                   │   Precedents & Cases)  │
     └────────────────────────┘                   └────────────────────────┘

Related MCP server: mymedi-ai-mcp-server

1. Configuración de la Base de Datos Supabase

Paso 1.1: Crear un Proyecto Supabase

  1. Inicia sesión en Supabase y crea un nuevo proyecto.

  2. En Configuración del Proyecto -> Base de Datos, anota tu URL del Proyecto y tus Claves API (anon o service_role).

Paso 1.2: Habilitar pgvector y Aplicar el Esquema

  1. Abre el Editor SQL en tu Panel de Supabase.

  2. Copia y pega el contenido de supabase/schema.sql y ejecútalo:

    • Habilita la extensión vector (CREATE EXTENSION IF NOT EXISTS vector;).

    • Crea las tablas: payers, appointments, patient_coverage, benefit_accumulators, payer_pa_rules, pa_requests, agent_trace (solo añadir) y escalations.

    • Crea la función de búsqueda vectorial por similitud coseno match_pa_cases.

Paso 1.3: Cargar Datos Semilla

Puedes cargar datos sintéticos en Supabase usando cualquiera de las siguientes opciones:

Opción A (Script de Carga en Python): Una vez que configures .env con tu SUPABASE_URL y SUPABASE_KEY:

python seed_data.py

Opción B (Editor SQL): En el Editor SQL, copia y pega el contenido de supabase/seed.sql y ejecútalo.

Esto carga:

  • 5 Pagadores: Aetna Commercial, Blue Cross Blue Shield, UnitedHealthcare, Medicare Part B, Cigna.

  • 5 Citas: Visitas programadas con Fechas de Servicio (DOS) objetivo.

  • Registros de Cobertura: Pólizas activas vs. terminadas para pruebas de casos límite.

  • Acumuladores de Beneficios: Deducibles, copagos, coseguros para códigos CPT específicos.

  • Reglas y Precedentes de PA: Guías de autorización previa y casos históricos con embeddings.


2. Configuración del Entorno

Copia .env.example a .env:

cp .env.example .env

Actualiza tu archivo .env con tus credenciales:

# Supabase Configuration
SUPABASE_URL=https://<your-project-ref>.supabase.co
SUPABASE_KEY=<your-supabase-service-role-or-anon-key>

# Server Configuration
MCP_SERVER_HOST=0.0.0.0
MCP_SERVER_PORT=8000

# Optional Embedding Key
OPENAI_API_KEY=

3. Instalación

Instala las dependencias del proyecto:

pip install -r requirements.txt

4. Referencia de Herramientas MCP

A. Herramientas de Traza Compartida (trace.*)

Se utilizan en todos los agentes para mantener un registro de decisiones auditable y de solo añadir.

Nombre de la Herramienta

Descripción

Entradas Clave

Salida

trace_write_decision

Añade un registro de decisión al registro de traza

entity_id, agent_name, decision_type, decision_payload, confidence, evidence_refs

status, trace_id

trace_query

Obtiene el historial cronológico de decisiones para un encuentro

entity_id

count, lista de entradas de traza

trace_escalate_to_human

Pone en cola un caso para revisión de un supervisor humano

entity_id, agent_name, reason, context

escalation_id, status

B. Herramientas de Elegibilidad (eligibility.*)

Verifica la cobertura del paciente en la Fecha de Servicio (DOS) real de la cita y estima el costo para el paciente.

Nombre de la Herramienta

Descripción

Entradas Clave

Salida

eligibility_check_coverage

Valida la ventana de póliza activa contra la fecha de servicio objetivo

patient_id, payer_id, service_type, service_date

coverage_status, is_valid_on_service_date, deductible_met_pct

eligibility_get_benefit_details

Recupera los saldos de los acumuladores

patient_id, payer_id, cpt_code

copay, coinsurance_pct, deductible_remaining, estimated_patient_responsibility

eligibility_flag_coverage_gap

Registra una brecha de cobertura detectada en la traza

patient_id, gap_reason, confidence

status, trace_id

C. Herramientas de Autorización Previa (priorauth.*)

Automatiza la búsqueda de reglas de procedimiento, la búsqueda de precedentes y el envío de justificación clínica.

Nombre de la Herramienta

Descripción

Entradas Clave

Salida

priorauth_check_requirement

Comprueba si el código de procedimiento requiere autorización previa

payer_id, cpt_code

requires_pa, rule_text

priorauth_submit_request

Envía la justificación clínica y recibe el estado

patient_id, payer_id, cpt_code, clinical_summary

id, status (approved/denied/pending), payer_notes

priorauth_check_status

Consulta el estado de la autorización enviada

pa_request_id

id, status, payer_notes

priorauth_search_similar_cases

Búsqueda vectorial semántica sobre casos históricos de PA

cpt_code, clinical_summary, top_k

match_count, precedents clasificados con puntuaciones de similitud


5. Ejecución del Servidor MCP

Opción A: Transporte SSE (Predeterminado)

Inicia el servidor FastMCP sobre Server-Sent Events (SSE):

python run_server.py
  • El endpoint SSE estará disponible en: http://localhost:8000/sse

Opción B: Host/Puerto Personalizado o Stdio

Puedes personalizar los parámetros de transporte directamente:

# Run over stdio (e.g. for Claude Desktop / CLI clients)
python src/mcp_server/server.py --transport stdio

# Run over SSE on custom port
python src/mcp_server/server.py --transport sse --port 8080

6. Pruebas y Verificación

Ejecuta la suite de pruebas con pytest:

pytest tests/

Salida esperada:

tests\test_mcp_tools.py ..........                                       [100%]
============================= 10 passed in 0.07s ==============================

7. Conexión a Clientes de Agentes

Configuración de Claude Desktop

Añade lo siguiente a tu claude_desktop_config.json:

{
  "mcpServers": {
    "rcm-server": {
      "command": "python",
      "args": ["<path-to-repo>/src/mcp_server/server.py", "--transport", "stdio"]
    }
  }
}

Related MCP Connectors

Related MCP Servers