mcp-fhir
Access and search FHIR resources with standardized formats for healthcare data. Interact with FHIR resources via URIs and utilize search capabilities for efficient data retrieval.
Author

flexpa
Quick Info
Actions
Tags
@flexpa/mcp-fhir
[!WARNING] This is an experimental demo not intended for production use.
This is a TypeScript-based MCP server that connects to a FHIR server. It provides core MCP functionality for interacting with FHIR resources by:
- Accessing FHIR resources via URIs
- Providing search capabilities for FHIR resources
Features
Resources
[!TIP] "Resources" here refers to the MCP definition not the FHIR one. MCP Resources are a core primitive in the Model Context Protocol (MCP) that allow servers to expose data and content that can be read by clients and used as context for LLM interactions.
- List and access FHIR resources via
fhir://URIs - Resources are returned in FHIR JSON format
- Supports all FHIR Resource types available in the FHIR server's CapabilityStatement
Tools
search_fhir- Search FHIR resources- Takes
resourceTypeandsearchParamsas parameters - Returns FHIR search results
read_fhir- Read an individual FHIR resource- Takes
urias a parameter - Returns the FHIR resource in JSON format
Configuration
The server requires the following environment variables:
- FHIR_BASE_URL: The base URL of your FHIR server
- FHIR_ACCESS_TOKEN: A SMART on FHIR access token for authentication
Development
Install dependencies:
npm install
Build the server:
npm run build
For development with auto-rebuild:
npm run watch
Installation
To use with Claude Desktop, add the server config:
On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"fhir": {
"command": "/path/to/@flexpa/mcp-fhir/build/index.js"
},
"env": {
"FHIR_BASE_URL": "<FHIR_BASE_URL>",
"FHIR_ACCESS_TOKEN": "<FHIR_ACCESS_TOKEN>"
}
}
}
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
npm run inspector
The Inspector will provide a URL to access debugging tools in your browser.
