Health Claims MCP Server
Healthcare MCP + A2A Server (Mock)
Ein Beispielprojekt zur Demonstration des Model Context Protocol (MCP) und der Agent-to-Agent (A2A)-Kommunikation für den Bereich der Krankenversicherungsabrechnungen.
mcp_server/— FastMCP-Server, der 8 Healthcare-Tools bereitstellta2a/— Benutzerdefiniertes A2A-Protokoll mit 4 spezialisierten Agenten, die über JSON-RPC 2.0 koordinierenrun_a2a.py— Eigenständiger HTTP-Server, der alle Agenten zusammen ausführt
Alle Daten sind synthetisch — keine echten PHI (geschützte Gesundheitsdaten), keine externen Aufrufe.
Offizielles A2A SDK: Das
a2a-sdk(v1.0.1+) ist jetzt die offizielle Python-Bibliothek für das A2A-Protokoll. Dieses Projekt enthält eine benutzerdefinierte Implementierung, die zu Schulungszwecken erstellt wurde.
Projektstruktur
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.iniEinrichtung
Voraussetzungen: Python 3.10+
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txtAusführen des MCP-Servers
Der MCP-Server stellt Healthcare-Tools für jeden MCP-kompatiblen Client bereit.
stdio (Standard — für MCP-Clients)
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.pyEndpunkt: http://127.0.0.1:8000/mcp
SSE
export MCP_TRANSPORT=sse
python mcp_server/server.pyMCP-Umgebungsvariablen
Variable | Standard | Beschreibung |
|
| Transport: |
|
| Bind-Host für HTTP-Transporte |
|
| Bind-Port für HTTP-Transporte |
|
| URL-Pfad für den streamable-http-Endpunkt |
| (keiner) | Optionaler Mount-Pfad-Präfix |
Ausführen des A2A-Servers
Der A2A-Server startet alle vier Healthcare-Agenten und stellt sie über HTTP bereit. Er verwendet einen lokalen MCP-Client, der die MCP-Tool-Funktionen in-process aufruft — kein separater MCP-Server erforderlich.
python run_a2a.pyDer Server startet standardmäßig unter http://127.0.0.1:8001.
A2A-Umgebungsvariablen
Variable | Standard | Beschreibung |
|
| Bind-Host |
|
| Bind-Port |
A2A-Endpunkte
Methode | Pfad | Beschreibung |
|
| Agenten-Karte — Fähigkeiten und Metadaten zur Erkennung |
|
| Liste aller registrierten Agenten |
|
| Empfangen einer A2A JSON-RPC 2.0 Nachricht |
Beispiel: Agenten entdecken
curl http://127.0.0.1:8001/.well-known/agent.json | python -m json.toolBeispiel: Eine A2A-Nachricht senden
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-Tools
Abrechnungen (Claims)
Tool | Parameter | Beschreibung |
|
| Abrechnungen auflisten, optional gefiltert nach |
|
| Vollständige Abrechnung mit Mitglied, Anbieter und Abrechnungsbeträgen |
|
| Ein Anfrageticket einreichen |
Leistungen (Benefits)
Tool | Parameter | Beschreibung |
|
| Selbstbehalt und OOP-Salden für den Plan des Mitglieds |
|
| Kostenteilungsschätzung |
Anbieter & Genehmigungen
Tool | Parameter | Beschreibung |
|
| Anbieter nach Fachgebiet suchen |
|
| Vorabgenehmigungsanfrage einreichen |
|
| Aktuellen Status einer Vorabgenehmigung abrufen |
A2A-Agentensystem
Agenten
Agent | ID | Rolle |
|
| Patientenkoordinator — prüft Anspruchsberechtigung, findet Anbieter |
|
| Abrechnungsbearbeiter — Anspruchsberechtigung, Abrechnungshistorie, Kostenschätzungen |
|
| Netzwerkmanager — Anbietersuche |
|
| Leistungsspezialist — Kostenberechnungen |
Kommunikationsfluss
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_responsibilityVerwendung von Agenten im Code
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())Tests
pytest -v # all 40 tests
pytest test_a2a_communication.py # A2A protocol tests onlySiehe TEST_GUIDE.md für Testdokumentation und QUICKSTART.md für Filterbefehle.
Referenz der Mock-Daten
Mitglieder
ID | Name | Plan |
| Jordan Lee |
|
| Casey Patel |
|
Pläne
ID | Name | Selbstbehalt | Verbleibend | OOP Max | Verbleibend | In-Network Mitversicherung |
| Optum Choice PPO | $1.500 | $420 | $5.000 | $2.100 | 20% |
| Optum Select HMO | $500 | $120 | $3.000 | $980 | 10% |
Anbieter
ID | Name | Fachgebiet | Netzwerk | PLZ |
| Northside Primary Care | Hausarzt | in-network | 55401 |
| Lakeview Ortho Clinic | Orthopädie | in-network | 55111 |
| Metro Imaging Center | Radiologie | out-of-network | 55415 |
Abrechnungen
ID | Mitglied | Anbieter | Status | Abgerechnet |
| M-1001 | PR-2001 | bezahlt | $250,00 |
| M-1001 | PR-2003 | ausstehend | $980,00 |
| M-1002 | PR-2002 | abgelehnt (Vorabgenehmigung erforderlich) | $1.350,00 |
Vorabgenehmigungen
ID | Mitglied | Status |
| M-1002 | genehmigt |
Architekturdiagramme
Datei | Beschreibung |
MCP-Gateway-Routing zu Domänenservern | |
A2A-Messaging zwischen Agenten |
Mit dem Mermaid Live Editor oder einem beliebigen Mermaid-kompatiblen Viewer rendern.
MCP Inspector
MCP Inspector ist ein browserbasiertes Tool zum interaktiven Aufrufen von MCP-Tools.
npm install
npm startHinweise
Alle Daten sind im Arbeitsspeicher und werden beim Neustart zurückgesetzt.
estimate_member_responsibilityverwendet Mock-Multiplikatoren (75% in-network, 60% out-of-network). Dies ist keine Zahlungsgarantie.Keine PHI, keine externen API-Aufrufe, kein persistenter Speicher.
Das offizielle A2A Python SDK ist
a2a-sdk>=1.0.1. Dasa2a/-Modul in diesem Projekt ist eine benutzerdefinierte, zu Bildungszwecken erstellte Implementierung derselben Protokollmuster.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/immannan/healthcare-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server