Health Gorilla MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Query Health Gorilla FHIR patients, conditions, medications and lab results.
16 tools: 2 can delete or cancel things, 1 change things and 13 only read.
Scanned Oct 21, 2026
- Deletes or cancels2Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads13Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http health-gorilla https://health-gorilla.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "healthgorilla_list_observations" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "healthgorilla_list_observations" says "list": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
16 tools
Deletes or cancels 2Claude Code: deny
healthgorilla_create_patientRegisters a NEW patient record in your Health Gorilla tenant.No findings
Why it is in this group
- The name "healthgorilla_create_patient" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Registers a NEW patient record in your Health Gorilla tenant. FHIR: POST /Patient with a minimal FHIR R4 Patient resource built from the given args. State-changing.
Annotations the server declares
- title: Create patient
- destructiveHint: true
healthgorilla_start_patient360_queryInitiates an asynchronous national-network records retrieval (CommonWell / Carequality / QHINs) that imports external documents into your tenant.No findings
Why it is in this group
- The name "healthgorilla_start_patient360_query" says "start": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Initiates an asynchronous national-network records retrieval (CommonWell / Carequality / QHINs) that imports external documents into your tenant. FHIR: GET /DocumentReference/$p360-retrieve?patient={id} with header 'Prefer: respond-async'. Returns the RequestResult poll URL (Location header); poll it with healthgorilla_poll_query_status. State-changing.
Annotations the server declares
- title: Start Patient360 query
- destructiveHint: true
Changes things 1Claude Code: ask
healthgorilla_list_observationsList a patient's observations (labs, vitals).1 finding
Why it is in this group
- The name "healthgorilla_list_observations" says "list": a word for reading.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "healthgorilla_list_observations" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "healthgorilla_list_observations" says "list": a word for reading.
Description, as the server wrote it List a patient's observations (labs, vitals). FHIR: GET /Observation?patient={id}. Filter by category (e.g. laboratory, vital-signs), LOINC code, or date. Returns a FHIR searchset Bundle.
Annotations the server declares
- title: List observations
- readOnlyHint: true
Only reads 13Claude Code: allow
healthgorilla_fhir_searchEscape hatch: run an arbitrary FHIR search.No findings
Why it is in this group
- The name "healthgorilla_fhir_search" says "search": a word for reading.
Description, as the server wrote it Escape hatch: run an arbitrary FHIR search. GET /{resource_type}?{query}. e.g. resource_type='Observation', query='patient=123&category=laboratory&_count=5'. Use when a dedicated tool does not cover your query.
Annotations the server declares
- title: Generic FHIR search
- readOnlyHint: true
healthgorilla_find_patientsSearch for patients by demographics.No findings
Why it is in this group
- The name "healthgorilla_find_patients" says "find": a word for reading.
Description, as the server wrote it Search for patients by demographics. FHIR: GET /Patient?given=&family=&birthdate=&identifier=. Returns a FHIR searchset Bundle. Use the returned Patient id with the other tools.
Annotations the server declares
- title: Find patients
- readOnlyHint: true
healthgorilla_get_binaryRetrieve raw document content by Binary id.No findings
Why it is in this group
- The name "healthgorilla_get_binary" says "get": a word for reading.
Description, as the server wrote it Retrieve raw document content by Binary id. FHIR: GET /Binary/{id}. Content may be a FHIR Binary JSON resource, XML C-CDA, or base64 — returned as-is (raw text if not JSON).
Annotations the server declares
- title: Get binary (document content)
- readOnlyHint: true
healthgorilla_get_coverageList a patient's insurance coverage.No findings
Why it is in this group
- The name "healthgorilla_get_coverage" says "get": a word for reading.
Description, as the server wrote it List a patient's insurance coverage. FHIR: GET /Coverage?patient={id}. Returns a FHIR searchset Bundle.
Annotations the server declares
- title: Get coverage
- readOnlyHint: true
healthgorilla_get_patientRead a single patient by id.No findings
Why it is in this group
- The name "healthgorilla_get_patient" says "get": a word for reading.
Description, as the server wrote it Read a single patient by id. FHIR: GET /Patient/{id}. Returns a FHIR Patient resource.
Annotations the server declares
- title: Get patient
- readOnlyHint: true
healthgorilla_get_patient_everythingFetch the comprehensive record for a patient as a FHIR Bundle.No findings
Why it is in this group
- The name "healthgorilla_get_patient_everything" says "get": a word for reading.
Description, as the server wrote it Fetch the comprehensive record for a patient as a FHIR Bundle. FHIR: GET /Patient/{id}/$everything. Optionally scope by _since and page with _count.
Annotations the server declares
- title: Get patient $everything
- readOnlyHint: true
healthgorilla_list_allergiesList a patient's allergies/intolerances.No findings
Why it is in this group
- The name "healthgorilla_list_allergies" says "list": a word for reading.
Description, as the server wrote it List a patient's allergies/intolerances. FHIR: GET /AllergyIntolerance?patient={id}. Returns a FHIR searchset Bundle.
Annotations the server declares
- title: List allergies
- readOnlyHint: true
healthgorilla_list_conditionsList a patient's conditions/problems.No findings
Why it is in this group
- The name "healthgorilla_list_conditions" says "list": a word for reading.
Description, as the server wrote it List a patient's conditions/problems. FHIR: GET /Condition?patient={id}. Returns a FHIR searchset Bundle.
Annotations the server declares
- title: List conditions
- readOnlyHint: true
healthgorilla_list_diagnostic_reportsList a patient's diagnostic reports (lab panels, imaging).No findings
Why it is in this group
- The name "healthgorilla_list_diagnostic_reports" says "list": a word for reading.
Description, as the server wrote it List a patient's diagnostic reports (lab panels, imaging). FHIR: GET /DiagnosticReport?patient={id}. Returns a FHIR searchset Bundle.
Annotations the server declares
- title: List diagnostic reports
- readOnlyHint: true
healthgorilla_list_documentsList a patient's document references (C-CDA, notes, etc).No findings
Why it is in this group
- The name "healthgorilla_list_documents" says "list": a word for reading.
Description, as the server wrote it List a patient's document references (C-CDA, notes, etc). FHIR: GET /DocumentReference?patient={id}. Each entry points at a Binary you can fetch with healthgorilla_get_binary.
Annotations the server declares
- title: List documents
- readOnlyHint: true
healthgorilla_list_immunizationsList a patient's immunizations.No findings
Why it is in this group
- The name "healthgorilla_list_immunizations" says "list": a word for reading.
Description, as the server wrote it List a patient's immunizations. FHIR: GET /Immunization?patient={id}. Returns a FHIR searchset Bundle.
Annotations the server declares
- title: List immunizations
- readOnlyHint: true
healthgorilla_list_medicationsList a patient's medication requests/prescriptions.No findings
Why it is in this group
- The name "healthgorilla_list_medications" says "list": a word for reading.
Description, as the server wrote it List a patient's medication requests/prescriptions. FHIR: GET /MedicationRequest?patient={id}. Returns a FHIR searchset Bundle.
Annotations the server declares
- title: List medications
- readOnlyHint: true
healthgorilla_poll_query_statusPoll a RequestResult URL returned by healthgorilla_start_patient360_query.No findings
Why it is in this group
- The name "healthgorilla_poll_query_status" says "query": a word for reading.
Description, as the server wrote it Poll a RequestResult URL returned by healthgorilla_start_patient360_query. HTTP 202 = still processing, 200 = done (returns retrieval metrics: organizationsTotal, documentsFound, documentsImported, documentsSkipped, documentsFailed). Returns { status, body }.
Annotations the server declares
- title: Poll query status
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http health-gorilla https://health-gorilla.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__health-gorilla__healthgorilla_find_patients",
"mcp__health-gorilla__healthgorilla_get_patient",
"mcp__health-gorilla__healthgorilla_get_patient_everything",
"mcp__health-gorilla__healthgorilla_list_conditions",
"mcp__health-gorilla__healthgorilla_list_medications",
"mcp__health-gorilla__healthgorilla_list_allergies",
"mcp__health-gorilla__healthgorilla_list_immunizations",
"mcp__health-gorilla__healthgorilla_list_diagnostic_reports",
"mcp__health-gorilla__healthgorilla_list_documents",
"mcp__health-gorilla__healthgorilla_get_coverage",
"mcp__health-gorilla__healthgorilla_get_binary",
"mcp__health-gorilla__healthgorilla_poll_query_status",
"mcp__health-gorilla__healthgorilla_fhir_search"
],
"ask": [
"mcp__health-gorilla__healthgorilla_list_observations"
],
"deny": [
"mcp__health-gorilla__healthgorilla_create_patient",
"mcp__health-gorilla__healthgorilla_start_patient360_query"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as health-gorilla. Review it before you use it.