Read-only FHIR R4 MCP server for Practice Fusion EHR with patient, provider, and clinical data access via SMART backend-services auth.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We ran the install command below but it didn't respond within our test window โ this can mean a slow first-time install rather than a real problem.
npx -y practice-fusion-mcpNo response to initialize.
This is an experimental automated check and can have false negatives โ missing environment variables, a slow cold install, etc. It doesnโt necessarily mean somethingโs wrong. Last checked 4d ago.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Practice Fusion MCP.
practicefusion_search_patientsFind patients by name / birthdate / gender / identifier
practicefusion_get_patientOne patient's demographics by id
practicefusion_search_practitionersFind providers by name / identifier
practicefusion_get_conditionsA patient's problems / diagnoses
practicefusion_get_medicationsA patient's medication requests
practicefusion_get_lab_resultsA patient's laboratory observations
An open-source, FHIR-first, read-only Model Context Protocol server for Practice Fusion. Connect Claude (Desktop / Code), Cursor, or any MCP client to a Practice Fusion EHR to search patients and providers and review appointments, conditions, medications, labs, vitals, allergies, immunizations, encounters, documents, procedures, diagnostic reports, care plans, and goals โ running on Practice Fusion's free Open FHIR account.
Read-only by design. Audit-logged. No write access, no scheduling, no patient creation.
Every tool call flows through the audit logger; the FHIR client only ever holds a short-lived token minted from a signed JWT assertion (SMART backend-services), and long free-text parameters are redacted before anything is logged.
All tools are namespaced with a practicefusion_ prefix (so they don't collide when loaded alongside other MCP servers), carry a readOnlyHint annotation, and return a typed outputSchema / structuredContent. List tools accept an optional limit (default 50, max 200) and report count and has_more.
Patients & providers
| Tool | What it does |
|---|---|
practicefusion_search_patients | Find patients by name / birthdate / gender / identifier |
practicefusion_get_patient | One patient's demographics by id |
practicefusion_search_practitioners | Find providers by name / identifier |
Clinical
| Tool | What it does |
|---|---|
practicefusion_get_conditions | A patient's problems / diagnoses |
practicefusion_get_medications | A patient's medication requests |
practicefusion_get_lab_results | A patient's laboratory observations |
practicefusion_get_vitals | A patient's vital-sign observations |
practicefusion_get_allergies | A patient's allergies & intolerances |
practicefusion_get_immunizations | A patient's immunizations |
Records
| Tool | What it does |
|---|---|
practicefusion_get_appointments | Appointments by patient / status / date |
practicefusion_get_encounters | A patient's clinical encounters (visits) |
practicefusion_get_documents | A patient's document references (note metadata) |
practicefusion_get_coverage | A patient's insurance Coverage (status, payer, period) |
Summary
| Tool | What it does |
|---|---|
practicefusion_get_everything | Pre-visit summary for a single patient โ per-type counts plus a bounded sample of raw resources (FHIR $everything with a per-type-search fallback) |
Procedures & care planning
| Tool | What it does |
|---|---|
practicefusion_get_procedures | A patient's procedures |
practicefusion_get_diagnostic_reports | A patient's diagnostic (lab / imaging) reports |
practicefusion_get_care_plans | A patient's care plans |
practicefusion_get_goals | A patient's care goals |
Beyond tools, the server exposes the other two MCP primitives.
Prompts โ ready-made templates a client can surface:
| Prompt | Args | What it does |
|---|---|---|
pre_visit_summary | patientId | Guides the assistant to assemble a one-minute pre-visit summary from the read tools |
medication_review | patientId | Reviews a patient's medications against their problems and allergies (decision support, not prescribing) |
Resources โ readable by URI:
| Resource | URI | What it returns |
|---|---|---|
| Patient summary | practicefusion://patient/{patientId}/summary | Every resource linked to a patient (FHIR $everything), as JSON |
Resource reads are audit-logged like tool calls.
Ask an MCP client a question and it composes the tools:
You: What are Ana Rivera's active medications?
Assistant: Ana Rivera has 2 active medications: Lisinopril 10 mg and Atorvastatin 20 mg.
Because every tool returns structuredContent, the client gets typed objects โ not just text โ so it can chain calls reliably.
You can run everything above with no Practice Fusion account. Demo mode serves in-memory synthetic fixtures โ no credentials, no network, no PHI โ and the example query returns exactly what's shown.
One command, nothing to clone:
Or from a clone:
Or point an MCP client at it with the --demo flag (or set PF_DEMO=1 in its env):
The fixtures cover two patients across every resource type โ conditions, medications, labs, vitals, allergies, immunizations, appointments, encounters, documents, and coverage โ so each tool returns something. It's the quickest way to see the tools before wiring real credentials.
env block (shown in step 3). For local development, copy .env.example to .env โ pnpm dev loads it automatically.Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/kushaim-practice-fusion-mcp)<a href="https://allmcps.com/mcp/kushaim-practice-fusion-mcp"><img src="https://allmcps.com/api/badge/kushaim-practice-fusion-mcp?style=directory" alt="Practice Fusion MCP on AllMCPs" /></a>