A Model Context Protocol (MCP) server implementation for Azure Health Data Services FHIR (Fast Healthcare Interoperability Resources). This service provides a standardized interface for interacting with Azure FHIR servers, enabling healthcare data operations through MCP tools.
Requires Python 3.13 or higher.
Install the package using pip:
pip install azure-fhir-mcp-server1 - Edit Claude Desktop Configuration:
Open claude_desktop_config.json and add the following configuration.
On MacOs, the file is located here: ~/Library/Application Support/Claude Desktop/claude_desktop_config.json.
On Windows, the file is located here: %APPDATA%\Claude Desktop\claude_desktop_config.json.
{
"mcpServers": {
"fhir": {
"command": "azure-fhir-mcp-server",
"env": {
"LOG_LEVEL": "INFO",
"fhirUrl": "https://your-fhir-server.azurehealthcareapis.com/fhir",
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"tenantId": "your-tenant-id"
}
}
}
}The following is a table of available environment configuration variables:
| Variable | Description | Default |
|---|---|---|
LOG_LEVEL |
Logging level | INFO |
fhirUrl |
Azure FHIR server URL | Required |
clientId |
OAuth2 client ID | Required |
clientSecret |
OAuth2 client secret | Required |
tenantId |
Azure AD tenant ID | Required |
2 - Restart Claude Desktop.
search_fhir- Search for FHIR resources based on a dictionary of search parameters
The server provides access to all standard FHIR resources through the MCP resource protocol:
fhir://Patient/- Access all Patient resourcesfhir://Patient/{id}- Access a specific Patient resourcefhir://Observation/- Access all Observation resourcesfhir://Observation/{id}- Access a specific Observation resourcefhir://Medication/- Access all Medication resourcesfhir://Medication/{id}- Access a specific Medication resource- And many more...
1 - Clone the repository:
git clone https://github.com/erikhoward/azure-fhir-mcp-server.git
cd azure-fhir-mcp-server2 - Create and activate virtual environment:
Linux/macOS:
python -m venv .venv
source .venv/bin/activateWindows:
python -m venv .venv
.venv\Scripts\activate3 - Install dependencies:
pip install -e ".[dev]"4 - Copy and configure environment variables:
cp .env.example .envEdit .env with your settings:
fhirUrl=https://your-fhir-server.azurehealthcareapis.com/fhir
clientId=your-client-id
clientSecret=your-client-secret
tenantId=your-tenant-id5 - Claude Desktop Configuration
Open claude_desktop_config.json and add the following configuration.
On MacOs, the file is located here: ~/Library/Application Support/Claude Desktop/claude_desktop_config.json.
On Windows, the file is located here: %APPDATA%\Claude Desktop\claude_desktop_config.json.
{
"mcpServers": {
"fhir": {
"command": "python",
"args": [
"-m",
"fhir_mcp_server.server"
],
"cwd": "/path/to/azure-fhir-mcp-server/repo",
"env": {
"LOG_LEVEL": "DEBUG",
"fhirUrl": "https://your-fhir-server.azurehealthcareapis.com/fhir",
"clientId": "your-client-id",
"clientSecret": "your-client-secret",
"tenantId": "your-tenant-id"
}
}
}
}6 - Restart Claude Desktop.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m '⨠Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Licensed under MIT - see
This is not an official Microsoft or Azure product.