Google Cloud Healthcare API MCP Server
by Kartha-AI
This is a Model Context Protocol (MCP) server that provides healthcare tools for interacting with FHIR resources on Google Cloud Healthcare API and public medical research APIs. It is designed to be used with MCP clients like Claude and Goose.
Last updated: N/A
An MCP Server for Google Cloud Healthcare API (FHIR)
A Model Context Protocol (MCP) server that provides healthcare tools for interacting with FHIR resources on Google Cloud Healthcare API and public medical research APIs like pubmed, using MCP clients like Claude and Goose.
This is a slightly modified version for AgentCare MCP Server for EHRs. https://github.com/Kartha-AI/agentcare-mcp
The maion differnce is that this repo talks to Google Cloud Healthcare FHIR APIs thru a SmartonFHIR gateway that's secured by Firebase Auth.
Architetcure
<img src="screenshots/architecture.png" alt="Architecture" width="700">Demo
- Claude: demo/claude-demo.mp4
- Goose: demo/goose-demo.mp4
Screenshots
<img src="screenshots/goose/goose-auth.png" alt="Auth" width="700"> <img src="screenshots/goose/goose-patient.png" alt="Patient" width="700"> <img src="screenshots/goose/goose-conditions.png" alt="Conditions" width="700"> <img src="screenshots/goose/goose-vitals.png" alt="Vitals" width="700"> <img src="screenshots/claude/gchapi.png" alt="GCHAPI" width="700"> <img src="screenshots/claude/convo.png" alt="Converse" width="700"> <img src="screenshots/claude/chart.png" alt="Timeline" width="700"> <img src="screenshots/claude/soap.png" alt="Soap Notes" width="700">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
: requireslabType
search-pubmed
: requiresquery
and optionalmaxResults
search-trials
: requirescondition
and optionallocation
drug-interactions
: requiresdrugs
array
refer to: /src/server/constants/tools.ts for tools specirfication
Use with claude desktop
for claude desktop:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
(use the env variables as shown above)
{
"mcpServers": {
"google-cloud-healthcare-api-mcp": {
"command": "node",
"args": [
"/Users/your-username/{google-cloud-healthcare-api-mcp dir}/build/index.js"
],
"env": {
"FIREBASE_API_KEY":"XXXXXXXXX",
"FIREBASE_AUTH_DOMAIN":"XXXXXXXX",
"FIREBASE_PROJECT_ID":"XXXXXXX",
"FIREBASE_STORAGE_BUCKET":"XXXXXXXXX",
"FIREBASE_MESSAGING_SENDER_ID":"XXXXXXX",
"FIREBASE_APP_ID":"XXXXXXXXX",
"FIREBASE_MEASUREMENT_ID":"XXXXXXXX",
"FIREBASE_AUTH_CALLBACK_PORT":"3456",
"FHIR_BASE_URL":"{gchapi-fhir-gateway-host}/fhir",
"PUBMED_API_KEY":"your_pubmed_api_key",
"CLINICAL_TRIALS_API_KEY":"your_trials_api_key",
"FDA_API_KEY":"your_fda_api_key"
}
}
}
}
Installing via Smithery
To install google-cloud-healthcare-api-mcp for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @Kartha-AI/google-cloud-healthcare-api-mcp --client claude
Start MCP Server Locally with MCP Inspector
git clone [email protected]:Kartha-AI/google-cloud-healthcare-api-mcp.git
cd google-cloud-healthcare-api-mcp
npm install
npm run build
npm install -g @modelcontextprotocol/inspector
mcp-inspector build/index.js
http://localhost:5173
Set up the env vars on Inspector
Troubleshooting:
If Claude desktop is running it uses port 3456 for Auth. You need to terminate that process using the following command:
kill -9 $(lsof -t -i:3456)