health-gorilla

Query Health Gorilla FHIR patients, conditions, medications and lab results.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
99%
Naming quality
73%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (6)

  • LOWTool 'healthgorilla_get_patient_everything' name length outside 3-30 rangein healthgorilla_get_patient_everything
  • LOWTool 'healthgorilla_list_immunizations' name length outside 3-30 rangein healthgorilla_list_immunizations
  • LOWTool 'healthgorilla_list_observations' name length outside 3-30 rangein healthgorilla_list_observations
  • LOWTool 'healthgorilla_list_diagnostic_reports' name length outside 3-30 rangein healthgorilla_list_diagnostic_reports
  • LOWTool 'healthgorilla_poll_query_status' name length outside 3-30 rangein healthgorilla_poll_query_status
  • LOWTool 'healthgorilla_start_patient360_query' name length outside 3-30 rangein healthgorilla_start_patient360_query

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,679Tokens (tool definitions)
~1.1 KBTypical response size
Significant attention impact (2.09% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "health-gorilla": {
      "url": "https://health-gorilla.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://health-gorilla.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (16)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢healthgorilla_find_patients(given, family, birthdate, identifier, _count)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "given": {
      "description": "Given (first) name.",
      "type": "string"
    },
    "family": {
      "description": "Family (last) name.",
      "type": "string"
    },
    "birthdate": {
      "description": "Date of birth, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "identifier": {
      "description": "Business identifier (e.g. MRN), optionally system|value.",
      "type": "string"
    },
    "_count": {
      "description": "FHIR _count — max results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_get_patient(patient_id)

Read a single patient by id. FHIR: GET /Patient/{id}. Returns a FHIR Patient resource.

Input Schema

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "minLength": 1,
      "description": "Health Gorilla Patient resource id."
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_get_patient_everything(patient_id, _since, _count)

Fetch the comprehensive record for a patient as a FHIR Bundle. FHIR: GET /Patient/{id}/$everything. Optionally scope by _since and page with _count.

Input Schema

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "minLength": 1,
      "description": "Health Gorilla Patient resource id."
    },
    "_since": {
      "description": "Only include resources updated on/after this date, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "_count": {
      "description": "FHIR _count — max results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_list_conditions(patient_id, category, _count)

List a patient's conditions/problems. FHIR: GET /Condition?patient={id}. Returns a FHIR searchset Bundle.

Input Schema

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "minLength": 1,
      "description": "Patient resource id."
    },
    "category": {
      "description": "Condition category, e.g. problem-list-item, encounter-diagnosis.",
      "type": "string"
    },
    "_count": {
      "description": "FHIR _count — max results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_list_medications(patient_id, status, _count)

List a patient's medication requests/prescriptions. FHIR: GET /MedicationRequest?patient={id}. Returns a FHIR searchset Bundle.

Input Schema

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "minLength": 1,
      "description": "Patient resource id."
    },
    "status": {
      "description": "Medication status, e.g. active, completed, stopped.",
      "type": "string"
    },
    "_count": {
      "description": "FHIR _count — max results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_list_allergies(patient_id, _count)

List a patient's allergies/intolerances. FHIR: GET /AllergyIntolerance?patient={id}. Returns a FHIR searchset Bundle.

Input Schema

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "minLength": 1,
      "description": "Patient resource id."
    },
    "_count": {
      "description": "FHIR _count — max results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_list_immunizations(patient_id, _count)

List a patient's immunizations. FHIR: GET /Immunization?patient={id}. Returns a FHIR searchset Bundle.

Input Schema

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "minLength": 1,
      "description": "Patient resource id."
    },
    "_count": {
      "description": "FHIR _count — max results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_list_observations(patient_id, category, code, date, _count)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "minLength": 1,
      "description": "Patient resource id."
    },
    "category": {
      "description": "Observation category, e.g. laboratory, vital-signs.",
      "type": "string"
    },
    "code": {
      "description": "Observation code (e.g. LOINC), optionally system|value.",
      "type": "string"
    },
    "date": {
      "description": "Date filter (FHIR date param, may use prefixes like ge2026-01-01).",
      "type": "string"
    },
    "_count": {
      "description": "FHIR _count — max results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_list_diagnostic_reports(patient_id, category, _count)

List a patient's diagnostic reports (lab panels, imaging). FHIR: GET /DiagnosticReport?patient={id}. Returns a FHIR searchset Bundle.

Input Schema

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "minLength": 1,
      "description": "Patient resource id."
    },
    "category": {
      "description": "Report category, e.g. LAB, RAD.",
      "type": "string"
    },
    "_count": {
      "description": "FHIR _count — max results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_list_documents(patient_id, type, _count)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "minLength": 1,
      "description": "Patient resource id."
    },
    "type": {
      "description": "Document type code (e.g. LOINC), optionally system|value.",
      "type": "string"
    },
    "_count": {
      "description": "FHIR _count — max results per page.",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 1000
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_get_coverage(patient_id)

List a patient's insurance coverage. FHIR: GET /Coverage?patient={id}. Returns a FHIR searchset Bundle.

Input Schema

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "minLength": 1,
      "description": "Patient resource id."
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_get_binary(binary_id)

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

Input Schema

{
  "type": "object",
  "properties": {
    "binary_id": {
      "type": "string",
      "minLength": 1,
      "description": "Binary resource id (from a DocumentReference)."
    }
  },
  "required": [
    "binary_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_poll_query_status(request_result_url)

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

Input Schema

{
  "type": "object",
  "properties": {
    "request_result_url": {
      "type": "string",
      "format": "uri",
      "description": "The RequestResult poll URL returned by a Patient360 query (a Health Gorilla URL)."
    }
  },
  "required": [
    "request_result_url"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢healthgorilla_fhir_search(resource_type, query)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "resource_type": {
      "type": "string",
      "pattern": "^[A-Za-z]+$",
      "description": "FHIR resource type, e.g. Patient, Observation, Encounter."
    },
    "query": {
      "description": "Raw FHIR query string without the leading '?', e.g. patient=123&_count=5.",
      "type": "string"
    }
  },
  "required": [
    "resource_type"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴healthgorilla_create_patient(given, family, birthdate, gender, line, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "given": {
      "type": "string",
      "minLength": 1,
      "description": "Given (first) name."
    },
    "family": {
      "type": "string",
      "minLength": 1,
      "description": "Family (last) name."
    },
    "birthdate": {
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Date of birth, yyyy-mm-dd."
    },
    "gender": {
      "type": "string",
      "enum": [
        "male",
        "female",
        "other",
        "unknown"
      ],
      "description": "Administrative gender."
    },
    "line": {
      "description": "Street address line.",
      "type": "string"
    },
    "city": {
      "description": "City.",
      "type": "string"
    },
    "state": {
      "description": "State (2-letter).",
      "type": "string"
    },
    "postalCode": {
      "description": "Postal / ZIP code.",
      "type": "string"
    },
    "identifier": {
      "description": "Business identifier value (e.g. MRN).",
      "type": "string"
    }
  },
  "required": [
    "given",
    "family",
    "birthdate",
    "gender"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴healthgorilla_start_patient360_query(patient_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "patient_id": {
      "type": "string",
      "minLength": 1,
      "description": "Patient resource id to retrieve external records for."
    }
  },
  "required": [
    "patient_id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded16 tools