Skip to main content
Glama

의료 수익 주기 관리(RCM) 멀티 에이전트 MCP 서버

AI 기반 멀티 에이전트 수익 주기 관리(RCM) MCP 서버로, 자격 검증, 사전 승인, 그리고 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. Supabase 대시보드에서 SQL 편집기를 엽니다.

  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 편집기):

SQL 편집기에서 supabase/seed.sql의 내용을 복사하여 붙여넣고 실행합니다.

다음을 시드합니다:

  • 5개 지불자: Aetna Commercial, Blue Cross Blue Shield, UnitedHealthcare, Medicare Part B, Cigna.

  • 5개 예약: 대상 서비스 날짜(DOS)가 있는 예약된 방문.

  • 보장 기록: 엣지 케이스 테스트를 위한 활성 vs. 종료 정책.

  • 혜택 누적기: 특정 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 전송 (기본값)

Server-Sent Events(SSE)를 통해 FastMCP 서버를 시작합니다:

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