Skip to main content
Glama

Healthcare Revenue Cycle Management (RCM) Multi-Agent MCP Server

Ein KI-nativer Multi-Agenten-MCP-Server für das Revenue Cycle Management (RCM), der Berechtigungsprüfung, Vorabgenehmigung und einen gemeinsamen Reasoning-Trace implementiert, unterstützt durch Supabase und pgvector.


Architekturübersicht

                          ┌────────────────────────────┐
                          │    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. Supabase-Datenbankeinrichtung

Schritt 1.1: Ein Supabase-Projekt erstellen

  1. Melden Sie sich bei Supabase an und erstellen Sie ein neues Projekt.

  2. Notieren Sie unter Projekteinstellungen -> Datenbank Ihre Projekt-URL und API-Schlüssel (anon oder service_role).

Schritt 1.2: pgvector aktivieren und Schema anwenden

  1. Öffnen Sie den SQL-Editor in Ihrem Supabase-Dashboard.

  2. Kopieren Sie den Inhalt von supabase/schema.sql und führen Sie ihn aus:

    • Aktiviert die vector-Erweiterung (CREATE EXTENSION IF NOT EXISTS vector;).

    • Erstellt Tabellen: payers, appointments, patient_coverage, benefit_accumulators, payer_pa_rules, pa_requests, agent_trace (nur Anhängen), und escalations.

    • Erstellt die match_pa_cases-Funktion für die Kosinus-Ähnlichkeitssuche.

Schritt 1.3: Seed-Daten laden

Sie können synthetische Daten in Supabase mit einer der folgenden Optionen laden:

Option A (Python-Seeder-Skript): Sobald Sie Ihre .env mit SUPABASE_URL und SUPABASE_KEY konfiguriert haben:

python seed_data.py

Option B (SQL-Editor): Kopieren Sie im SQL-Editor den Inhalt von supabase/seed.sql und führen Sie ihn aus.

Dies lädt folgende Daten:

  • 5 Kostenträger: Aetna Commercial, Blue Cross Blue Shield, UnitedHealthcare, Medicare Part B, Cigna.

  • 5 Termine: Geplante Besuche mit Ziel-Leistungsdaten (DOS).

  • Versicherungsdatensätze: Aktive vs. beendete Policen für Edge-Case-Tests.

  • Leistungsakkumulatoren: Selbstbehalte, Zuzahlungen, Kostenbeteiligung für bestimmte CPT-Codes.

  • PA-Regeln & Präzedenzfälle: Richtlinien für Vorabgenehmigungen und historische Fälle mit Einbettungen.


2. Umgebungskonfiguration

Kopieren Sie .env.example in .env:

cp .env.example .env

Aktualisieren Sie Ihre .env-Datei mit Ihren Anmeldeinformationen:

# 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. Installation

Installieren Sie die Projektabhängigkeiten:

pip install -r requirements.txt

4. MCP-Tools-Referenz

A. Gemeinsame Trace-Tools (trace.*)

Wird von allen Agenten verwendet, um ein nur-anhängbares, prüfbares Entscheidungsprotokoll zu führen.

Tool Name

Description

Key Inputs

Output

trace_write_decision

Fügt einen Entscheidungsdatensatz zum Trace-Protokoll hinzu

entity_id, agent_name, decision_type, decision_payload, confidence, evidence_refs

status, trace_id

trace_query

Ruft den chronologischen Entscheidungsverlauf für einen Fall ab

entity_id

count, list of trace entries

trace_escalate_to_human

Stellt einen Fall zur Überprüfung durch einen menschlichen Vorgesetzten in die Warteschlange

entity_id, agent_name, reason, context

escalation_id, status

B. Berechtigungstools (eligibility.*)

Überprüft die Patientenabdeckung am tatsächlichen Leistungsdatum (DOS) des Termins und schätzt die Patientenkosten.

Tool Name

Description

Key Inputs

Output

eligibility_check_coverage

Überprüft das aktive Versicherungsfenster gegen das Ziel-Leistungsdatum

patient_id, payer_id, service_type, service_date

coverage_status, is_valid_on_service_date, deductible_met_pct

eligibility_get_benefit_details

Ruft Akkumulatorsalden ab

patient_id, payer_id, cpt_code

copay, coinsurance_pct, deductible_remaining, estimated_patient_responsibility

eligibility_flag_coverage_gap

Protokolliert eine erkannte Abdeckungslücke im Trace

patient_id, gap_reason, confidence

status, trace_id

C. Vorabgenehmigungstools (priorauth.*)

Automatisiert die Suche nach Verfahrensregeln, Präzedenzfällen und die Einreichung klinischer Begründungen.

Tool Name

Description

Key Inputs

Output

priorauth_check_requirement

Prüft, ob der Verfahrenscode eine Vorabgenehmigung erfordert

payer_id, cpt_code

requires_pa, rule_text

priorauth_submit_request

Übermittelt klinische Begründung und erhält Status

patient_id, payer_id, cpt_code, clinical_summary

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

priorauth_check_status

Fragt den Status der eingereichten Genehmigung ab

pa_request_id

id, status, payer_notes

priorauth_search_similar_cases

Semantische Vektorsuche über historische PA-Fälle

cpt_code, clinical_summary, top_k

match_count, ranked precedents with similarity scores


5. Ausführen des MCP-Servers

Option A: SSE-Transport (Standard)

Startet den FastMCP-Server über Server-Sent Events (SSE):

python run_server.py
  • Der SSE-Endpunkt ist verfügbar unter: http://localhost:8000/sse

Option B: Benutzerdefinierter Host/Port oder Stdio

Sie können die Transportparameter direkt anpassen:

# 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. Testen und Verifizieren

Führen Sie die Testsuite mit pytest aus:

pytest tests/

Erwartete Ausgabe:

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

7. Verbinden mit Agent-Clients

Claude-Desktop-Konfiguration

Fügen Sie Folgendes zu Ihrer claude_desktop_config.json hinzu:

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

Related MCP Connectors

Related MCP Servers