Fhir MCP Server
FHIR API interactions for clinical data retrieval and analysis within AI environments.
Data last scanned today · Reviewed today
Overview
The Fhir MCP Server bridges the gap between AI models and Fast Healthcare Interoperability Resources (FHIR) APIs. It enables developers to search, retrieve, and analyze clinical information directly through an MCP-compliant interface, supporting workflows that require interaction with healthcare data standards. Built in Python and maintained by WSO2, the server includes documentation for integration with HAPI FHIR servers and the EPIC Sandbox. It is designed to facilitate quick deployments via Docker or PyPI for healthcare innovation projects.
Our verdict
With a security score of 63/100, this server holds a medium risk level. The lack of documented OAuth support is a significant concern for production healthcare environments handling sensitive data, as it may complicate secure access control. Users should proceed with caution, particularly as the implementation currently lacks a read-only mode, meaning all connected clients could potentially exercise write access. It is best suited for controlled development or testing environments.
- Maintained directly by the official WSO2 organization.
- Zero direct dependencies reduce the supply-chain surface area.
- Active development repository with commits as recent as 19 days.
- Provides real, documented examples for HAPI and EPIC integrations.
- No OAuth support detected for securing API requests.
- Lacks a read-only mode, exposing full write capabilities by default.
- Not yet undergone an editorial security review.
Tools
| Tool | Description | Risk |
|---|---|---|
| get_capabilities | Retrieves metadata about a specified FHIR resource type, including its supported search parameters and custom operations. | low |
| search | Executes a standard FHIR search interaction on a given resource type, returning a bundle or list of matching resources. | low |
| read | Performs a FHIR "read" interaction to retrieve a single resource instance by its type and resource ID, optionally refining the response with search parameters or custom operations. | low |
| create | Executes a FHIR "create" interaction to persist a new resource of the specified type. | medium |
| update | Performs a FHIR "update" interaction by replacing an existing resource instance's content with the provided payload. | medium |
| delete | Execute a FHIR "delete" interaction on a specific resource instance. | high |
| get_user | Retrieves the currently authenticated user's FHIR resource and returns a concise profile containing available demographic fields. | low |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›What are the core system requirements for running the FHIR MCP server?
You need Python 3.8 or higher, the uv package manager, and access to a FHIR API server.
›Does the server support authorization for FHIR APIs?
Yes, the server supports SMART-on-FHIR based authentication, including OAuth 2.0 Authorization Code Grant flows. Authorization is enabled by default, but you can disable it by setting the FHIR_SERVER_DISABLE_AUTHORIZATION environment variable to True.
›Which environment variables are required to configure the server?
You must define the FHIR_SERVER_BASE_URL. If authorization is enabled, you also need to provide FHIR_SERVER_CLIENT_ID, FHIR_SERVER_CLIENT_SECRET, and FHIR_SERVER_SCOPES.
›Can I filter the data returned by the FHIR server?
Yes, the server supports response filtering using FHIRPath expressions for both read and search operations, which allows you to retrieve only the specific fields needed and reduce payload sizes.
›What transport modes does the server support?
The server is compatible with stdio, SSE, and streamable HTTP transport protocols.
Badge
Maintain this server? Add the live badge to your README.