
MCP Server for EMRs with FHIR
概览
A Model Context Protocol (MCP) server that provides healthcare tools and prompts for interacting with FHIR data and medical resources on EMRs like Cerner and Epic. - EMR integrartion using SMART on FHIR APIs - Uses OAuth2 to authenticate with EMRs - Anthropic Claude Desktop integration - Medical research integration (PubMed, Clinical Trials, FDA) - Response caching - Error handling - Null-safe data formatting - Comprehensive clinical analysis - find_patient - Search for a patient by name, DOB, or other identifiers - get_patient_observations - Retrieve patient observations/vital signs - get_patient_conditions - Get patient's active conditions - get_patient_medications - Get patient's current medications - get_patient_encounters - Get patient's clinical encounters - get_patient_allergies - Get patient's allergies and intolerances - get_patient_procedures - Get patient's procedures - get_patient_careteam - Get patient's care team members - get_patient_careplans - Get patient's active...
README
以下为原文 README 节选,完整内容请查看原文。
Agent Care: An MCP Server for EMRs like Cerner and Epic
A Model Context Protocol (MCP) server that provides healthcare tools and prompts for interacting with FHIR data and medical resources on EMRs like Cerner and Epic.
Demo
Features
- EMR integrartion using SMART on FHIR APIs
- Uses OAuth2 to authenticate with EMRs
- Anthropic Claude Desktop integration
- Medical research integration (PubMed, Clinical Trials, FDA)
- Response caching
- Error handling
- Null-safe data formatting
- Comprehensive clinical analysis
Screenshots
Tools
FHIR Tools
find_patient- Search for a patient by name, DOB, or other identifiersget_patient_observations- Retrieve patient observations/vital signsget_patient_conditions- Get patient’s active conditionsget_patient_medications- Get patient’s current medicationsget_patient_encounters- Get patient’s clinical encountersget_patient_allergies- Get patient’s allergies and intolerancesget_patient_procedures- Get patient’s proceduresget_patient_careteam- Get patient’s care team membersget_patient_careplans- Get patient’s active care plansget_vital_signs- Get patient’s vital signsget_lab_results- Get patient’s laboratory resultsget_medications_history- Get patient’s medication historyclinical_query- Execute custom FHIR queries
Medical Research Tools
search-pubmed- Search PubMed articles related to medical conditionssearch-trials- Find relevant clinical trialsdrug-interactions- Check drug-drug interactions
Usage
Each tool requires specific parameters:
Required Parameters
- Most tools require
patientId - Some tools have additional parameters:
lab_trend_analysis: requireslabTypesearch-pubmed: requiresqueryand optionalmaxResultssearch-trials: requiresconditionand optionallocationdrug-interactions: requiresdrugsarray
Development Configuration
-
To use with Cerener: Go to https://code-console.cerner.com and create a sandbox account, create a new provider app and get the clientId/secret. (note: ec2458f2-1e24-41c8-b71b-0e701af7583d below is the tenant id for cerner developer sandbox)
-
To use with Epic: Go to https://fhir.epic.com/Developer/Apps , sign up as developer and create a new app and get the clientId/secret.
-
For PubMed, Clinical Trials and FDA, you need to get the API keys from the respective websites.
安装
npx -y @modelcontextprotocol/server-filesystem /Users/your-username/Desktop配置
for claude desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
(use the env variables as shown above)
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/your-username/Desktop"
]
},
"agent-care": {
"command": "node",
"args": [
"/Users/your-username/{agentcare-download-path}/agent-care-mcp/build/index.js"
],
"env": {
"clientId": XXXXXX,
"clientSecret":XXXXXXX,
"tokenHost":,
"tokenPath":,
"authorizePath",
"authorizationMethod": ,
"audience":,
"callbackURL":,
"scopes":,
"callbackPort":,
"FHIR_BASE_URL":,
"PUBMED_API_KEY":,
"CLINICAL_TRIALS_API_KEY":,
"FDA_API_KEY":
}
}
}
}