Epic Fhir MCP for AI. Access a full, longitudinal view of any patient's medical history.
Works with every AI agent you already use
…and any MCP-compatible client








Connect to your AI in seconds.
Epic Fhir provides direct access to Epic's FHIR R4 clinical data. Query patient records by name, date of birth, or medical record number, pulling everything from encounters and lab reports to medications and allergies—all through natural conversation with your AI agent.
What your AI can do
Search patients
Searches the patient database to find records using name, date of birth, or medical record number.
List immunizations
Provides a vaccination history, including vaccine type, administration date, dose amount, and lot number.
Get patient
Retrieves basic identifying information for a specific patient, including phone, email, address, and identifiers.
Find specific patient records using name, date of birth, or medical record number.
Gather all past hospital visits and outpatient appointments to track a patient's care journey over time.
Pull observations, including blood work and vital signs, and compare them against standard reference ranges.
View a patient's active medications, dosages, and known allergies in one place.
Combine diagnoses, encounters, and lab results to give a complete picture of the patient’s health status.
Ask an AI about this
Waiting for input…
Epic Fhir MCP with 10 Tools
Use these ten tools to search for patients and pull every type of medical record—from allergies and appointments to detailed lab reports.
Make your AI actually useful.
Add this MCP to Claude, Cursor, or Windsurf and your AI stops guessing. It gets real tools to look things up, take action, and handle the stuff you keep doing by hand.
Start using Epic Fhir on VinkiusSearch Patients
Searches the patient database to find records using name, date of birth, or medical record number.
List Immunizations
Provides a vaccination history, including vaccine type, administration date, dose...
Get Patient
Retrieves basic identifying information for a specific patient, including phone...
List Encounters
Lists all patient visits or encounters, providing details on the type of visit...
List Observations
Retrieves clinical observations—like blood work or vital signs—filterable by...
List Conditions
Lists active or resolved medical diagnoses and conditions using ICD-10 codes and onset dates.
List Medications
Lists all medications associated with the patient, noting dosage, frequency, prescriber, and current status.
List Allergies
Lists all recorded allergies and intolerances, detailing the substance and severity...
List Appointments
Checks a patient's scheduled appointments, including date/time, provider, location...
List Diagnostic Reports
Retrieves specific diagnostic reports, including the conclusion and results from...
Security and governance baked right in.
Pick your AI client below to get set up. Just create a Vinkius account, subscribe, and you're instantly up and running. We handle the entire backend infrastructure, delivering out-of-the-box support for HTTPS Streamable, SSE, and OAuth2—zero messy routing required.
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 5,100+ other servers whenever your AI needs more. One click, no limits.
- Use this MCP plus 5,100+ 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
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 connection provides 10 powerful capabilities that interface natively with Claude, ChatGPT, Cursor, and other compatible AI platforms. No middleware. No custom integration required.
Sifting through paper charts and digital tabs is exhausting.
Today, if you need a complete patient picture, you're clicking. You open the encounter tab for visits, then click over to 'Labs' to see blood work, and maybe jump to 'Meds' just to check prescriptions. If you want the full context—like linking an old diagnosis to a current vital sign—you end up copying dates and IDs across three different screens.
With this MCP, you tell your agent what you need in plain English. You ask for a patient’s status update, and it pulls together everything: labs, meds, diagnoses, appointments. It's not about navigating the system; it's about getting the full story immediately.
List Observations MCP delivers actionable insights.
Before this, pulling a patient's lab results meant knowing which panel to run and finding those specific values in a separate report. You were stuck viewing raw numbers without quick context or reference ranges.
Now, you ask your agent for the observations, and it returns blood work *with* reference ranges and interpretations right there. It moves you from viewing data points to understanding clinical meaning.
What your AI can actually do with this
Connecting clinical data used to treat over 305 million patients worldwide is complicated. Usually, you're stuck clicking between dozens of tabs just to build a patient timeline. This MCP changes that. You can talk to it like talking to a nurse; tell your agent exactly what you need—like 'What were the diagnoses and medications after his ER visit?' The system pulls all those disparate data points together instantly.
Because this connector is managed by Vinkius, you just connect once from any compatible client and get access to the entire catalog of clinical services. You can pull lab results, review a patient’s full history, check immunizations, or list active conditions without ever having to navigate a complex EHR interface.
It's about getting the answer, not mastering the system.
019d7591-4675-72cb-bc77-cd4f06a30187 Here's how it actually works
The bottom line is you tell your AI client what data you need, and it handles talking to the Epic API behind the scenes.
Subscribe to this MCP and enter your FHIR Server URL, Client ID, and Access Token from your Epic App Orchard registration.
Connect your preferred AI client (Claude, Cursor, etc.) to Vinkius and select this connector.
Ask your agent a natural language question (e.g., 'List all active medications for patient X') and the system pulls the data.
Who is this actually for?
Clinicians who spend too much time clicking between screens or writing complex SQL queries for basic patient context. These are people whose job depends on speed, accuracy, and having a full picture of a patient's history immediately.
Quickly gathering a patient’s full medical timeline before a care transition meeting to ensure nothing is missed.
Extracting specific data cohorts and metrics from the EHR without writing custom code against the underlying data warehouse.
Reviewing a patient's full history, checking both past encounters and current medication lists before making treatment decisions.
What Changes When You Connect
Stop searching through separate systems. You can pull medication lists and check active conditions using the list_medications and list_conditions tools in one go.
Build a complete care narrative by combining data from multiple sources, like checking past list_encounters alongside current lab results from list_observations.
Never miss a vaccine record. Quickly access full immunization history using the list_immunizations tool to verify compliance or check lot numbers.
When coordinating care, you can immediately review a patient’s entire medical profile by combining get_patient details with all their past list_diagnostics reports.
It saves time writing complex queries. Instead of building SQL against the data warehouse, simply ask your agent to pull records using the dedicated tools.
See it in action
The admitting nurse needs a rapid history review.
A nurse gets a new admission and needs a quick status update. They tell their agent, 'What are all active medications and diagnoses for this patient?' The agent uses list_medications and list_conditions, providing the nurse with an instant summary they can use at the bedside.
The specialist needs to check compliance.
A specialist is reviewing a follow-up visit. They ask their agent, 'Show me all immunizations and appointments for the last year.' The agent uses list_immunizations and list_appointments, ensuring the patient's vaccination status is up to date.
The research team needs data points.
A clinical researcher wants a cohort of patients who had specific issues. They ask their agent, 'Find all patients with condition X and whose lab results show high glucose.' The agent uses search_patients and then filters using list_observations.
The care manager needs to review risks.
A care manager is preparing for a discharge. They ask their agent, 'What are the current allergies, medications, and diagnostic reports?' The agent runs list_allergies, list_medications, and list_diagnostic_reports sequentially to build a risk summary.
The honest tradeoffs
Treating the MCP like a search engine.
Just searching for 'Smith' only returns names. You miss key details because you didn't tell it which specific data points to look at.
Always start with search_patients to get the correct ID, then follow up by asking the agent to pull detailed information using tools like list_encounters or list_observations, referencing that patient ID.
Only focusing on acute visits.
Reviewing only the last 90 days of records means you miss important long-term conditions and medication changes from years ago.
Use list_encounters to get a full list of historical visits, then use that context to pull deep data using list_conditions or list_diagnostic_reports, ensuring the entire timeline is visible.
Ignoring allergies.
Assuming a patient is safe because they don't have current medications listed. You might overlook a severe, documented allergy.
Always run list_allergies as one of the first steps in your data retrieval process before reviewing any medication or procedure.
When It Fits, When It Doesn't
Use this MCP if you need to synthesize complex, multi-source clinical narratives. If your goal is 'Give me everything about Patient X'—from their vitals and diagnoses to their medications—this is the right tool. It handles connecting disparate data types (labs, appointments, meds) into one conversational answer.
Don't use this if you just need a single piece of information, like checking today's appointment time. For that, simple directory tools or basic search functions are better. Also, don't try to replicate the entire EHR; think of it as an advanced data aggregator for specific clinical questions, not a full record replacement.
Questions you might have
How do I find a patient's full history using list_encounters? +
You first use search_patients to get the correct ID, then ask the agent to run list_encounters. This provides all visits and locations over time, giving you the framework for the entire medical timeline.
Can I check vaccinations using list_immunizations? +
Yes. The list_immunizations tool pulls detailed vaccination records, including the vaccine type, exact administration date, and lot number, which is critical for public health tracking.
What is the best way to find a patient's current medications? +
Use list_medications. This tool provides more than just the drug name; it gives dosage instructions, frequency, and who prescribed it, which is vital for care coordination.
Does list_observations include blood work details? +
Yes. It handles various observations, including filtering by 'laboratory' to get detailed blood work, vitals signs, and social history data alongside their standard reference ranges.
When calling get_patient, what credentials do I need to authorize my request? +
You must provide a valid Access Token and Client ID obtained from your Epic App Orchard registration. The MCP handles the FHIR R4 OAuth 2.0 flow, so ensure these tokens are current for successful data retrieval.
How detailed is the information I get when running list_conditions? +
The results include specific ICD-10 codes, which define the condition. You also receive the clinical status, onset date, and severity level, giving you a full picture of the diagnosis history.
If I use search_patients and no records are returned, what does that mean for my workflow? +
An empty list means the criteria didn't match any patient in your system. The MCP will return an empty set or a specific error code; you should check spelling or expand your search parameters.
What clinical details are included when I use list_allergies to check for reactions? +
The tool provides the substance, reaction type, and severity level. It's crucial to review both the reported severity and the current clinical status field for actionable data.
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.
We've already built the connector for Epic Fhir. Just plug in your AI agents and start using Vinkius.
No hosting. No infrastructure. No complex setup.
All 10 tools are live and waiting.
You're up and running in seconds.
Vinkius gives your AI agents access to the full catalog of app connectors, all fully managed, secure, and enterprise-ready. One subscription, every tool you need.
Built, hosted, and secured by Vinkius. You just connect and go.