Skip to main content
Glama
akiani

Epic Patient API MCP Server

by akiani

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_procedures

    • Detail 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_details

    • Attachment tool: get_note_attachment

    • Search 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

  1. Install: uv pip install -e .

  2. 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

  3. Run: uv run python -m epic_mcp.server

Server runs on http://localhost:8000/sse

Usage Pattern

Two-tier access minimizes data transfer:

  1. 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"}]

  2. 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

  1. Run server: uv run python -m epic_mcp.server

  2. Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

    {"mcpServers": {"epic-patient-api": {"url": "http://localhost:8000/sse"}}}
  3. Restart Claude Desktop

Available Patients

  • patient_001 - John Doe (58M) - Hypertension, Type 2 Diabetes

  • patient_002 - Jane Smith (32F) - Hypothyroidism, Pregnant

  • patient_003 - Robert Chen (56M) - Stage IV Colorectal Cancer

-
security - not tested
F
license - not found
-
quality - not tested

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/akiani/mock-epic-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server