/ Directory / Playground / FHIR MCP Server
● Community the-momentum ⚡ Instant

FHIR MCP Server

by the-momentum · the-momentum/fhir-mcp-server

Query and write to any FHIR-compliant healthcare server via MCP.

FHIR (Fast Healthcare Interoperability Resources) is the standard API for clinical data. This MCP lets Claude query any FHIR server — patient records, observations, medications — and follow the spec's resource references like a real EHR app.

Why use it

Key features

Live Demo

What it looks like in practice

fhir-mcp-server.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "fhir-mcp-server": {
      "command": "uvx",
      "args": [
        "fhir-mcp-server"
      ]
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "fhir-mcp-server": {
      "command": "uvx",
      "args": [
        "fhir-mcp-server"
      ]
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "fhir-mcp-server": {
      "command": "uvx",
      "args": [
        "fhir-mcp-server"
      ]
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "fhir-mcp-server": {
      "command": "uvx",
      "args": [
        "fhir-mcp-server"
      ]
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "fhir-mcp-server",
      "command": "uvx",
      "args": [
        "fhir-mcp-server"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "fhir-mcp-server": {
      "command": {
        "path": "uvx",
        "args": [
          "fhir-mcp-server"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add fhir-mcp-server -- uvx fhir-mcp-server

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use FHIR MCP Server

Build a chronological clinical timeline for one patient

👤 Clinical informatics, research teams ⏱ ~15 min intermediate

When to use: You need a summary of one patient's encounters, meds, and labs across visits.

Prerequisites
  • Server/skill installed and authenticated — See repo README
Flow
  1. Get the patient
    Find Patient with identifier MRN-12345 and return name, DOB, and active conditions.✓ Copied
    → One Patient + Condition list
  2. Build the timeline
    Retrieve all Encounters and MedicationRequests for that patient in the last 12 months. Sort chronologically and summarize.✓ Copied
    → Time-sorted list with encounter type + meds prescribed

Outcome: A clinician-readable summary you can paste into a chart note.

Pitfalls
  • Real PHI — Real PHI — never connect this to a chat that's also pasting screenshots to a third-party service. Use a HIPAA-compliant Claude deployment.
Combine with: filesystem · memory

Combinations

Pair with other MCPs for X10 leverage

fhir-mcp-server + filesystem

Pair with filesystem for complementary capabilities

Use this server together with filesystem to complete a multi-step task.✓ Copied
fhir-mcp-server + memory

Pair with memory for complementary capabilities

Use this server together with memory to complete a multi-step task.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
fhir_search resource_type, params Find resources matching criteria 1 API call
fhir_read resource_type, id Read one specific resource 1 API call
fhir_create resource_type, body Write a new clinical resource 1 API call

Cost & Limits

What this costs to run

API quota
See provider docs for rate limits
Tokens per call
Varies by tool
Monetary
See repo README for pricing details
Tip
Cache tool results and avoid repeated identical calls.

Security

Permissions, secrets, blast radius

Credential storage: Use environment variables; never commit secrets
Data egress: Tool calls go to the provider's API as documented

Troubleshooting

Common errors and fixes

401 from FHIR server

Most FHIR servers use SMART-on-FHIR. Generate a token via your EHR's auth flow and set FHIR_TOKEN.

Verify: fhir_search Patient?_count=1 returns a Bundle
Unsupported resource type

Different servers implement different subsets. Check the CapabilityStatement: GET /metadata.

Verify: Confirm the resource type is in CapabilityStatement.rest.resource

Alternatives

FHIR MCP Server vs others

AlternativeWhen to use it insteadTradeoff
wso2/fhir-mcp-serverYou're on the WSO2 stackTighter WSO2 integration

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills