Skip to content

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.

Deletes · 2Changes · 1

16 tools: 2 can delete or cancel things, 1 change things and 13 only read.

Scanned Oct 21, 2026

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/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "healthgorilla_list_observations" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true}; The name "healthgorilla_list_observations" says "list": a word for reading.

    What this check looks for

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".

      Matched text

      annotations: {"readOnlyHint":true}; The name "healthgorilla_list_observations" says "list": a word for reading.

      What this check looks for
    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_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/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.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.