Health Claims MCP Server
Healthcare MCP + A2A Server (Mock)
医療保険請求ドメイン向けのModel Context Protocol (MCP)およびAgent-to-Agent (A2A) 通信を実証するサンプルプロジェクトです。
mcp_server/— 8つのヘルスケアツールを公開するFastMCPサーバーa2a/— JSON-RPC 2.0上で調整を行う4つの専門エージェントを備えたカスタムA2Aプロトコルrun_a2a.py— すべてのエージェントをまとめて実行するスタンドアロンHTTPサーバー
すべてのデータは合成されたものであり、実際のPHI(個人健康情報)や外部への呼び出しは含まれません。
公式A2A SDK:
a2a-sdk(v1.0.1+) がA2Aプロトコルの公式Pythonライブラリとなりました。本プロジェクトには、学習目的で構築されたカスタム実装が含まれています。
プロジェクト構成
healthcare-mcp/
├── mcp_server/ # MCP server
│ ├── __init__.py
│ └── server.py # FastMCP with 8 healthcare tools
├── a2a/ # A2A protocol implementation
│ ├── __init__.py
│ ├── message.py # JSON-RPC 2.0 message types
│ ├── a2a_protocol.py # Protocol engine, registry, routing
│ └── agents.py # 4 healthcare domain agents
├── run_a2a.py # Standalone A2A HTTP server
├── test_a2a_communication.py # A2A protocol tests (40 tests)
├── diagrams/
│ ├── mcp.mmd # MCP Gateway architecture
│ └── a2a.mmd # A2A messaging pattern
├── requirements.txt
└── pytest.iniRelated MCP server: Partner Booking MCP Server
セットアップ
前提条件: Python 3.10以上
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txtMCPサーバーの実行
MCPサーバーは、MCP互換クライアントに対してヘルスケアツールを公開します。
stdio (デフォルト — MCPクライアント用)
python mcp_server/server.pyStreamable HTTP
export MCP_TRANSPORT=streamable-http
export FASTMCP_HOST=127.0.0.1
export FASTMCP_PORT=8000
python mcp_server/server.pyエンドポイント: http://127.0.0.1:8000/mcp
SSE
export MCP_TRANSPORT=sse
python mcp_server/server.pyMCP環境変数
変数 | デフォルト | 説明 |
|
| トランスポート: |
|
| HTTPトランスポートのバインドホスト |
|
| HTTPトランスポートのバインドポート |
|
| streamable-httpエンドポイントのURLパス |
| (なし) | オプションのマウントパスプレフィックス |
A2Aサーバーの実行
A2Aサーバーは4つのヘルスケアエージェントすべてを起動し、HTTP経由で公開します。これは、MCPツール関数をプロセス内で呼び出すローカルMCPクライアントを使用するため、個別のMCPサーバーは不要です。
python run_a2a.pyサーバーはデフォルトで http://127.0.0.1:8001 で起動します。
A2A環境変数
変数 | デフォルト | 説明 |
|
| バインドホスト |
|
| バインドポート |
A2Aエンドポイント
メソッド | パス | 説明 |
|
| エージェントカード — 検出用の機能とメタデータ |
|
| 登録済みエージェントの一覧表示 |
|
| A2A JSON-RPC 2.0メッセージの受信 |
例: エージェントの検出
curl http://127.0.0.1:8001/.well-known/agent.json | python -m json.tool例: A2Aメッセージの送信
curl -s -X POST http://127.0.0.1:8001/ \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"method": "check_member_eligibility",
"params": {"member_id": "M-1001"},
"id": "req-001",
"sender": "external-client",
"recipient": "claims-agent",
"type": "request"
}' | python -m json.toolMCPツール
請求 (Claims)
ツール | パラメータ | 説明 |
|
| 請求を一覧表示( |
|
| メンバー、医療機関、査定額を含む請求詳細 |
|
| 問い合わせチケットの送信 |
給付 (Benefits)
ツール | パラメータ | 説明 |
|
| メンバーのプランにおける免責金額および自己負担上限額の残高 |
|
| 費用負担の見積もり |
医療機関と承認 (Providers & Authorizations)
ツール | パラメータ | 説明 |
|
| 専門分野による医療機関検索 |
|
| 事前承認リクエストの送信 |
|
| 事前承認の現在のステータスを取得 |
A2Aエージェントシステム
エージェント
エージェント | ID | 役割 |
|
| 患者コーディネーター — 資格確認、医療機関検索 |
|
| 請求処理担当 — 資格確認、請求履歴、費用見積もり |
|
| ネットワーク管理者 — 医療機関検索 |
|
| 給付スペシャリスト — 費用計算 |
通信フロー
MemberAssistAgent
├─ A2A → ClaimsAgent: "check_member_eligibility"
│ ├─ MCP: list_member_claims, get_member_benefits
│ └─ MCP: get_claim_detail
│
└─ A2A → ProviderAdvocateAgent: "search_network_providers"
└─ MCP: search_providers
ClaimsAgent
└─ A2A → BenefitsAgent: "calculate_member_responsibility"
└─ MCP: estimate_member_responsibilityコード内でのエージェントの使用
import asyncio
from a2a import A2AProtocol, MemberAssistAgent, ClaimsAgent, ProviderAdvocateAgent, BenefitsAgent
async def main():
protocol = A2AProtocol()
member_assist = MemberAssistAgent(protocol, mcp_client)
claims = ClaimsAgent(protocol, mcp_client)
provider_advocate = ProviderAdvocateAgent(protocol, mcp_client)
benefits = BenefitsAgent(protocol, mcp_client)
for agent in [member_assist, claims, provider_advocate, benefits]:
await agent.register()
protocol.register_handler("check_member_eligibility", claims.handle_check_member_eligibility)
protocol.register_handler("search_network_providers", provider_advocate.handle_search_network_providers)
protocol.register_handler("calculate_member_responsibility", benefits.handle_calculate_member_responsibility)
eligibility = await member_assist.check_eligibility("M-1001")
providers = await member_assist.find_providers("primary care", "55401")
asyncio.run(main())テスト
pytest -v # all 40 tests
pytest test_a2a_communication.py # A2A protocol tests onlyテストドキュメントについては TEST_GUIDE.md を、コマンドのフィルタリングについては QUICKSTART.md を参照してください。
モックデータリファレンス
メンバー
ID | 名前 | プラン |
| Jordan Lee |
|
| Casey Patel |
|
プラン
ID | 名前 | 免責金額 | 残高 | 自己負担上限 | 残高 | ネットワーク内共同保険 |
| Optum Choice PPO | $1,500 | $420 | $5,000 | $2,100 | 20% |
| Optum Select HMO | $500 | $120 | $3,000 | $980 | 10% |
医療機関
ID | 名前 | 専門分野 | ネットワーク | 郵便番号 |
| Northside Primary Care | プライマリケア | ネットワーク内 | 55401 |
| Lakeview Ortho Clinic | 整形外科 | ネットワーク内 | 55111 |
| Metro Imaging Center | 放射線科 | ネットワーク外 | 55415 |
請求
ID | メンバー | 医療機関 | ステータス | 請求額 |
| M-1001 | PR-2001 | 支払い済み | $250.00 |
| M-1001 | PR-2003 | 保留中 | $980.00 |
| M-1002 | PR-2002 | 拒否(事前承認が必要) | $1,350.00 |
事前承認
ID | メンバー | ステータス |
| M-1002 | 承認済み |
アーキテクチャ図
ファイル | 説明 |
ドメインサーバーへルーティングするMCPゲートウェイ | |
エージェント間のA2Aメッセージング |
Mermaid Live Editor またはMermaid互換ビューアでレンダリングしてください。
MCPインスペクター
MCP Inspector は、MCPツールを対話的に呼び出すためのブラウザベースのツールです。
npm install
npm start注意事項
すべてのデータはメモリ上にあり、再起動時にリセットされます。
estimate_member_responsibilityはモックの乗数(ネットワーク内75%、ネットワーク外60%)を使用しています。支払いを保証するものではありません。PHI、外部API呼び出し、永続ストレージは含まれていません。
公式のA2A Python SDKは
a2a-sdk>=1.0.1です。本プロジェクトのa2a/モジュールは、同じプロトコルパターンを教育目的でカスタム実装したものです。
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.
This server cannot be installed
Maintenance
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
Agent-native insurance quoting protocol — sandbox, MCP + REST, eligibility pre-flight
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
Hosted MCP for denial, prior auth, reimbursement, workflow validation, batch scoring, and feedback.
AI-native mock API server with MCP. Create REST/SOAP mocks from Claude, Cursor, or Windsurf.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables healthcare benefits management by providing member eligibility verification, coverage details for medical/dental/vision/pharmacy services, and service coverage verification through natural language queries.-
- FlicenseNot gradedqualityCmaintenanceSimulates a third-party appointment booking agent, enabling your AI platform to check availability and book appointments via MCP interoperability.-
- FlicenseNot gradedqualityBmaintenanceRead-only MCP server providing 5 tools for hybrid search, clause retrieval, policy versioning, code lookup, and plan rider override queries over a synthetic medical-policy corpus.-
- AlicenseAqualityBmaintenanceMCP server to simulate NHCX payer-side actions for testing provider integrations, enabling approval, rejection, querying, and forwarding of cases. It automates the payer workflow through tools like process case and get user role.5449MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/immannan/healthcare-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server