Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Epic Patient API MCP Serverlist John Doe's medications and then show details for the most recent one"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Epic Patient API MCP Server
Fake Epic MCP server with file-based patient data and LLM-powered search.
Features
Two-tier data access: List summaries first, then fetch details by ID
15 MCP Tools for querying patient data:
List tools (return IDs, dates, metadata only):
list_patient_allergies,list_patient_medications,list_patient_conditions,list_clinical_notes,list_lab_results,list_vitals,list_proceduresDetail tools (require IDs, return full data):
get_allergy_details,get_medication_details,get_condition_details,get_clinical_note_details,get_lab_result_details,get_vital_details,get_procedure_detailsAttachment tool:
get_note_attachmentSearch tool:
search_patient_data- Natural language search using LLM
Pluggable LLM: Supports Gemini or OpenRouter for natural language search
File-based storage: Patient data in YAML files under
patients/
Setup
Install:
uv pip install -e .Configure LLM in
.env:Gemini (default):
GEMINI_API_KEY=...(get from https://aistudio.google.com/app/apikey)OpenRouter:
LLM_PROVIDER=openrouter,OPENROUTER_API_KEY=...,OPENROUTER_MODEL=anthropic/claude-3.5-sonnet
Run:
uv run python -m epic_mcp.server
Server runs on http://localhost:8000/sse
Usage Pattern
Two-tier access minimizes data transfer:
List to see what's available (IDs + metadata):
{"patient_id": "patient_001"}Returns:
[{"id": "allergy-1", "allergen": "Penicillin", "severity": "severe", "recorded_date": "2015-03-20"}]Get details for specific items:
{"patient_id": "patient_001", "allergy_id": "allergy-1"}Returns:
{"id": "allergy-1", "allergen": "Penicillin", "reaction": "Hives, difficulty breathing", "severity": "severe", "recorded_date": "2015-03-20"}
Claude Desktop Setup
Run server:
uv run python -m epic_mcp.serverEdit
~/Library/Application Support/Claude/claude_desktop_config.json:{"mcpServers": {"epic-patient-api": {"url": "http://localhost:8000/sse"}}}Restart Claude Desktop
Available Patients
patient_001- John Doe (58M) - Hypertension, Type 2 Diabetespatient_002- Jane Smith (32F) - Hypothyroidism, Pregnantpatient_003- Robert Chen (56M) - Stage IV Colorectal Cancer