Skip to main content
Glama

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

An AI-native multi-agent Revenue Cycle Management (RCM) MCP server implementing Eligibility Verification, Prior Authorization, and a Shared Reasoning Trace backed by Supabase and pgvector.


Architecture Overview

                          ┌────────────────────────────┐
                          │    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 Database Setup

Step 1.1: Create a Supabase Project

  1. Log in to Supabase and create a new project.

  2. Under Project Settings -> Database, note your Project URL and API Keys (anon or service_role).

Step 1.2: Enable pgvector & Apply Schema

  1. Open the SQL Editor in your Supabase Dashboard.

  2. Copy and paste the contents of supabase/schema.sql and run it:

    • Enables vector extension (CREATE EXTENSION IF NOT EXISTS vector;).

    • Creates tables: payers, appointments, patient_coverage, benefit_accumulators, payer_pa_rules, pa_requests, agent_trace (append-only), and escalations.

    • Creates the match_pa_cases cosine similarity vector search function.

Step 1.3: Load Seed Data

You can seed synthetic data into Supabase using either option:

Option A (Python Seeder Script): Once you configure .env with your SUPABASE_URL and SUPABASE_KEY:

python seed_data.py

Option B (SQL Editor): In the SQL Editor, copy and paste the contents of supabase/seed.sql and run it.

This seeds:

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

  • 5 Appointments: Scheduled visits with target Dates of Service (DOS).

  • Coverage Records: Active vs. terminated policies for edge-case testing.

  • Benefit Accumulators: Deductibles, copays, coinsurance for specific CPT codes.

  • PA Rules & Precedents: Prior authorization guidelines and historical cases with embeddings.


2. Environment Configuration

Copy .env.example to .env:

cp .env.example .env

Update your .env file with your credentials:

# 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

Install project dependencies:

pip install -r requirements.txt

4. MCP Tools Reference

A. Shared Trace Tools (trace.*)

Used across all agents to maintain an append-only, auditable decision log.

Tool Name

Description

Key Inputs

Output

trace_write_decision

Appends a decision record to the trace log

entity_id, agent_name, decision_type, decision_payload, confidence, evidence_refs

status, trace_id

trace_query

Pulls chronological decision history for an encounter

entity_id

count, list of trace entries

trace_escalate_to_human

Queues a case for human supervisor review

entity_id, agent_name, reason, context

escalation_id, status

B. Eligibility Tools (eligibility.*)

Verifies patient coverage on the actual appointment Date of Service (DOS) and estimates patient cost.

Tool Name

Description

Key Inputs

Output

eligibility_check_coverage

Validates active policy window against target service date

patient_id, payer_id, service_type, service_date

coverage_status, is_valid_on_service_date, deductible_met_pct

eligibility_get_benefit_details

Retrieves accumulator balances

patient_id, payer_id, cpt_code

copay, coinsurance_pct, deductible_remaining, estimated_patient_responsibility

eligibility_flag_coverage_gap

Logs a detected coverage gap to trace

patient_id, gap_reason, confidence

status, trace_id

C. Prior Authorization Tools (priorauth.*)

Automates procedure rule lookup, precedent search, and clinical justification submission.

Tool Name

Description

Key Inputs

Output

priorauth_check_requirement

Checks if procedure code requires prior authorization

payer_id, cpt_code

requires_pa, rule_text

priorauth_submit_request

Submits clinical justification and receives status

patient_id, payer_id, cpt_code, clinical_summary

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

priorauth_check_status

Polls submitted authorization status

pa_request_id

id, status, payer_notes

priorauth_search_similar_cases

Semantic vector search over historical PA cases

cpt_code, clinical_summary, top_k

match_count, ranked precedents with similarity scores


5. Running the MCP Server

Option A: SSE Transport (Default)

Starts the FastMCP server over Server-Sent Events (SSE):

python run_server.py
  • The SSE endpoint will be available at: http://localhost:8000/sse

Option B: Custom Host/Port or Stdio

You can customize transport parameters directly:

# 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. Testing & Verification

Run the test suite with pytest:

pytest tests/

Expected output:

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

7. Connecting to Agent Clients

Claude Desktop Configuration

Add the following to your claude_desktop_config.json:

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mr-rsr/rcm-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server