Skip to main content
Glama

Particle Health MCP by usefulapi

Server Details

Query Particle Health patient records across connected clinical networks.

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
Uptime
50.6% over 19 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.7/5.0

Scored across 11 tools

Disambiguation4/5

Most tools have clearly distinct purposes (submit/search/get patient, create query, query status, network participants). The four retrieval tools (get_ccda, get_fhir, get_fhir_by_type, get_flat) target the same patient data in different formats, which descriptions clarify but could still be confused at selection time.

Naming Consistency5/5

All tools use a consistent particle_ prefix with verb_noun structure (create_query, get_fhir, search_patient, submit_patient). The pattern is predictable throughout with no mixing of conventions.

Tool Count5/5

11 tools is well-scoped for a clinical-record retrieval API, with each tool covering a distinct operation. No redundant or filler tools.

Completeness4/5

Covers the core lifecycle: register/search patients, initiate queries, poll status, and retrieve records in multiple formats, plus network participants and documents. Minor gaps exist (no patient update/delete and no query cancellation), though these may be out of scope for this retrieval-focused API.

Available Tools

11 tools
particle_create_queryCreate clinical-record query (WRITE)A
Destructive
Inspect

⚠️ WRITE: initiate a nationwide clinical-record retrieval for a patient. Returns a query_id — poll particle_get_query_status for progress. Endpoint: POST /api/v2/patients/{particle_patient_id}/query.

ParametersJSON Schema
NameRequiredDescriptionDefault
hintsNoPostal codes to hint where records may be found.
specialtiesNoSpecialties to focus the query, e.g. ["ONCOLOGY"].
purpose_of_useYesPurpose of use for the request, e.g. TREATMENT.
particle_patient_idYesParticle-assigned patient id to run the query for.

TDQS

A4.2/5.0
Behavior4/5

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

The description adds real behavioral context beyond the destructiveHint annotation: this is asynchronous, it returns a query_id, and progress must be polled via a named tool. It stops short of explaining what 'destructive' concretely means here (whether a prior query is superseded) or any auth/rate constraints.

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 WRITE warning front-loaded and the endpoint path appended without padding. Nothing redundant.

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 write tool with a fully documented schema and no output schema, the description supplies the essential missing piece — the query_id return and the polling loop. It is nearly complete; only the semantics of the destructive hint and any permission requirements are unstated.

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 four parameters are already documented with examples (e.g. specialties ["ONCOLOGY"], purpose_of_use TREATMENT). The description adds no parameter-level meaning, 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?

Names a specific verb and resource ('initiate a nationwide clinical-record retrieval for a patient') and marks it as a WRITE. This is clearly distinguishable from the read-oriented siblings like particle_get_fhir and particle_get_ccda, and the follow-up poll tool is named.

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 particle_get_query_status for polling after the call, which is the key workflow guidance. It does not, however, state when to prefer this over the direct fetch siblings (particle_get_fhir, particle_get_flat) or what prerequisites exist beyond a patient id.

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

particle_get_ccdaGet C-CDA document(s)B
Read-only
Inspect

Retrieve the patient's C-CDA clinical document(s). May be large and returned as XML/text — parsed if JSON, otherwise passed through as-is. Endpoint: GET /api/v2/patients/{particle_patient_id}/ccda.

ParametersJSON Schema
NameRequiredDescriptionDefault
particle_patient_idYesParticle-assigned patient id.

TDQS

B3.2/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. The description adds genuine behavioral context beyond that: the document may be 'large' and can come back as raw XML/text rather than structured JSON, which is useful for downstream handling. It stops short of saying how multiple documents are ordered/returned or whether retrieval is paginated.

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?

Two tight sentences with the purpose front-loaded, followed by the payload/format caveat and the endpoint. Nothing is padding, though the endpoint restates what the prose already implies about the resource.

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 correctly compensates by describing what comes back (XML/text, JSON parsed) and warning about payload size. For a single-parameter read-only tool whose safety profile is covered by annotations, that is nearly sufficient; only multi-document/pagination behavior 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% for the single particle_patient_id parameter, so the schema already carries the semantics and the baseline is 3. The description reinforces the id by embedding it in the endpoint path but adds no format or sourcing 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 (Retrieve) and resource (C-CDA clinical document(s)) for a named patient, and the endpoint line reinforces the exact scope. However, it never distinguishes itself from the near-identical siblings particle_get_fhir, particle_get_flat, and particle_get_patient_documents, so an agent cannot tell which format-route to pick from the text alone.

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 explicit when-to-use guidance and no mention of any alternative tool. The format note ('parsed if JSON, otherwise passed through as-is') describes output shape, not when to choose this over particle_get_fhir or particle_get_flat, which retrieve the same patient's data in other formats.

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

