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 and uv
.
Install uv first.
1 - 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": "uvx",
"args": [
"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-server
2 - Create and activate virtual environment:
Linux/macOS:
python -m venv .venv
source .venv/bin/activate
Windows:
python -m venv .venv
.venv\Scripts\activate
3 - Install dependencies:
pip install -e ".[dev]"
4 - Copy and configure environment variables:
cp .env.example .env
Edit .env with your settings:
fhirUrl=https://your-fhir-server.azurehealthcareapis.com/fhir
clientId=your-client-id
clientSecret=your-client-secret
tenantId=your-tenant-id
5 - 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": "uv",
"args": [
"--directory",
"/path/to/azure-fhir-mcp-server/repo",
"run",
"azure_fhir_mcp_server"
],
"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 LICENSE.md file.
This is not an official Microsoft or Azure product.