Epic Fhir MCP. Query a patient's full medical history via natural conversation.
Works with every AI agent you already use
…and any MCP-compatible client
Just plug in your AI agents and start using Vinkius.
Epic Fhir connects your AI client to Epic's FHIR R4 API. You can search patients, review encounters, pull lab results, and view medication history from any agent.
This tool lets you query clinical data using natural conversation instead of navigating complex EHR screens.
What your AI agents can do
Get patient
Retrieves a patient's demographics, including name, DOB, gender, address, phone, and email.
List allergies
Lists a patient's allergies and intolerances, showing the substance, reaction type, and severity.
List appointments
Lists upcoming and past appointments, including the date/time, provider, location, and status.
You use search_patients to get a patient's name, DOB, address, and all identifying numbers.
You use get_patient to retrieve a patient's name, DOB, gender, address, phone, email, and all identifiers.
You use list_encounters to pull a list of the patient's visits, including the type, time period, reason, and location.
You use list_medications and list_allergies to see active prescriptions and documented adverse reactions.
You use list_observations to pull blood work, vital signs, and social history, including reference ranges.
You use list_conditions to list active and resolved diagnoses with ICD-10 codes and onset dates.
You use list_immunizations to list every vaccine type, administration date, dose, site, and lot number.
Ask AI about this MCP
Supported MCP Clients
Waiting for input…
Epic Fhir MCP Server: 10 Tools for Clinical Data
These tools let your agent perform specific actions on Epic's FHIR R4 API, allowing you to retrieve precise records like medications, vitals, and diagnoses.
019d7591get patient
Retrieves a patient's demographics, including name, DOB, gender, address, phone, and email.
019d7591list allergies
Lists a patient's allergies and intolerances, showing the substance, reaction type, and severity.
019d7591list appointments
Lists upcoming and past appointments, including the date/time, provider, location, and status.
019d7591list conditions
Lists diagnoses and conditions, including ICD-10 codes, clinical status, onset date, and severity.
019d7591list diagnostic reports
Lists diagnostic reports, providing the report type, results, conclusion, and the performing organization.
019d7591list encounters
Lists patient encounters/visits, detailing the type, time period, reason, and location of the visit.
019d7591list immunizations
Lists all vaccinations, including vaccine type, administration date, dose, site, and lot number.
019d7591list medications
Lists active medication requests, including the medication name, dosage, frequency, route, and status.
019d7591list observations
Lists clinical observations, allowing filtering by vital signs, lab work, or social history.
019d7591search patients
Searches the patient registry using name, DOB, or Medical Record Number (MRN).
Choose How to Get Started
Build a custom MCP for your own tools, or connect a ready-made integration from our catalog.
Build Your Own
Turn any API into an MCP. Import a spec, define Agent Skills, or deploy with MCPFusion.
- Import from OpenAPI, Swagger, or YAML specs
- Create Agent Skills with progressive disclosure
- Deploy to edge with MCPFusion framework
- Built in DLP, auth, and compliance on every call
- Real time usage dashboard and cost metering
- Publish to catalog or keep private
Make Your AI Do More
Start with Epic Fhir, then connect any of our 4,700+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 4,700+ others, all in one place
- Add new capabilities to your AI anytime you want
- Every connection is secured and compliant automatically
- Track usage and costs across all your servers
- Works with Claude, ChatGPT, Cursor, and more
- New servers added to the catalog every week
What you can do with this MCP connector
Epic Fhir connects your AI client directly to Epic's FHIR R4 API. You query clinical data using natural conversation, skipping the headache of complex EHR screens. You can't imagine doing this without it.
Finding the Patient
To track down a patient, you can use search_patients to check the registry by name, DOB, or Medical Record Number (MRN). Once you've got a handle on the patient, you use get_patient to pull their full demographics: name, DOB, gender, address, phone, email, and all the identifiers.
Reviewing Medical History
To see all their past visits, you run list_encounters, which pulls the type, time period, reason, and location for every single visit. You can check current prescriptions and adverse reactions using list_medications and list_allergies, giving you the active meds, dosage, frequency, route, and documented reactions. For diagnoses, list_conditions lists active and resolved conditions, providing ICD-10 codes, onset dates, and severity.
You can also check their immunization records with list_immunizations, which details every vaccine type, administration date, dose, site, and lot number. To see their appointments, you use list_appointments, which gives the date/time, provider, location, and status for both upcoming and past visits. You can review their vaccinations with list_immunizations, which details every vaccine type, administration date, dose, site, and lot number.
Deep Dive Clinical Data
For lab work and vital signs, you run list_observations, which lets you filter for vital signs, blood work, or social history, and it includes reference ranges. You can check out all their diagnostic reports using list_diagnostic_reports, pulling the report type, results, conclusion, and the performing organization. You've got list_observations for blood work and vital signs, and list_diagnostic_reports for formal reports.
It's simple. Your agent just talks to the API. You get the data right in the chat, no logins or clicking through screens needed. You just connect it and start working.
How Epic Fhir MCP Works
- 1 First, subscribe to the server and provide your FHIR Server URL, Client ID, and Access Token from your Epic App Orchard registration.
- 2 Next, prompt your AI client. You ask for a specific piece of information, like 'Show me the patient's recent labs' or 'List their active medications'.
- 3 The system executes the necessary tool call, and you get the structured data—like a list of encounters or blood work—returned directly to your chat interface.
The bottom line is: You connect your AI agent to a secure data source and query complex medical records using plain language.
Who Is Epic Fhir MCP For?
Clinical Informaticists, Care Coordinators, and Health IT Developers. If you spend time synthesizing data from multiple EHR tabs, this is for you. It lets you build complex data views without writing complex SQL queries against the underlying data warehouse.
You quickly review a patient's full medical timeline—everything from past ER visits to current medications—before a transition meeting.
You extract patient cohort data and clinical metrics. You do this without having to write SQL against the data warehouse.
You prototype FHIR-based workflows and validate API responses interactively, making development faster.
What Changes When You Connect
- Consolidate Patient View: Instead of opening separate tabs for vitals, labs, and meds, you ask your agent for a full picture. The agent pulls data from
list_observations,list_medications, andlist_conditionsin a single, conversational flow. - Eliminate Data Search: You don't need to know the exact ICD-10 code or navigate deep menus. Simply ask for 'all active conditions' and the tool
list_conditionsreturns the structured data with severity and onset dates. - Full Timeline Context: When preparing for a care meeting, the agent can pull together the full history by calling
list_encountersand then cross-referencing that timeline withlist_immunizationsrecords. You get the whole story. - Streamline Research: For clinical informaticists, you can write a prompt like 'Find all patients with condition X who received medication Y' and let the agent combine
list_conditionsandlist_medicationsto build a cohort list. - Get Immediate Status: Need to know if a patient has an immediate drug interaction or allergy? Running
list_allergiesis fast. You instantly see the substance, reaction type, and severity without manually checking multiple sheets. - Verify Records: Before any major decision, you can check the patient's latest status. Use
list_observationsto check blood work and vitals, ensuring the data you rely on is current.
Real-World Use Cases
Preparing for a Care Transition Meeting
A Care Coordinator needs to review a patient before they move facilities. Instead of opening 5 different tabs—one for encounters, one for meds, one for allergies, and one for labs—they ask their agent: 'Give me John Smith's full medical timeline.' The agent runs list_encounters, list_medications, and list_allergies, providing one unified, actionable summary.
Identifying a Patient Cohort for Research
A Clinical Informaticist needs to study all patients who had both Type 2 Diabetes (Condition X) and were prescribed Metformin (Medication Y). They use the agent to combine list_conditions and list_medications with a single prompt, instantly generating a list of eligible patients for a study.
Reviewing New Lab Results
A clinician just got a patient ID and needs to see the latest vitals. Instead of manually pulling the latest lab report, they prompt the agent: 'What are the recent lab results for this patient?' The agent calls list_observations and returns structured data, flagging abnormal readings with reference ranges.
Checking Vaccination Status
A nurse needs to confirm if a patient received the latest flu shot. They ask the agent to check the immunization record. The agent runs list_immunizations, providing the vaccine type, administration date, and lot number for verification.
The Tradeoffs
Manual EHR Cross-Referencing
A user manually checks the patient's profile, then clicks into 'Medications' to see the list, then has to copy the drug name and manually search the 'Allergies' section to see if it conflicts.
→
Just ask your agent: 'What are the active medications and any documented allergies for this patient?' The agent runs list_medications and list_allergies and shows you the conflicts and details immediately.
Searching by Partial Info
A user tries to find a patient using only a partial name or date range, leading to multiple false positives and forcing manual verification across multiple records.
→
Use the search_patients tool first. You can search by name, DOB, or MRN to narrow down the list and ensure you are looking at the correct patient record before querying any other data.
Missing Temporal Context
A user sees a condition listed but doesn't know if it's active, resolved, or what date the diagnosis was made, leading to basing decisions on outdated status.
→
Always check the full history. Use list_conditions to see the clinical status, onset date, and severity. This gives you the full context you need for accurate decision-making.
When It Fits, When It Doesn't
Use this server if you need to combine multiple distinct, highly specialized clinical data points (meds, labs, encounters, allergies) into a single, conversational summary. This is for complex data synthesis. Don't use it if you just need a single piece of information, like checking a patient's address—you'd just use a basic contact API. Also, if you need to query data that requires advanced, non-standard logic (like 'Show me patients who had X and Y within 3 minutes of each other'), you might need to write custom code that calls these tools sequentially, rather than expecting a single prompt to solve it.
Independent Platform Disclaimer: Vinkius is an independent platform and is not affiliated with, endorsed by, sponsored by, verified by, or otherwise authorized by Epic Fhir. All third-party trademarks, logos, and brand names are the property of their respective owners. Their use on this website is strictly for informational purposes to identify service compatibility and interoperability.
VINKIUS INFRASTRUCTURE
Cloud Hosted
Managed infra
V8 Isolated
Sandboxed per request
Zero-Trust Proxy
No stored credentials
DLP Enforced
Policy on every call
GDPR Compliant
EU data residency
Token Compression
~60% cost reduction
Works with Claude, ChatGPT, Cursor, and more
The Model Context Protocol standardizes how applications expose capabilities to LLMs. Instead of operating in isolation, your AI gains direct access to external platforms, live data, and real-world actions through secure, standardized connections.
This server provides 10 capabilities that interface natively with Claude, ChatGPT, Cursor, and any MCP client. No middleware. No custom integration required.
Available Capabilities
Reviewing a patient's full history used to take half a day.
Before this server, getting a complete view meant navigating dozens of tabs. You'd start in the primary EHR dashboard, click 'History,' then click 'Allergies,' then open a separate section for 'Labs.' You'd copy IDs, jump between screens, and spend hours piecing together a coherent timeline.
Now, you tell your agent what you need. It runs the necessary tools—like `list_encounters`, `list_observations`, and `list_medications`—and hands you a single, structured, and immediate summary. You get the whole picture, right in the chat.
Epic Fhir MCP Server: Accessing Clinical Data
The biggest time sink was the manual cross-referencing. You'd find a condition, then have to manually search for the associated lab work to confirm severity. This process is slow and highly prone to human error.
With this server, the agent handles the linking. You ask for the 'status of Condition X,' and it pulls the required diagnoses (`list_conditions`) alongside the most recent supporting observations (`list_observations`) in one go. It's instant context.
Common Questions About Epic Fhir MCP
How do I use the `search_patients` tool with Epic Fhir? +
You use the search_patients tool to find a patient by name, DOB, or MRN. It returns basic demographics, allowing you to confirm the patient's identity before pulling detailed records.
Can I check a patient's medication list using the `list_medications` tool? +
Yes. The list_medications tool pulls active prescriptions, showing the name, dosage, frequency, and who prescribed it.
Does `list_observations` include blood work results? +
Yes. list_observations is designed to pull clinical observations, including both vital signs and laboratory results, and it provides reference ranges for context.
Which tool should I use for a vaccination history? (list_immunizations) +
Use list_immunizations. This tool specifically provides the vaccine type (CVX code), administration date, dose, site, and crucial lot number for tracking.
What if I need to check a patient's diagnosis history? (list_conditions) +
Use list_conditions. This tool lists active and resolved conditions, providing ICD-10 codes, onset dates, and severity levels for comprehensive tracking.
How do I get a patient's full demographic details using the `get_patient` tool? +
The get_patient tool returns a comprehensive set of demographics. It provides the name, DOB, gender, race, ethnicity, address, phone, email, and all identifiers needed for patient context.
What information can I pull about a patient's past visits with `list_encounters`? +
list_encounters includes the encounter type, period, reason, and location. This lets you track where and why a patient visited the facility over time.
Can `list_allergies` tell me about specific intolerances? +
Yes, list_allergies includes records for both true allergies and intolerances. The results specify the substance, reaction type, severity, and clinical status for each entry.
Can I search for a patient and instantly see their full medical timeline? +
Yes! Use search_patients with name or MRN to find the patient, then chain list_encounters, list_conditions, and list_medications to build a full clinical picture. Your agent compiles everything in seconds — no chart-clicking required.
How do I prepare a patient summary before a care coordination meeting? +
Ask your agent to pull everything at once: 'Show me the full medical history for patient ID abc123.' It will call get_patient for demographics, list_conditions for active diagnoses, list_medications for current prescriptions, and list_allergies for safety alerts — delivering a structured briefing ready for your meeting.
Is this integration read-only? Can it modify patient data? +
This integration is entirely read-only. All 10 tools are query operations — search, list, and retrieve. No tool can create, update, or delete any clinical data. Your Epic FHIR access token controls exactly which patients and resources are visible, enforcing your existing HIPAA access controls.
Use it with your favorite AI tools
Connect this server to Cursor, Claude, VS Code, and more.
More in this category
Tencent COS / 腾讯云对象存储
China's dominant cloud storage platform — manage files, metadata, and CDN endpoints via AI.
NumVerify
Validate and audit phone numbers — identify carriers and locations via AI.
AniList GraphQL
Access the world's largest anime and manga database — search titles, characters, staff, and manage your personal lists via GraphQL.
You might also like
Evvnt Marketing & Distribution
Equip your AI agent to manage events, track syndication reports, and monitor distribution via the Evvnt API.
Userback
Collect visual feedback from users with annotated screenshots, screen recordings, and bug reports embedded in your product.
FAA (Federal Aviation Administration)
Access real-time aviation data directly from the FAA — including NOTAMs, TFRs, UAS facility maps, and METAR/TAF weather reports.