particle_get_fhirGet FHIR bundleA
Read-only
Inspect

Retrieve the patient's complete clinical record as a FHIR searchset Bundle. Supports incremental sync and pagination. Endpoint: GET /api/v2/patients/{particle_patient_id}/fhir.

ParametersJSON Schema
NameRequiredDescriptionDefault
_countNoPage size (max resources per page).
_sinceNoRFC3339 timestamp; only return resources updated since then.
_page_tokenNoOpaque token from a previous page's `link` to fetch the next page.
particle_patient_idYesParticle-assigned patient id.

TDQS

A3.5/5.0
Behavior3/5

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

The readOnlyHint annotation already establishes this is a safe read. The description adds useful context — that the result is a searchset Bundle that can be paged and synced incrementally — but is silent on auth requirements, record size limits, or how partial results are signaled. A modest addition over what annotations cover.

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 core purpose and progressive with capability then endpoint. The explicit endpoint string is mildly redundant given the tool name but is genuinely useful for an agent reasoning about the API surface.

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 carries the return-shape burden and does name the payload type (FHIR searchset Bundle) plus its incremental/paged nature. It stops short of describing what resource types appear in the bundle or how the next-page link is returned, but it is adequate for an agent to call the tool correctly.

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%, so every parameter is already documented with type and meaning in the schema. The description corroborates the purpose of _since and _page_token through the 'incremental sync and pagination' phrase but adds no format or syntax detail beyond the schema. 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 (retrieve the patient's complete clinical record as a FHIR searchset Bundle) and scopes it as the full record, which implicitly separates it from filtered siblings like particle_get_fhir_by_type or particle_get_flat. It never names those siblings, so the differentiation is inferable rather than explicit.

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?

'Supports incremental sync and pagination' hints at when the _since and _page_token parameters matter, giving implied usage context. However, there is no statement of when to prefer this over particle_get_fhir_by_type or particle_get_ccda, and no exclusions or prerequisites are given.

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

particle_get_fhir_by_typeGet FHIR resources by typeA
Read-only
Inspect

Retrieve only one FHIR resource type for a patient (e.g. Condition, MedicationRequest, Observation) as a Bundle. Supports the same pagination as particle_get_fhir. Endpoint: GET /api/v2/patients/{particle_patient_id}/fhir/{type}.

ParametersJSON Schema
NameRequiredDescriptionDefault
_countNoPage size (max resources per page).
_sinceNoRFC3339 timestamp; only return resources updated since then.
_page_tokenNoOpaque token from a previous page's `link` to fetch the next page.
resource_typeYesFHIR resource type, e.g. Condition, MedicationRequest, Observation, AllergyIntolerance.
particle_patient_idYesParticle-assigned patient 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 the safety profile is covered. The description adds useful behavior beyond annotations by stating the result is a Bundle and that pagination matches particle_get_fhir, plus exposing the raw endpoint. It does not mention 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?

Three tightly written sentences front-load the core purpose, then add pagination and endpoint detail without redundancy. Every sentence contributes useful 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?

Given the readOnly annotation, 100% schema coverage, and no output schema, the description covers the essential context: what is returned (a Bundle) and how pagination works (same as particle_get_fhir). It could go slightly further on pagination specifics, but an agent has enough to call it correctly.

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 five parameters, including pagination controls and resource_type, are already documented in the input schema. The description echoes resource_type examples and shows path parameters in the endpoint, but adds little semantic detail beyond the schema; baseline 3 is appropriate.

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: retrieve one FHIR resource type for a patient as a Bundle. The examples (Condition, MedicationRequest, Observation) and contrast with returning multiple types make the scope unambiguous, distinguishing it from the broader sibling particle_get_fhir.

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?

The phrase 'only one FHIR resource type' implies when this tool is appropriate versus a general FHIR retrieval, and it references particle_get_fhir for pagination parity. However, it does not explicitly say when to choose particle_get_fhir instead of this tool, so guidance is clear but lacks an explicit alternative rule.

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

particle_get_flatGet flattened clinical dataA
Read-only
Inspect

Retrieve the patient's clinical data in Particle's flattened (de-nested) format, easier to read than raw FHIR. Optionally filter to one domain. Endpoint: GET /api/v2/patients/{particle_patient_id}/flat.

ParametersJSON Schema
NameRequiredDescriptionDefault
_sinceNoRFC3339 timestamp; only return data updated since then.
domainNoFilter to a single clinical domain, e.g. Condition, Medication, Encounter.
particle_patient_idYesParticle-assigned patient id.

TDQS

A3.8/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 description only needs to add context. It contributes the output format (de-nested/flattened) and the underlying endpoint, but omits pagination, response size, and auth expectations that matter for pulling a full patient record.

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 sentences plus endpoint: purpose and format contrast come first, filter capability second, implementation detail last. 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 read-only tool with no output schema and fully documented params, the description covers what the tool returns conceptually and the endpoint. Minor gaps remain around pagination and how much data to expect, but nothing blocks correct invocation.

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 adds only a restatement of the domain filter and says nothing about the _since incremental-sync parameter or the patient id format, so no value 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 (Retrieve) and resource (patient's clinical data) and pins the distinguishing characteristic: Particle's flattened/de-nested format, explicitly contrasted with raw FHIR. This lets an agent separate it from siblings like particle_get_fhir and particle_get_fhir_by_type without opening a schema.

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?

Implies usage via 'easier to read than raw FHIR' and notes the optional single-domain filter, but never states when to pick this over particle_get_fhir, particle_get_ccda, or particle_get_fhir_by_type. Selection guidance is left to inference.

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

particle_get_patientGet patient recordA
Read-only
Inspect

Fetch a single patient record by its Particle patient id. Endpoint: GET /api/v2/patients/{particle_patient_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
particle_patient_idYesParticle-assigned patient id (from submit/search).

TDQS

A3.7/5.0
Behavior3/5

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

readOnlyHint=true already declares this is a safe read, so the annotation carries the safety profile. The description adds only the endpoint path, and omits behavior an agent would care about for a lookup: what happens on an unknown id (404 vs empty), auth requirements, and response shape. Useful but thin beyond the annotation.

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 short sentences, front-loaded with the action and identifier, then the endpoint. 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 one-parameter read with readOnlyHint covering safety and no output schema to explain, the description is nearly sufficient. A sentence on error behavior for an unknown id or on returned fields would close the remaining gap, but nothing essential to correct invocation is missing.

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

Parameters4/5

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

Only one parameter, and the schema documents it fully (100% coverage) as the 'Particle-assigned patient id (from submit/search)', including provenance. The description's mention of the id adds no syntax or format detail beyond that, but with a single fully-described parameter the baseline is high.

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 (Fetch) and resource (a single patient record) scoped by the Particle patient id, and the inclusion of the REST endpoint makes the operation unambiguous. It differentiates implicitly from particle_search_patient (you must already hold the id) and from format-specific siblings like particle_get_fhir, but never names a sibling 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?

The 'by its Particle patient id' phrasing implies the precondition that an id is already in hand, which hints that particle_search_patient is the alternative when it is not. However, no explicit when-to-use, when-not-to-use, or alternative is stated, so the routing is left to inference.

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

particle_get_patient_documentsList patient documentsC
Read-only
Inspect

List the documents uploaded / available for a patient. Endpoint: GET /api/v1/documents/{patient_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
patient_idYesPatient id whose documents to list.

TDQS

C2.9/5.0
Behavior2/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. The description adds only the raw endpoint path, which is technical trivia rather than behavioral context — nothing about pagination, result limits, ordering, or whether an empty list vs. error is returned when a patient has no documents.

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?

Two short sentences with the purpose front-loaded and no filler. The endpoint sentence is arguably redundant but is the only concrete detail offered, so it is not wasted space.

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 one-parameter read-only list tool with no output schema, the definition covers the minimum, but it omits return-shape and pagination expectations, which matter for a documents listing endpoint. Adequate but with a clear 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% with a single required patient_id that is already documented as 'Patient id whose documents to list.' The description restates that scoping but adds no format, source-system, or identifier-type 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+resource: 'List the documents uploaded / available for a patient.' An agent knows what it returns, but the description never distinguishes it from siblings like particle_get_ccda or particle_get_fhir, which also retrieve patient clinical data. The 'uploaded / available' hedge also blurs whether this covers both uploader metadata and document content.

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 guidance, no exclusions, and no pointer to alternatives among the ten sibling tools. The description gives no condition under which this tool is the right choice versus particle_get_fhir or particle_get_ccda.

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

particle_get_query_statusGet query statusA
Read-only
Inspect

Get the status of a clinical-record retrieval query (state, timing, demographics, files). Omit query_id to get the latest COMPLETE query. Endpoint: GET /api/v2/patients/{particle_patient_id}/query.

ParametersJSON Schema
NameRequiredDescriptionDefault
query_idNoSpecific query id; omit for the latest COMPLETE query.
particle_patient_idYesParticle-assigned patient id.

TDQS

A3.7/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. The description adds genuine behavioral context beyond that: the fallback to the latest COMPLETE query when query_id is omitted, plus the concrete fields the response surfaces. It stops short of describing failure modes for incomplete/missing queries.

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?

Two compact sentences, front-loaded with the action and the optional-parameter rule. The trailing endpoint declaration is mildly redundant but cheap and occasionally useful for an agent reasoning about the API surface.

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 compensates by naming the returned facets (state, timing, demographics, files). Combined with the query_id fallback rule, an agent has enough to call this correctly; only error/incomplete-query behavior is unstated.

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 parameters are already documented in the schema. The description's note about omitting query_id restates the schema text rather than adding new semantics (no format, id-shape, or ordering details). 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 ("Get the status of a clinical-record retrieval query") and enumerates the returned facets (state, timing, demographics, files), which distinguishes it from siblings like particle_get_fhir or particle_get_patient. It does not explicitly name a sibling it competes with, so it falls short of a 5.

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?

The description supplies one real usage rule: "Omit query_id to get the latest COMPLETE query," which tells the agent how to call it without an id. It gives no guidance on when to prefer this over siblings (e.g., vs. particle_create_query or the retrieval endpoints), so usage remains implied rather than explicit.

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

particle_search_network_participantsSearch network participantsA
Read-only
Inspect

List the health-data network participants (organizations Particle can query). Optionally filter by state or zipcode, and page with continuation_token. Endpoint: GET /api/v1/networkparticipants (with /state/{state} and /zipcode/{zip} variants).

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoTwo-letter US state code to filter participants, e.g. NY.
zipcodeNo5-digit ZIP code to filter participants (ignored if `state` is set).
continuation_tokenNoToken from a previous response to fetch the next page.

TDQS

A3.7/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, so the description's added value is the endpoint disclosure (GET /api/v1/networkparticipants and its /state and /zipcode variants), which implies the filters map to distinct routes. It does not cover rate limits, response size, or pagination termination behavior.

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?

Two tight sentences with no filler, and the core purpose is front-loaded before the optional filters. The trailing endpoint parenthetical is slightly technical but does earn its place by revealing the separate route variants.

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 zero-required-parameter, read-only list tool with no output schema, the description covers resource identity, filtering, and paging adequately. It stops short of describing what a participant record contains or how paging ends, which keeps it from a 5.

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, including the 'ignored if state is set' precedence rule. The description only restates 'filter by state or zipcode' and 'page with continuation_token', adding no syntax or format 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+resource with scope: 'List the health-data network participants (organizations Particle can query)', and the parenthetical clarifies what a participant actually is. This resource is clearly distinct from the patient/data-oriented siblings such as particle_search_patient and particle_get_fhir.

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?

The description explains the optional filters and pagination but never states when this tool should be chosen over alternatives, nor any prerequisites. Usage is implied by the filter semantics rather than explicitly guided, so it lands at the minimum-viable level.

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

particle_search_patientSearch for a patientA
Read-only
Inspect

Search for an existing patient by demographics (non-mutating). Returns an array of matching patient objects (or a 204 message when none match). Endpoint: POST /api/v2/patients/search.

ParametersJSON Schema
NameRequiredDescriptionDefault
ssnNoSocial Security Number (optional; improves demographic match quality).
emailNoPatient email address.
genderYesAdministrative gender: MALE or FEMALE.
consentNoConsent objects, if required by your Particle data-sharing agreement.
telephoneNoPatient phone number.
given_nameYesPatient's legal first / given name.
patient_idYesYour own external identifier for this patient (echoed back by Particle).
family_nameYesPatient's legal last / family name.
postal_codeYes5-digit ZIP / postal code.
address_cityYesCity of the patient's home address.
address_linesNoStreet address lines, e.g. ["123 Main St"].
address_stateYesTwo-letter US state code, e.g. NY.
date_of_birthYesDate of birth, YYYY-MM-DD.

TDQS

A3.7/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 reinforces it with '(non-mutating)' while adding genuinely new behavior: the return is an array of matches, and a 204 message is returned when nothing matches. It omits auth requirements, match-scoring behavior, and duplicate-handling consequences, 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.

Conciseness4/5

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

Three compact sentences, front-loaded with purpose, then return behavior, then the raw endpoint. Nothing is padded, though the bare endpoint URL adds little for an MCP caller and could be considered 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?

With 13 parameters and no output schema, the description does carry some of the return-shape burden and discharges it by naming the array-of-patient-objects result and the empty-match case. It leaves unexplained how partial or ambiguous matches are resolved and whether results are paginated.

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 every one of the 13 parameters is already documented in the schema. The description adds only the collective notion of 'demographics' and no per-parameter syntax, format, or required-vs-optional nuance, 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 with scope: 'Search for an existing patient by demographics.' The demographic-search framing implicitly separates it from particle_get_patient (single-record retrieval), though no sibling is named explicitly, which is what a 5 would require.

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 — an agent can infer this is the tool for when it holds demographics but not an ID. There is no explicit when-to-use statement, no mention of particle_get_patient as the alternative, and no guidance on required data-sharing agreements or matching behavior.

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

particle_submit_patientSubmit (register) patient (WRITE)B
Destructive
Inspect

⚠️ WRITE: register a new patient with Particle Health. Returns the patient with a system-generated particle_patient_id (use it for subsequent queries). Endpoint: POST /api/v2/patients.

ParametersJSON Schema
NameRequiredDescriptionDefault
ssnNoSocial Security Number (optional; improves demographic match quality).
emailNoPatient email address.
genderYesAdministrative gender: MALE or FEMALE.
consentNoConsent objects, if required by your Particle data-sharing agreement.
telephoneNoPatient phone number.
given_nameYesPatient's legal first / given name.
patient_idYesYour own external identifier for this patient (echoed back by Particle).
family_nameYesPatient's legal last / family name.
postal_codeYes5-digit ZIP / postal code.
address_cityYesCity of the patient's home address.
address_linesNoStreet address lines, e.g. ["123 Main St"].
address_stateYesTwo-letter US state code, e.g. NY.
date_of_birthYesDate of birth, YYYY-MM-DD.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations supply only the title (WRITE) and destructiveHint=true, so the description usefully confirms the HTTP verb (POST /api/v2/patients) and that a system-generated particle_patient_id is returned. It stops short of the behaviors that matter for a registration mutation: duplicate-patient handling, idempotency, permission/consent requirements, and 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 compact sentences with the warning marker front-loaded ahead of the core action, and the return-value note placed immediately after. The endpoint line is slightly redundant but still earns its place as an implementation cue.

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 13-parameter write tool with no output schema, the description adequately signals the result shape (patient object plus particle_patient_id). It leaves gaps around failure modes, deduplication, and required consent, which an agent invoking a registration endpoint would benefit from knowing.

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% across all 13 parameters, so the schema already documents each field, its enum, and the date format. The description adds no parameter-level meaning (e.g., which fields drive demographic match quality beyond the ssn note in 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 and resource ('register a new patient with Particle Health') and flags it as a write. It implicitly distinguishes itself from the read-oriented siblings like particle_get_patient and particle_search_patient by tying the returned ID to 'subsequent queries,' but never names those alternatives directly.

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 conveys when to use it (registering a brand-new patient) and gives a follow-up tip about reusing particle_patient_id. However, there is no guidance on what to do if the patient already exists, whether to search first to avoid duplicates, or any prerequisites such as the data-sharing agreement referenced in the consent parameter.

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. 11 tool updates
    • Changedparticle_create_query1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedparticle_get_ccda1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedparticle_get_fhir1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedparticle_get_fhir_by_type1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedparticle_get_flat1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedparticle_get_patient1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedparticle_get_patient_documents1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedparticle_get_query_status1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedparticle_search_network_participants1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedparticle_search_patient1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedparticle_submit_patient1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. 11 tool updates
    • First observedparticle_create_query
    • First observedparticle_get_ccda
    • First observedparticle_get_fhir
    • First observedparticle_get_fhir_by_type
    • First observedparticle_get_flat
    • First observedparticle_get_patient
    • First observedparticle_get_patient_documents
    • First observedparticle_get_query_status
    • First observedparticle_search_network_participants
    • First observedparticle_search_patient
    • First observedparticle_submit_patient

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Enables reading a patient's own Epic MyChart portal data — test results, medications, allergies, immunizations, health issues, goals, visits, messages, insurance, care team and billing — by relaying requests through the signed-in browser tab or signing in server-side with human-in-the-loop MFA. It also lets the active patient reply to Message Center conversations after an explicit confirmation step.
    23
    361 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to interact with clinical patient records using tools for document ingestion, structured conversion, patient profiling, record listing, search, and secure Q&A over patient documentation.
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects frontier AI agents to HL7 FHIR R4 electronic health record repositories, enabling patient, observation, condition, medication, allergy, and diagnostic report queries plus draft-only clinical writes. Enforces mathematical safety gates, HIPAA-compliant tamper-evident audit logging, and token distillation of bulky FHIR payloads.
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.