Connects AI to openEHR REST APIs for electronic health record management, composition handling, template management, and AQL query execution
The server defines 4 tools with good naming conventions (verb_noun pattern: template_list, template_get, template_upload, template_example_get). All tool descriptions are present and substantive (135-270 chars), explaining WHAT the tool does, WHEN to use it, and in some cases WHY (e.g., template_list guides users to call it first before template_get). All parameters have type definitions and descriptions. However, there are gaps in output schema documentation, while input schemas are complete, the actual response structures for each tool are not explicitly documented in the visible source code. Tool descriptions are thorough but could be more concise (several exceed the 194-char production baseline). Error handling guidance is absent, tools lack recovery hints or error classification. The server demonstrates solid baseline competence but lacks the polish of A-grade tools (structured output docs, error recovery patterns).
Retrieve an example COMPOSITION for a given Template from the openEHR Definitions endpoint. Use this tool when you need a sample COMPOSITION instance that conforms to a Template, e.g. to understand the structure before creating a real COMPOSITION, or to pre-fill values. The server generates the example; prefer format "flat" for composition authoring workflows.
Retrieve the full definition of a Template from the openEHR server in a specified format. Use this tool after you have identified a template ID (e.g. from template_list), or when you already know the template identifier. It fetches the full Template for further processing, e.g.: inspect structure and constraints for building Composition objects, or cite the definition in downstream reasoning. Returned formats: 'opt' (Operational Template XML), 'json' (web template JSON).
List all Templates available at the openEHR server Definitions endpoint. Use this tool when you need to discover which Templates are deployed on the server before retrieving or uploading one. Typically this is the first step in a workflow: list templates, then call template_get or template_example_get for a chosen template ID. When keyword is provided, results are filtered and ranked by relevance (score) against template id/name; when empty, all templates are returned (limited by maxResults).
Upload a Template definition to the openEHR server Definitions endpoint. Use this tool when you need to register or update an Operational Template (OPT) on the server. The server accepts the Template content in the given format and typically responds with the full representation of the saved Template.
Output schemas not documented. Tool definitions show detailed input schemas but no explicit documentation of response structures. LLMs cannot infer what fields are returned or plan downstream processing.
No error handling guidance. Tools lack recovery hints or error classification. If template_get fails (invalid ID, network error, permission denied), the description does not guide the LLM toward recovery (e.g., 'call template_list first to verify ID' or 'check server connectivity').
template_upload description does not explicitly state it modifies state or document reversibility. Users/agents need to know this is a write operation with side effects.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 66 | <=2025-11-25 | v2 |
template_list maxResults parameter defaults to 0 (unlimited). Production baseline suggests capping results at 20 - 50 to avoid context window exhaustion. The description states 'limited by maxResults' when maxResults=0, which is contradictory.
Descriptions exceed production baseline. template_list description is 270 chars (avg baseline 194); template_example_get is 240+ chars. Verbose descriptions waste tokens and bury key selection criteria. Recommended: 100 - 180 chars maximum.