Skip to main content
Glama

health-gorilla

Server Details

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

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.7/5.0

Scored across 16 tools

Disambiguation4/5

Most tools target distinct FHIR resources and actions, and the async patient360 query/poll pair is clearly separated. The generic `fhir_search` could duplicate dedicated list/get tools, but its description scopes it as an escape hatch, so ambiguity is limited.

Naming Consistency4/5

All names use `healthgorilla_` snake_case and are mostly verb_noun with predictable resource names. Minor deviation: `fhir_search` is not verb-first, and `get_coverage` returns a list while parallel collection tools use `list_`.

Tool Count4/5

16 tools is slightly above the ideal 3-15 range but each covers a distinct FHIR resource or necessary workflow such as async retrieval polling or binary fetch. It is well-scoped for a clinical data access API.

Completeness3/5

The set covers patient registration, search/read, comprehensive record retrieval, listing many common clinical resources, and document binary access. However there is no update/delete for patients or any other resource, and no generic write path, which is a notable lifecycle gap.

Available Tools

16 tools
healthgorilla_create_patientCreate patientA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity.
lineNoStreet address line.
givenYesGiven (first) name.
stateNoState (2-letter).
familyYesFamily (last) name.
genderYesAdministrative gender.
birthdateYesDate of birth, yyyy-mm-dd.
identifierNoBusiness identifier value (e.g. MRN).
postalCodeNoPostal / ZIP code.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare destructiveHint=true, so the description usefully adds the FHIR mapping (POST /Patient) and that the resource is 'minimal' — implying optional fields not supplied are omitted rather than defaulted. It does not cover auth requirements, duplicate handling, or what is returned, but with annotations carrying the mutation signal this is above baseline.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the action and tenant front-loaded, then the protocol mapping, then the state-changing warning. No filler, every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 9-parameter create call with no output schema and only a destructiveHint annotation, the description leaves notable gaps: whether the created patient's id is returned for later retrieval, how duplicates are handled, and any required scopes. What is present is accurate and adequate, but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each of the 9 params is documented in the schema, so the baseline is 3. The description adds only the aggregate note that args are assembled into a minimal Patient resource; it adds no per-parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Registers a NEW patient record in your Health Gorilla tenant') and pins the underlying operation (FHIR POST /Patient), clearly separating it from siblings like get_patient, find_patients, and fhir_search. The uppercase NEW signals creation rather than retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb, but the description never says when to choose this over healthgorilla_find_patients (e.g., to check for an existing/duplicate patient first) or what prerequisites exist. No explicit alternatives or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_find_patientsFind patientsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
givenNoGiven (first) name.
_countNoFHIR _count — max results per page.
familyNoFamily (last) name.
birthdateNoDate of birth, yyyy-mm-dd.
identifierNoBusiness identifier (e.g. MRN), optionally system|value.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered and the description only needs to add context. It does add the return shape ("a FHIR searchset Bundle") and the downstream id-reuse pattern, which is genuinely useful, but says nothing about pagination behavior, empty results, or matching semantics despite the paging parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences: purpose first, endpoint second, downstream usage third. Every sentence carries information, though the FHIR query-string restatement of parameters is partly redundant with the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search tool with full schema coverage and no output schema, the description supplies the one thing the schema cannot: the return type (searchset Bundle) and what to do with the result. Only pagination handling and no-match behavior are unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters (given, family, birthdate, identifier, _count) are already documented with types, patterns, and constraints. The description merely echoes four of them in the FHIR query string and adds no matching logic or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Search for patients by demographics") and pins it to the concrete FHIR operation (GET /Patient?given=&family=&birthdate=&identifier=). It implicitly distinguishes itself from the retrieval siblings (get_patient, get_patient_everything) by noting the returned id feeds other tools, but never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the demographics-based search and the note that "Use the returned Patient id with the other tools" suggest this is the entry point when you lack an id. There is no explicit statement of when to prefer this over get_patient or fhir_search, nor any prerequisite or exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_get_binaryGet binary (document content)A
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
binary_idYesBinary resource id (from a DocumentReference).

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already covers the safety profile, and the description adds meaningful context beyond that: content may be a FHIR Binary JSON resource, XML C-CDA, or base64, and is returned as-is with raw text when not JSON. This return-shape disclosure is valuable, especially given there is no output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the verb and resource, followed by the FHIR endpoint and then the return-format caveat. No sentence is redundant and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with no output schema, the description supplies the essential missing piece: what the returned payload can look like (JSON, C-CDA XML, or base64, returned as-is). This makes the definition self-sufficient for correct invocation, short of explicit usage routing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one parameter at 100% schema coverage, the schema already documents binary_id fully (including its origin in a DocumentReference). The description's 'by Binary id' adds no syntax or format detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Retrieve) and resource (raw document content) keyed by Binary id, plus the underlying FHIR path GET /Binary/{id}. It is clearly distinct from the sibling list_documents operation, though it does not explicitly contrast itself with any sibling by name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies you need a Binary id, and the schema notes it comes from a DocumentReference, but it gives no explicit when-to-use guidance, no when-not conditions, and does not route the agent to or away from alternatives such as list_documents.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_get_coverageGet coverageA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
patient_idYesPatient resource id.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds genuine behavioral value the annotations do not supply: the underlying FHIR call shape and the return contract ('FHIR searchset Bundle'), letting the agent plan for the response envelope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three terse sentences, front-loaded with the action and immediately followed by the endpoint and return type. Nothing redundant or padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read tool with no output schema, the description supplies the two things missing from structured fields: the FHIR endpoint and the Bundle return shape. Only broader routing guidance (vs. get_patient_everything) is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single documented patient_id, so the schema carries the parameter meaning entirely. The description's 'patient={id}' restates the schema without adding format or lookup semantics, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List a patient's insurance coverage') and pins it to a concrete endpoint. It is clearly distinguishable from the list_allergies/list_conditions siblings, though it does not explicitly address overlap with healthgorilla_get_patient_everything, which may also surface coverage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance, no prerequisites, and no mention of alternatives for retrieving coverage data. The agent must infer that this is the right call whenever coverage is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_get_patientGet patientA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
patient_idYesHealth Gorilla Patient resource id.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered; the description adds value by disclosing the underlying FHIR call (GET /Patient/{id}) and the return type (a FHIR Patient resource). With no output schema present, that return-type disclosure is genuinely useful context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with the core action front-loaded, followed by the FHIR mapping and return type. No padding or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only, no-output-schema tool, this covers action, scope, endpoint, and return type adequately. It could be stronger by contrasting with get_patient_everything, but nothing critical for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the sole parameter patient_id is fully documented in the schema, so the schema carries the load. The description's 'by id' phrasing reinforces but does not extend that meaning, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (read) and resource (a single patient) scoped to retrieval by id, which cleanly separates it from search-style siblings like healthgorilla_find_patients and healthgorilla_fhir_search. It does not name a sibling explicitly, but 'single ... by id' implies the distinction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied (fetch one known patient record), but the description offers no explicit when-to-use or when-not guidance against close alternatives such as healthgorilla_get_patient_everything (full clinical bundle) or healthgorilla_find_patients (lookup without an id).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_get_patient_everythingGet patient $everythingB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
_countNoFHIR _count — max results per page.
_sinceNoOnly include resources updated on/after this date, yyyy-mm-dd.
patient_idYesHealth Gorilla Patient resource id.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already declares the safe-read profile, so the bar is lower. The description adds useful context by naming the return format (FHIR Bundle) and the underlying $everything operation, but it does not disclose payload size expectations, pagination behavior beyond _count, or any rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the core action front-loaded, followed by the endpoint and optional scoping. Every sentence is useful, though the explicit FHIR path is slightly redundant with the tool name and endpoint convention.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only tool with no output schema, the description adequately covers the return type (FHIR Bundle) and the optional scoping controls. It could say more about what 'comprehensive' includes or how paging links work, but the essential call context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents patient_id, _since, and _count. The description repeats the existence of _since and _count but adds no format, syntax, or edge-case detail beyond what the schema already provides, making the baseline 3 correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch the comprehensive record for a patient as a FHIR Bundle') and adds the exact FHIR endpoint, so it is distinguishable from simpler siblings like get_patient or list_* by scope. However, it never explicitly names an alternative, so it falls short of the sibling-differentiating 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance or alternatives; it only notes optional scoping parameters. An agent must infer that this is the comprehensive read path versus get_patient or start_patient360_query, which is exactly the kind of inference the rubric penalizes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_list_allergiesList allergiesA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
_countNoFHIR _count — max results per page.
patient_idYesPatient resource id.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already declares the safety profile, so the description only needs to add context. It does add value by disclosing the exact FHIR path and that the result is a FHIR searchset Bundle, but it says nothing about pagination behavior, error cases, or authentication needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with no filler: purpose first, then the concrete FHIR mapping, then the return shape. Every sentence carries information the agent can act on.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity, single-required-param read tool, the description covers purpose, API mapping, and return type even though no output schema exists. It does not explain how multi-page searchset Bundles should be traversed, which is the only real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and both parameters are documented in the schema, so the baseline is 3. The description only restates patient={id} via the URL template and adds no format, validation, or paging semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List a patient's allergies/intolerances') and even pins the exact FHIR interaction (GET /AllergyIntolerance?patient={id}), making it clearly distinguishable from list_conditions, list_medications, and other list_* siblings. It stops short of explicitly routing the agent away from any sibling, but the resource name is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the name and endpoint; there is no stated when-to-use, when-not-to-use, or comparison to alternatives such as get_patient_everything or fhir_search. An agent can infer the intended case (fetching allergy data for a known patient id) but the description adds nothing explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_list_conditionsList conditionsA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
_countNoFHIR _count — max results per page.
categoryNoCondition category, e.g. problem-list-item, encounter-diagnosis.
patient_idYesPatient resource id.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true, so safety is already covered; the description goes further by naming the underlying FHIR endpoint and the response shape ('FHIR searchset Bundle'), which tells the agent to expect paged Bundle semantics. It stops short of stating auth requirements, hard result limits, or how paging links are followed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with no filler; the purpose is front-loaded, followed by the endpoint and return type in priority order. Every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with full schema coverage and no output schema, the description covers purpose, endpoint, and return format adequately. The remaining gap is paging/category behavior, which the schema touches on only briefly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are already documented. The description only restates the patient filter via the FHIR template ('patient={id}') and adds nothing about category value semantics or _count paging behavior, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List a patient's conditions/problems') and pins the exact FHIR operation being proxied, so the agent knows precisely what it does. It does not, however, distinguish itself from siblings such as healthgorilla_fhir_search or healthgorilla_get_patient_everything, which could also surface conditions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is strongly implied by the name and the required patient_id, but there is no explicit when-to-use statement and no guidance on when to prefer this over healthgorilla_fhir_search or get_patient_everything. The FHIR path adds context but not decision guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_list_diagnostic_reportsList diagnostic reportsA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
_countNoFHIR _count — max results per page.
categoryNoReport category, e.g. LAB, RAD.
patient_idYesPatient resource id.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered, and the description still adds value by disclosing the underlying HTTP verb/path and the return shape ('FHIR searchset Bundle'), which is notable because no output schema exists. It does not expand on pagination behavior beyond the _count parameter, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with the resource and scope front-loaded, followed by the endpoint mapping and return type. No filler, no repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with fully documented params, the definition covers purpose, scope, endpoint, and return container, compensating for the absent output schema. Only minor gaps remain (no pagination/traversal guidance, no mention of how results interrelate with other list_* siblings).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: patient_id, category (with LAB/RAD examples), and _count are all documented in the schema itself. The description adds only the {id} substitution hint via the FHIR path, which is marginal, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List a patient's diagnostic reports') and concretizes it with examples ('lab panels, imaging') plus the underlying FHIR operation. It does not explicitly contrast itself with adjacent siblings such as list_observations or list_documents, so an agent must infer the boundary from the resource name alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the scoping to a single patient, but there is no explicit when-to-use, no when-not-to-use, and no mention of alternatives like healthgorilla_fhir_search or list_observations for related clinical data. The agent can infer the context but gets no routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_list_documentsList documentsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoDocument type code (e.g. LOINC), optionally system|value.
_countNoFHIR _count — max results per page.
patient_idYesPatient resource id.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds real behavioral value beyond that: the FHIR resource path and the key insight that returned entries reference a separate Binary retrievable via get_binary. It omits pagination/rate/auth details, but for a read-only list tool this is solid additive context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short, front-loaded sentences with zero waste: purpose, endpoint, and follow-up action in order of importance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description explains what each entry represents and how to fetch the actual document, which is the essential missing piece. It does not describe item-level fields or pagination behavior, leaving a minor gap for a tool with a fully documented input schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents patient_id, type, and _count. The description adds no syntax or format detail (e.g. LOINC system|value format) beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource ('List a patient's document references') with examples (C-CDA, notes) and the underlying FHIR endpoint (GET /DocumentReference?patient={id}). This clearly distinguishes it from sibling list_* tools that target allergies, conditions, observations, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly routes the agent to the natural follow-up tool: 'Each entry points at a Binary you can fetch with healthgorilla_get_binary,' establishing a two-step workflow. It does not state when-not-to-use or contrast with the sibling list_* tools for other resource types, so it stops short of full 5-level guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_list_immunizationsList immunizationsA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
_countNoFHIR _count — max results per page.
patient_idYesPatient resource id.

TDQS

A3.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds real value beyond that: the exact FHIR endpoint semantics and the return shape (a FHIR searchset Bundle), which tells the agent what to expect back.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences with no filler: purpose, endpoint, and return type, in that order. Everything is front-loaded and each sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully names the return type (FHIR searchset Bundle), and readOnlyHint covers the safety profile. For a simple two-parameter read tool this is nearly complete; only pagination/alternative selection is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both patient_id and _count are already documented in the schema, and the description adds no per-parameter detail. Baseline 3 applies when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (list a patient's immunizations) and even pins the underlying FHIR operation (GET /Immunization?patient={id}). The resource is naturally distinct from siblings like list_medications or list_conditions, though the description never explicitly names or contrasts with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance. Notably, the sibling healthgorilla_get_patient_everything likely also returns immunizations, yet the description gives no condition to choose between the targeted list and the aggregate call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_list_medicationsList medicationsB
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
_countNoFHIR _count — max results per page.
statusNoMedication status, e.g. active, completed, stopped.
patient_idYesPatient resource id.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already establishes this as a safe read. The description adds the useful return shape (a FHIR searchset Bundle) and the backing endpoint, but says nothing about pagination behavior, auth requirements, or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly packed sentences with the purpose front-loaded, followed by the FHIR endpoint and return type. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with annotations covering safety and a fully documented schema, this is nearly complete; it even names the return type. The main omission is pagination/bulk behavior, though _count is documented in the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters are documented in the schema itself. The description's 'patient={id}' simply restates the patient_id parameter and adds no format or syntax detail beyond the structured fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('List') and resource ('patient's medication requests/prescriptions'), plus the underlying FHIR endpoint. The resource name distinguishes it implicitly from sibling list tools like list_allergies or list_conditions, though there is no explicit sibling callout.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance is given. It does not indicate when an agent should prefer this over healthgorilla_get_patient_everything or healthgorilla_fhir_search, both of which could surface medication data. Usage is only inferable from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_list_observationsList observationsA
Read-only
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoObservation code (e.g. LOINC), optionally system|value.
dateNoDate filter (FHIR date param, may use prefixes like ge2026-01-01).
_countNoFHIR _count — max results per page.
categoryNoObservation category, e.g. laboratory, vital-signs.
patient_idYesPatient resource id.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read. The description adds genuine value beyond that by disclosing the return shape ('a FHIR searchset Bundle'), which implies paged results. It does not mention pagination limits, _count behavior, or missing-patient handling, so it is solid but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short, front-loaded sentences: purpose, endpoint, filters, return type. No filler, no repetition, and the most decision-relevant information comes first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description usefully characterizes the return as a FHIR searchset Bundle, and the schema covers filter syntax and _count. The only real gap is guidance on result limits/paging behavior and relationship to the broader search siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters are already documented in the schema, including prefix syntax for date and system|value for code. The description's filter list merely restates that coverage and adds no new syntax or constraint, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List a patient's observations') and immediately disambiguates with concrete content examples ('labs, vitals') plus the underlying FHIR path. This lets an agent separate it from siblings like list_conditions, list_medications, or list_diagnostic_reports without opening anything.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names the available filters (category, LOINC code, date), which implies when the tool is the right choice, but never states alternatives or exclusions — e.g. when to prefer healthgorilla_fhir_search or healthgorilla_get_patient_everything over this targeted list. Usage is inferable but not guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_poll_query_statusPoll query statusA
Read-only
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
request_result_urlYesThe RequestResult poll URL returned by a Patient360 query (a Health Gorilla URL).

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true; the description goes further by decoding the HTTP contract (202 = processing, 200 = done) and naming the return shape and metrics. That is meaningful behavior disclosure beyond the annotation, though retry/backoff expectations and error behavior are unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and the source tool, then the status-code semantics and return shape. Dense and free of filler, with only minor terseness in the final 'Returns { status, body }' line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description carries the return-value burden and does so by naming status, body, and the retrieval metrics. It is nearly complete for a one-parameter polling tool, missing only terminal error/timeout handling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema already documents the single parameter as a Health Gorilla RequestResult URL. The description restates the same origin (returned by start_patient360_query) without adding format or constraint detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (poll) and resource (RequestResult query status) and explicitly ties the tool to the sibling that produces the URL, healthgorilla_start_patient360_query. An agent can distinguish it from the list_* and get_* siblings at a glance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Makes the usage context explicit: this is the follow-up to healthgorilla_start_patient360_query, and the input is the URL that tool returns. It does not state when-not-to-use or a recommended polling cadence, so it stops short of full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

healthgorilla_start_patient360_queryStart Patient360 queryA
Destructive
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
patient_idYesPatient resource id to retrieve external records for.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply destructiveHint=true; the description adds substantial context beyond that: it is asynchronous, imports documents into the caller's tenant, is state-changing, requires a Prefer: respond-async header, and returns a Location poll URL. It does not describe rate limits, cost, or how much data gets imported, so it stops short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tightly packed sentences, front-loaded with the operation and scope, then the technical mechanism, then the poll handoff. Every clause carries information; nothing is filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async, no-output-schema tool, the description covers the trigger, the mechanism, the return (poll URL) and the next step, which is what an agent needs. It could still say what document types or time range are retrieved, but the essentials are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single patient_id parameter is fully documented in the schema, so the schema already carries the burden. The description only restates the id as {id} in the FHIR path, adding no syntax or semantic detail. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (initiates) plus the exact resource and scope: an asynchronous national-network records retrieval across CommonWell/Carequality/QHINs that imports external documents. This is unmistakably distinct from siblings like healthgorilla_get_patient or healthgorilla_fhir_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names the follow-up tool (healthgorilla_poll_query_status) and the poll URL to use, which tells the agent the workflow. It does not, however, state when to prefer this over alternatives like get_patient_everything, so the exclusion guidance is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 16 tool updates
    • First observedhealthgorilla_create_patient
    • First observedhealthgorilla_fhir_search
    • First observedhealthgorilla_find_patients
    • First observedhealthgorilla_get_binary
    • First observedhealthgorilla_get_coverage
    • First observedhealthgorilla_get_patient
    • First observedhealthgorilla_get_patient_everything
    • First observedhealthgorilla_list_allergies
    • First observedhealthgorilla_list_conditions
    • First observedhealthgorilla_list_diagnostic_reports
    • First observedhealthgorilla_list_documents
    • First observedhealthgorilla_list_immunizations
    • First observedhealthgorilla_list_medications
    • First observedhealthgorilla_list_observations
    • First observedhealthgorilla_poll_query_status
    • First observedhealthgorilla_start_patient360_query

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI applications to query and retrieve healthcare data (patients, conditions, observations, medications) from a public FHIR R4 server via MCP tools.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with FHIR R4 healthcare data through SHARP-on-MCP tools, including search, read, and clinical context aggregation, with built-in Chart.js dashboards for visualizing lab trends, vitals, and patient data.
    3 npm
    3
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.