Skip to main content
Glama

Мультиагентный MCP-сервер для управления циклом доходов в здравоохранении (RCM)

AI-нативный мультиагентный MCP-сервер для управления циклом доходов (RCM), реализующий проверку права на обслуживание, предварительное разрешение и общий журнал рассуждений на базе Supabase и pgvector.


Обзор архитектуры

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

Шаг 1.1: Создание проекта Supabase

  1. Войдите в Supabase и создайте новый проект.

  2. В разделе Настройки проекта -> База данных обратите внимание на URL проекта и API-ключи (anon или service_role).

Шаг 1.2: Включение pgvector и применение схемы

  1. Откройте SQL Editor в панели управления Supabase.

  2. Скопируйте и вставьте содержимое supabase/schema.sql и выполните его:

    • Включает расширение vector (CREATE EXTENSION IF NOT EXISTS vector;).

    • Создает таблицы: payers, appointments, patient_coverage, benefit_accumulators, payer_pa_rules, pa_requests, agent_trace (только добавление) и escalations.

    • Создает функцию векторного поиска по косинусному сходству match_pa_cases.

Шаг 1.3: Загрузка начальных данных

Вы можете загрузить синтетические данные в Supabase, используя любой из вариантов:

Вариант A (скрипт-сидер на Python): После настройки .env с вашими SUPABASE_URL и SUPABASE_KEY:

python seed_data.py

Вариант B (SQL Editor): В SQL Editor скопируйте и вставьте содержимое supabase/seed.sql и выполните его.

Это загружает:

  • 5 страховщиков: Aetna Commercial, Blue Cross Blue Shield, UnitedHealthcare, Medicare Part B, Cigna.

  • 5 приемов: Запланированные визиты с целевыми датами обслуживания (DOS).

  • Записи о покрытии: Активные и прекращенные полисы для тестирования крайних случаев.

  • Накопители льгот: Франшизы, доплаты, сострахование для конкретных кодов CPT.

  • Правила и прецеденты PA: Руководства по предварительному разрешению и исторические случаи с эмбеддингами.


2. Конфигурация окружения

Скопируйте .env.example в .env:

cp .env.example .env

Обновите файл .env своими учетными данными:

# 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. Установка

Установите зависимости проекта:

pip install -r requirements.txt

4. Справочник инструментов MCP

A. Общие инструменты трассировки (trace.*)

Используются всеми агентами для ведения журнала решений с возможностью аудита и только добавлением.

Имя инструмента

Описание

Ключевые входные данные

Выходные данные

trace_write_decision

Добавляет запись решения в журнал трассировки

entity_id, agent_name, decision_type, decision_payload, confidence, evidence_refs

status, trace_id

trace_query

Получает хронологическую историю решений для обращения

entity_id

count, список записей трассировки

trace_escalate_to_human

Ставит случай в очередь на проверку человеком-супервизором

entity_id, agent_name, reason, context

escalation_id, status

B. Инструменты проверки права на обслуживание (eligibility.*)

Проверяет покрытие пациента на фактическую дату обслуживания (DOS) и оценивает стоимость для пациента.

Имя инструмента

Описание

Ключевые входные данные

Выходные данные

eligibility_check_coverage

Проверяет активный период полиса относительно целевой даты обслуживания

patient_id, payer_id, service_type, service_date

coverage_status, is_valid_on_service_date, deductible_met_pct

eligibility_get_benefit_details

Получает балансы накопителей

patient_id, payer_id, cpt_code

copay, coinsurance_pct, deductible_remaining, estimated_patient_responsibility

eligibility_flag_coverage_gap

Записывает обнаруженный пробел в покрытии в трассировку

patient_id, gap_reason, confidence

status, trace_id

C. Инструменты предварительного разрешения (priorauth.*)

Автоматизирует поиск правил процедуры, поиск прецедентов и подачу клинического обоснования.

Имя инструмента

Описание

Ключевые входные данные

Выходные данные

priorauth_check_requirement

Проверяет, требует ли код процедуры предварительного разрешения

payer_id, cpt_code

requires_pa, rule_text

priorauth_submit_request

Отправляет клиническое обоснование и получает статус

patient_id, payer_id, cpt_code, clinical_summary

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

priorauth_check_status

Опрашивает статус поданного разрешения

pa_request_id

id, status, payer_notes

priorauth_search_similar_cases

Семантический векторный поиск по историческим случаям PA

cpt_code, clinical_summary, top_k

match_count, ранжированные precedents с оценками сходства


5. Запуск MCP-сервера

Вариант A: SSE-транспорт (по умолчанию)

Запускает сервер FastMCP через Server-Sent Events (SSE):

python run_server.py
  • SSE-конечная точка будет доступна по адресу: http://localhost:8000/sse

Вариант B: Пользовательский хост/порт или Stdio

Вы можете настроить параметры транспорта напрямую:

# 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. Тестирование и проверка

Запустите набор тестов с помощью pytest:

pytest tests/

Ожидаемый вывод:

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

7. Подключение к клиентам агентов

Конфигурация Claude Desktop

Добавьте следующее в ваш 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