Skip to main content
Glama

canvas-medical

Server Details

Search and read a patient chart over the Canvas FHIR R4 API. Read-only.

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.9/5.0

Scored across 4 tools

Disambiguation4/5

The four tools have broadly distinct roles: metadata lookup, whole-patient bundle, single-resource fetch, and parameterized search. The only mild overlap is between canvas_read and canvas_search (both retrieve resources) and between canvas_get_patient_everything and canvas_search, but the descriptions clearly steer agents to the right choice.

Naming Consistency4/5

All tools share the canvas_ prefix and use snake_case, giving a predictable pattern. The verb is slightly inconsistent (get_capability_statement/get_patient_everything vs read/search), though all are clearly read-oriented verbs.

Tool Count4/5

Four tools is on the thin side, but the surface is intentionally a compact, generic FHIR read layer where each tool earns its place. It is well-scoped rather than padded.

Completeness3/5

The read side is well covered (metadata, patient bundle, single read, generic search), but there are no write/create/update operations for any resource, so an agent cannot modify the chart. This is a notable gap if write access is expected of the domain.

Available Tools

4 tools
canvas_get_capability_statementGet the FHIR capability statementA
Read-only
Inspect

Fetch the server's FHIR CapabilityStatement — exactly which resources, interactions and search parameters this Canvas instance supports. Read it when a search is rejected and you want to know what the instance actually accepts. Canvas: GET /metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/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 meaningful behavior beyond that: the data domain returned (resources, interactions, search parameters), the identity of the underlying endpoint (GET /metadata), and its intended role as a recovery/introspection call after a rejected search. It does not mention response size, caching, or auth requirements, but the read-only annotation makes those less critical.

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: what it returns, when to use it, and the raw endpoint path. The most decision-relevant information (what the document contains) is front-loaded, and no sentence is redundant or padded.

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

Completeness5/5

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

For a zero-parameter, read-only introspection tool with annotations covering the safety profile and no output schema, the description supplies everything needed: content, use condition, and endpoint. An agent can decide to call this and understand what comes back without further documentation.

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?

This is a zero-parameter tool, so the baseline of 4 applies. The description correctly implies no inputs are required by describing a pure retrieval of instance metadata, and there is no parameter surface left undocumented.

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 ('Fetch the server's FHIR CapabilityStatement') and enumerates exactly what the document contains — resources, interactions, search parameters supported by this instance. This is clearly distinguishable from siblings like canvas_search and canvas_read, which operate on clinical data rather than server metadata.

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?

Gives an explicit positive trigger: 'Read it when a search is rejected and you want to know what the instance actually accepts.' This is actionable context an agent can match against a failure state. It stops short of a full 5 because it names no alternatives or when-not conditions, though the tool's purpose is unique enough among its siblings that routing ambiguity is low.

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

canvas_get_patient_everythingGet everything for one patientA
Read-only
Inspect

Fetch a patient's full record in one FHIR bundle — conditions, medications, observations, encounters and more. The fastest way to answer a broad question about one person, but it can return a large document, so prefer canvas_search when you know which resource you need. Canvas: GET /Patient/{id}/$everything.

ParametersJSON Schema
NameRequiredDescriptionDefault
_countNoPage size, 1-100.
patient_idYesThe Patient resource id.

TDQS

A4.5/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 meaningful context beyond that, warning that the call can return a large document and listing what the bundle contains. It stops short of stating pagination behavior or auth requirements, so not a full 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?

Two tight sentences, front-loaded with what it does before the size caution and the routing alternative. No filler, and the Canvas endpoint is appended compactly.

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

Completeness5/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-value burden and does so by naming the bundle contents and flagging size. Combined with the readOnly annotation and routing guidance, an agent has everything needed 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% – both patient_id and _count are documented in the schema (including the 1-100 page-size bound). The description adds no syntax or format detail beyond that, 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 ('Fetch') and resource ('a patient's full record in one FHIR bundle') and enumerates the contained resource types. It directly contrasts with the sibling canvas_search, so an agent can distinguish the two without opening either schema.

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

Usage Guidelines5/5

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

Explicitly names when to use it ('fastest way to answer a broad question about one person') and when not to ('prefer canvas_search when you know which resource you need'), plus the reason (large document). The alternative and its selecting condition are both given.

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

canvas_readRead one FHIR resourceA
Read-only
Inspect

Fetch a single FHIR resource by type and id. Canvas: GET /{resource}/{id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe resource's id.
resourceYesWhich FHIR resource type to read.

TDQS

A3.8/5.0
Behavior3/5

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

readOnlyHint=true already covers the safety profile. The description adds the HTTP endpoint mapping GET /{resource}/{id}, but does not describe error behavior, return payload, or any special read constraints. This is modest added context beyond annotations.

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 compact sentences: the first states the action and scope, the second adds the endpoint mapping. No filler; front-loaded.

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 two-parameter read-only lookup with a fully documented schema and no output schema, the definition supplies the essential operation and endpoint. It leaves some niceties unstated, such as error handling and routing to siblings, but is largely sufficient.

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 both parameters, including the resource enum and id field. The description only restates 'by type and id' and adds no syntax 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?

Description names the verb 'Fetch', the resource 'single FHIR resource', the lookup keys 'by type and id', and the underlying endpoint. It distinguishes a direct single-resource read from sibling search and bundle operations such as canvas_search and canvas_get_patient_everything.

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?

No explicit when/when-not guidance or named alternative. The 'single' and 'by type and id' phrasing implies it is for direct lookup when both identifiers are known, but the agent must infer that canvas_search is for broader queries.

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. 4 tool updates
    • First observedcanvas_get_capability_statement
    • First observedcanvas_get_patient_everything
    • First observedcanvas_read
    • First observedcanvas_search

Related MCP Connectors

Related MCP Servers

  • 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
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables read-only access to Chinese FHIR electronic health records, including patient summaries, medication review context, record queries, and attachment reading, along with controlled CSV import and status tools.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.