io.github.pcmedsinge/mcp-fhir
FHIR R4 read/search/validate MCP server — US Core/IPS profiles, SMART-on-FHIR auth (Epic/Cerner).
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
mcp-fhirclaude mcp add mcp-fhir -e 'FHIR_BASE_URL=<FHIR_BASE_URL>' -e 'SMART_ENABLED=<SMART_ENABLED>' -- uvx mcp-fhir==1.1.1
{
"mcpServers": {
"mcp-fhir": {
"command": "uvx",
"args": [
"mcp-fhir==1.1.1"
],
"env": {
"FHIR_BASE_URL": "<FHIR_BASE_URL>",
"SMART_ENABLED": "<SMART_ENABLED>"
}
}
}
}
Environment variables
FHIR_BASE_URLBase URL of the FHIR R4 server (default: https://hapi.fhir.org/baseR4)SMART_ENABLEDSet to 'true' to enable SMART-on-FHIR OAuth 2.0 (Epic/Cerner)
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
fhir-mcp-suite
Three coherent MCP servers for clinical AI — FHIR R4, terminologies, and clinical reasoning.
What's in the suite
| Server | Status | Install | What it does |
|---|---|---|---|
| mcp-fhir | ✅ v1.1.1 on PyPI | uvx mcp-fhir | FHIR R4 read/search + HAPI profile validation |
| mcp-terminology | ✅ v1.0 on PyPI | uvx mcp-terminology | Unified LOINC / SNOMED / RxNorm / ICD-10 lookup + ValueSet expansion |
| mcp-clinical-reasoner | ✅ v1.0 on PyPI | uvx mcp-clinical-reasoner | Drug interactions (OpenFDA), dose check, allergy conflicts |
Why this suite is different
Every FHIR MCP server available today (June 2026) is a read proxy — they retrieve resources but
never tell you whether the resource is valid. mcp-fhir adds HAPI profile validation as a
first-class MCP tool. Composing fhir_read → validate_against_profile in one Claude session
enables clinical AI pipelines that are actually safe.
Three sharp differentiators:
- Profile validation built into
mcp-fhir— HAPI validator sidecar, US Core + IPS profiles supported out of the box - Composable suite — three coherent servers sharing one install, one config convention, one eval harness
- Production rigor — latency benchmarks, golden-query eval suite, structured JSON logs,
/health+ LangFuse traces
Quick start — mcp-fhir
# 1-command install (requires Python 3.12+)
uvx mcp-fhir
# Validate a Patient against US Core
# (requires HAPI validator sidecar — see docker-compose.yml)
uvx mcp-fhir --transport sse # or set MCP_TRANSPORT=sse
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json
(Windows: %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"fhir": {
"command": "uvx",
"args": ["mcp-fhir"],
"env": {
"FHIR_BASE_URL": "https://hapi.fhir.org/baseR4"
}
},
"terminology": {
"command": "uvx",
"args": ["mcp-terminology"]
},
"clinical-reasoner": {
"command": "uvx",
"args": ["mcp-clinical-reasoner"]
}
}
}
Local dev stack
# Start HAPI FHIR + validator + Postgres
docker compose up hapi-fhir hapi-validator postgres
# Install workspace
uv sync
# Run unit tests
uv run pytest -m "not integration and not eval"
# Run mcp-fhir locally (stdio, points at local HAPI)
FHIR_BASE_URL=http://localhost:8081/fhir \
HAPI_VALIDATOR_URL=http://localhost:8082 \
uv run mcp-fhir
Repo layout
fhir-mcp-suite/
├── packages/
│ ├── mcp-fhir/ # PyPI: mcp-fhir ✅ v1.1
│ ├── mcp-terminology/ # PyPI: mcp-terminology ✅ v1.0
│ └── mcp-clinical-reasoner/ # PyPI: mcp-clinical-reasoner ✅ v1.0
├── shared/ # structlog, LangFuse, base Pydantic models, eval harness
├── evals/ # golden query sets per server
├── docs/ # MkDocs Material site
├── .github/workflows/ # ci.yml (matrix) + release.yml (per-package PyPI on tag)
├── docker-compose.yml # all 3 + HAPI validator + Postgres
├── pyproject.toml # uv workspace root
└── mkdocs.yml
Releases
| Package | Version | Released |
|---|---|---|
mcp-fhir | v1.1 | June 2026 |
mcp-terminology | v1.0 | June 2026 |
mcp-clinical-reasoner | v1.0 | June 2026 |
Contributing
See CONTRIBUTING.md. Apache-2.0 licensed — PRs welcome.
Frequently asked questions
What is io.github.pcmedsinge/mcp-fhir?
FHIR R4 read/search/validate MCP server — US Core/IPS profiles, SMART-on-FHIR auth (Epic/Cerner).
How do I install io.github.pcmedsinge/mcp-fhir?
It runs on your machine. In Claude Code: claude mcp add mcp-fhir -e 'FHIR_BASE_URL=<FHIR_BASE_URL>' -e 'SMART_ENABLED=<SMART_ENABLED>' -- uvx mcp-fhir==1.1.1. For other clients, paste the JSON configuration from this page into their MCP settings.
Does io.github.pcmedsinge/mcp-fhir need an API key?
Its registry entry lists no required key or secret. Some features may still need an account with the service it connects to.
Is io.github.pcmedsinge/mcp-fhir open source?
Its code is public on GitHub, but the repository does not declare a standard license.
Who maintains io.github.pcmedsinge/mcp-fhir?
It is published by pcmedsinge. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.