
Langcare Mcp Fhir
io.github.langcarePublished by GitHub account langcarev2.0.4Updated Oct 24, 2026
An MCP FHIR server written in Go for EMR systems like Epic and Cerner
Overview
A local MCP server that proxies an assistant to FHIR R4 EMR systems such as Epic, Cerner, OpenEMR and GCP Healthcare API, exposing four generic FHIR operations.
- What you can do
- Read and search any FHIR R4 resource type by type, ID and query parameters (fhir_read, fhir_search). Create and update FHIR resources such as Patient or Observation (fhir_create, fhir_update). Open interactive in-host views: a FHIR Explorer browser and a Patient Chart Review dashboard with demographics, conditions, medications, vitals and lab trends. Optionally pair with a library of clinical workflow guides covering medication, labs, documentation and population health.
- When to use it
- Useful when an assistant needs to work against a real FHIR R4 clinical backend — looking up patients, reviewing charts, or drafting and updating records — rather than a generic database. It suits clinical and health-IT workflows where the EMR already speaks FHIR.
- Requirements
- Runs locally as an npm package (Node.js) started over stdio, or as a Go binary; a YAML config file pointing at the FHIR backend is required, passed with the -config argument. Backend credentials depend on the provider: bearer token, OAuth2, SMART on FHIR private_key_jwt, or basic auth, supplied via environment variables. Network access to the FHIR server is needed.
Installation
In SourceWeft
- Open Langcare Mcp Fhir in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
LangCare MCP FHIR Server
[GitHub Stars] [Contributors] [License] [Go Version]
Enterprise-grade MCP Server for FHIR-based EMRs. Fully written in Go with enterprise-grade security and 4 generic FHIR operations that work with any FHIR R4 resource type. Supports EPIC, Cerner, OpenEMR, GCP Healthcare API, and any generic FHIR R4 server.
Ships with a 40+ Clinical Skills Library — agent-agnostic workflow guides covering medication management, lab interpretation, clinical decision support, documentation, population health, and more. Extend with ✨ New: Claude Managed Agents (9 production-ready clinical AI agents on the Anthropic Managed Agents API), MCP Apps (interactive clinical UIs inside Claude Desktop), a Healthcare Voice Agent (real-time voice AI over FHIR), and a LangCare CLI for agent frameworks that don't speak MCP natively.
[LangCare MCP FHIR — Healthcare AI Agents with FHIR MCP Server for EMRs]
langcare.ai
Installation
Install via npm:
Or use directly without installation:
Quick Configuration
LangCare MCP FHIR connects Claude to your FHIR-based EMR system. You need a YAML configuration file pointing to your backend.
1. Get a Config Template
Choose your backend:
- EPIC: config.epic.example.yaml
- Cerner: config.cerner.example.yaml
- OpenEMR: config.openemr.example.yaml
- GCP Healthcare API: config.gcp.example.yaml
- Any FHIR R4 Server: config.base.example.yaml
2. Configure Claude Desktop
Add to your Claude Desktop config file (~/.config/Claude/claude_desktop_config.json):
On macOS, the config is typically at:
3. Restart Claude Desktop
Close and reopen Claude Desktop. The FHIR tools will now be available.
Need detailed setup help? See the Local Testing Guide.
Architecture
This MCP server acts as an intelligent proxy between AI agents and FHIR R4 servers. It exposes 4 generic FHIR operations through the Model Context Protocol (MCP), enabling AI-powered workflows for any FHIR resource type.
Key Design:
- MCP SDK: Official
github.com/modelcontextprotocol/go-sdk(Anthropic/Google maintained) - FHIR Client: Generic HTTP client working with any FHIR R4 server
- Transport: stdio and Streamable HTTP
- Backend: Proxy to existing FHIR server (no database)
- Language: 100% Go for high performance and reliability
4 Generic MCP Tools
All tools work with any FHIR resource type (Patient, Observation, Medication, etc.):
1. fhir_read
Read a FHIR resource by type and ID.
2. fhir_search
Search FHIR resources with query parameters.
3. fhir_create
Create a new FHIR resource.
4. fhir_update
Update an existing FHIR resource.
Security Architecture
LangCare MCP FHIR implements a two-layer security model for HIPAA-compliant healthcare data access:
Security Features
- ✅ TLS 1.3 encryption for HTTP transport
- ✅ PHI Scrubbing in logs (enabled by default)
- ✅ HIPAA-compliant audit logging
- ✅ No persistent PHI storage (stateless proxy)
- ✅ Secrets via environment variables (never in config files)
- ✅ OAuth 2.0 with automatic token refresh
- ✅ mTLS support for service-to-service communication
- ✅ Rate limiting per client
Supported Authentication Methods
- Bearer Token - Simple API key authentication
- OAuth2 - Full OAuth2 flow with token refresh
- SMART on FHIR Backend Services -
private_key_jwt(RS384) for EPIC, OpenEMR, and other SMART-conformant EMRs - SMART on FHIR - EPIC, Cerner, OpenEMR, and other EMR standards
- Basic Auth - Username/password authentication
- Custom - Extensible for additional auth methods
For complete security documentation, see Security Guide:
- HIPAA compliance checklist
- OAuth configuration for EPIC/Cerner/GCP
- Kubernetes security manifests
- Credential management procedures
- Audit logging implementation
MCP Apps (Interactive UIs)
LangCare MCP FHIR ships with built-in MCP Apps — interactive, rich UI views that run directly inside MCP-capable hosts like Claude Desktop. Unlike traditional chat-based tool output, MCP Apps render full React-based interfaces with charts, tables, and interactive controls while using the same underlying FHIR tools.
How it works: Each app is a single-file HTML bundle (React + TypeScript, compiled with Vite) that gets embedded into the Go binary at compile time via go:embed. At runtime the MCP server registers each app as both an MCP Resource (text/html;profile=mcp-app) and a dedicated MCP Tool linked via _meta.ui.resourceUri. When an MCP host calls the tool, it fetches the resource and renders the UI. The app calls back into the server's generic FHIR tools (fhir_search, fhir_read, etc.) through app.callServerTool() — no LLM round-trips for data fetching.
Advantages over plain tool output:
- Rich visualization — SVG charts, color-coded cards, expandable detail panels
- Interactive controls — search fields, date range pickers, click-to-expand rows
- Deterministic data fetching — apps call FHIR tools directly, no LLM involvement in data retrieval
- Zero external dependencies — everything inlines into a single HTML file, embedded in the binary
- Works offline — no CDN, no external scripts, no network requests beyond FHIR API calls
Built-in Apps
Both apps are reference implementations demonstrating the MCP Apps pattern. See apps/README.md for architecture details and how to build new apps.
[Patient Chart Review — clinical dashboard with vitals trends, conditions, medications, and labs]
Patient Chart Review running inside Claude Desktop
Agent Usage
AI agents use LangCare MCP FHIR Server to help healthcare professionals access and manage patient health records through 4 FHIR tools. The server handles EMR authentication, allowing agents to focus on clinical workflows while maintaining strict privacy and accuracy standards.
Agent capabilities:
- Search, Read, Create, Update - Any FHIR R4 resource (Patient, Observation, Medication, etc.)
- Patient privacy - Use partial identifiers, confirm identity before updates
- Clinical accuracy - Verify data, use standard codes (LOINC, SNOMED, RxNorm)
- Professional communication - Structure responses with context, findings, and next steps
Common workflows:
- Patient lookup: Search by name/DOB → verify identity → read full details
- Clinical review: Retrieve labs, vitals, medications → present with reference ranges
- Documentation: Extract structured data → map to FHIR resources → confirm → create
- Updates: Verify existing resource → modify → confirm changes → update
System support:
- Works with any FHIR R4 resource type (60+ types including DocumentReference, Binary, Media)
- Automatic authentication and token refresh to EPIC, Cerner, OpenEMR, GCP Healthcare API
- HIPAA-compliant PHI handling with audit logging
- Comprehensive OAuth2 scopes for clinical data access
📖 Complete guide: Agent Prompt Guide - System prompt, tool examples, workflows, and error handling
Clinical Skills Library (Optional)
40+ agent-agnostic clinical workflow guides that teach AI agents how to perform complex healthcare tasks using the MCP server's 4 FHIR tools (fhir_search, fhir_read, fhir_create, fhir_update).
- Optional - The MCP server works without them
- Portable - Work with Claude, ChatGPT, Gemini, or any AI agent
- Evidence-based - Built on USPSTF, ADA, ACC/AHA, CDC, ACOG, KDIGO, and other society guidelines
- Copy-paste ready - Add a skill's
SKILL.mdto your agent's system prompt or custom instructions
Skill Categories (40 Skills)
Full catalog with links: skills/README.md
How to Use Skills
- Browse the skills/core/ directory and pick a skill
- Copy the skill's
SKILL.mdcontent into your AI agent's system prompt or custom instructions - Reference files in each skill's
references/subdirectory contain detailed clinical knowledge (scoring criteria, code tables, thresholds) that can optionally be included for deeper clinical accuracy
Integration guides: Claude | ChatGPT | Gemini
Community contributions welcome - see CONTRIBUTING.md for guidelines.
Development & Testing
Build from Source
Run Locally (stdio mode)
Run in HTTP Mode (Streamable HTTP)
Starts the server with Streamable HTTP transport on /mcp and health check on /health.
Run Tests
Lint Code
Deploy to Fly.io (Remote Streamable HTTP)
Deploy as a remote MCP server with Streamable HTTP transport, accessible by any MCP-compatible AI agent from anywhere.
Connect any MCP client to:
Claude Desktop (claude_desktop_config.json):
Supports EPIC and GCP Healthcare API providers. See fly/README.md for provider setup, secrets, and full deployment guide.
Local Testing with EPIC
For step-by-step instructions on setting up EPIC credentials and testing locally:
This guide covers:
- Generating RSA keys and JWKS
- Configuring EPIC credentials
- Running the server locally
- Testing with Claude Desktop
- Troubleshooting common issues
Quick credential test:
Project Structure
Note: The following are gitignored and not committed:
keys/- Private keys and credentialsconfig.local.*.yaml- Local configuration filesbin/- Compiled binaries.env- Environment variablesapps/node_modules/,apps/dist/,apps/dist-tmp/- App build artifacts
Healthcare Voice Agent
Real-time voice AI that lets patients ask about their health records and get spoken answers pulled directly from their EMR.
[Healthcare Voice Agent Architecture — PipeCat + LangCare MCP]
The stack: PipeCat (open-source, Daily.co) for the voice pipeline — STT, LLM orchestration, TTS with sub-3-second latency. Claude for clinical reasoning and tool calling. LangCare MCP FHIR Server (open-source, Go) as a stateless proxy to any FHIR R4 EMR — Epic, Cerner, GCP Healthcare API.
MCP is the glue. PipeCat's native MCP client auto-discovers FHIR tools at startup. Patient asks "What medications am I on?" — Claude calls fhir_search — PipeCat routes it to the MCP server — data comes back — Claude responds in natural speech. No manual tool schemas needed.
Three-layer HIPAA auth: Caller identity verified before the session starts, bearer token to MCP, OAuth2/SMART on FHIR to EMR. Zero PHI storage.
Everything is swappable. Replace Claude with Gemini, DeepGram with Google STT, Daily with WebSocket. The MCP FHIR layer and clinical prompts stay the same.
Full documentation and setup guide
LangCare CLI
Command-line interface that wraps the 4 FHIR MCP tools (fhir_search, fhir_read, fhir_create, fhir_update) as CLI subcommands over HTTP. Built for AI agent frameworks that don't speak MCP natively — LangChain, smolagents, CrewAI, AutoGen, and any framework that can call a subprocess. The CLI handles the MCP session handshake internally, so agents get clean JSON on stdout with no protocol knowledge required.
The 40+ clinical skills in the Skills Library work as-is — skills reference abstract tool names, not transport. Register the CLI as subprocess tools in your agent framework and skills run without modification.
Full documentation and setup guide
Documentation
Getting Started
- 📖 Local Development & Testing Guide - Complete guide for local setup and testing
- 🚀 Installation & Configuration - Quick setup guide above
Agent Integration
- 🤖 Agent Prompt Guide - Complete guide for AI agents using LangCare MCP FHIR (tool examples, workflows, best practices)
Security & Authentication
- 🛡️ Security Documentation - Complete security architecture and HIPAA compliance
- 🔐 EPIC Setup Guide - JWT authentication, key generation, and JWKS registration
- 🔐 OpenEMR Setup Guide - SMART on FHIR Backend Services (
private_key_jwt/RS384) setup, JWKS generation, and OpenEMR API client registration - 📋 EPIC Scopes Reference - Complete OAuth2 scopes guide for FHIR resources
- 🔑 Authentication Methods - Supported auth methods
Deployment
- Fly.io Deployment Guide - Remote Streamable HTTP deployment, provider configs, secrets, Docker
Development & Testing
- 🧪 Testing Methods - Claude Desktop, MCP Inspector, manual testing, and automation
- 📦 Project Structure - Directory layout and architecture
- 🔧 Build Commands - Development workflow
Dependencies
github.com/modelcontextprotocol/go-sdk- Official MCP SDKgopkg.in/yaml.v3- Configuration parsinggolang.org/x/oauth2- OAuth2 client librarygithub.com/golang-jwt/jwt/v5- JWT signing and verification- Go 1.25+
HIPAA Compliance
- PHI scrubbing enabled by default
- Never logs patient identifiers
- TLS support for HTTP transport
- Proper error sanitization
- Audit logging ready
- Stateless proxy design (no persistent storage)
Testing
Public Test Server
Default configuration uses HAPI FHIR public test server (https://hapi.fhir.org/baseR4) for immediate testing without setup.
Test Your Setup
- 📖 Local Development & Testing Guide - Complete guide for setup, testing with Claude Desktop, MCP Inspector, and automation
- 🔐 EPIC Security Setup - Detailed EPIC authentication guide
- 🛡️ Security Documentation - Production deployment and security
Claude Managed Agents
9 production-ready clinical AI agents built on the Anthropic Managed Agents API. Each agent connects to a LangCare MCP FHIR Server and uses a curated set of domain-specific clinical skills drawn from the 40+ Clinical Skills Library. Sessions are persistent, visible at platform.claude.com/workspaces/default/sessions, and can be run interactively or driven by a single prompt.
[LangCare — Claude Managed Agents]
Quickstart
setup.sh is idempotent — safe to re-run. At the end it prints the Environment ID and Vault ID needed for sessions.
Full guide: cma/README.md — env vars, all scripts reference, troubleshooting.
Contributing
We welcome contributions from healthcare professionals, developers, and informaticists!
There are three main ways to contribute:
1. Core MCP Server (Go Development)
- Bug fixes and performance improvements
- New FHIR provider implementations (AllScripts, Athenahealth, etc.)
- Security enhancements and observability features
- Testing and CI/CD improvements
2. Clinical Skills (Healthcare Workflows)
- Evidence-based clinical workflows using FHIR
- Specialty-specific protocols (cardiology, oncology, etc.)
- Population health and quality measure workflows
- Clinical decision support algorithms
Skills are agent-agnostic workflow guides that work across Claude, ChatGPT, and Gemini. No coding required - just clinical expertise and FHIR knowledge!
3. MCP Apps (Interactive UIs)
- New clinical or administrative UI apps
- Enhancements to existing apps (FHIR Explorer, Patient Chart Review)
- Reusable components and patterns for healthcare UIs
See apps/README.md for the development guide.
4. Agent Integrations (Platform Setup)
- Setup guides for new AI platforms
- Deployment examples (Docker, Kubernetes, cloud)
- Monitoring and observability setups
- CI/CD pipelines
Get started: Read CONTRIBUTING.md for detailed guidelines, code standards, and submission process.
Recognition: Contributors are credited in README, release notes, and skill/integration author credits. Outstanding contributors may be invited as maintainers.
Questions? Open a GitHub Discussion or issue!
Community
- GitHub Discussions - Ask questions, share ideas: https://github.com/langcare/langcare-mcp-fhir/discussions
- GitHub Issues - Report bugs, request features: https://github.com/langcare/langcare-mcp-fhir/issues
- Contributing Guide - How to contribute: https://github.com/langcare/langcare-mcp-fhir/blob/main/CONTRIBUTING.md
- Skills - Clinical workflows: https://github.com/langcare/langcare-mcp-fhir/blob/main/skills/README.md
License
See LICENSE file.
Built with ❤️ by the LangCare team and contributors.
Improving healthcare through better AI infrastructure.
Source: README.md at commit 430598b
Tools
0Version history
1- v2.0.4LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts