Skip to content

Features

This page is the inventory of what the openEHR Assistant ships, and where each part runs. It has two halves. The MCP server supplies knowledge and tools over the Model Context Protocol, and works with any client that speaks it. The plugin turns those tools into guided workflows, and runs in Claude Code and Cursor only.

Use the server on its own to search CKM, read specifications, and resolve terminology from whatever client you already have. Add the plugin when you want the modelling workflow around it: skills that load the relevant guide before answering, and lint, diff, and impact commands over the files in your workspace. Two parts need a decision from someone: the host judges when a skill applies, and the lint hook suggests a lint instead of running one. The sections below say which parts run on their own. Use cases shows both at work, with the tool calls each one made.

Pre-release

Expect breaking changes until version 1.0; see Components. The counts and names below were checked against the hosted server and plugin v0.9.2.

MCP server

Every tool is a read (search, fetch, or resolve), so nothing writes back to CKM. The tools work in any MCP client; prompts, resources and completions are optional parts of the protocol, so how much of the rest a client surfaces varies.

Tools

Twelve tools: CKM first, then the bundled guides and examples, then terminology and the type specifications.

Tool What it does
ckm_archetype_search Search published CKM archetypes, ranked by relevance, filterable by RM class
ckm_archetype_get Fetch one archetype by CKM id or archetype id, as ADL, XML, or a mindmap
ckm_template_search Search published CKM templates
ckm_template_get Fetch one template as OET (design-time source) or OPT (flattened, with every archetype constraint inlined)
guide_search Find implementation guidance across the bundled guide corpus
guide_get Retrieve a full guide by category and name
guide_adl_idiom_lookup Look up a specific ADL/AQL/OET idiom without loading a whole guide
examples_search Find a worked example matching a pattern
examples_get Retrieve one curated example
terminology_resolve Resolve openEHR terminology codes to their rubrics, across groups and codesets
type_specification_search Find an RM/AM/BASE type across the specification components
type_specification_get Attributes, functions and invariants for one type, from the BMM schemas

Prompts

Fourteen prompts that walk a client through a multi-step workflow. The protocol treats prompts as optional, so whether they surface (as slash commands, as presets, or not at all) is the client's choice.

Group Prompts
Explore ckm_explorer, guide_explorer, terminology_explorer, type_specification_explorer
Explain explain_archetype, explain_template, explain_aql, explain_simplified_format
Design or review design_or_review_archetype, design_or_review_template, design_or_review_aql, design_or_review_simplified_format
Transform fix_adl_syntax, translate_archetype_language

Guides and examples

Sixty-six guides ship with the server, reachable through guide_search and guide_get. The spec digests run 250–900 words each and link the canonical specification page they summarise, so a claim can be followed to its source. They track the specifications' development branch rather than a numbered release.

Category Guides Covers
archetypes 12 ADL syntax and idioms, modelling principles, anti-patterns, structural constraints, terminology, a review checklist, and language standards (incl. nb, nl)
templates 9 OET and OPT structure, web templates, serialisation formats, the CGEM categorisation framework, principles, and a checklist
aql 4 Syntax, principles, an idioms cheatsheet, and a review checklist
simplified_formats 4 FLAT and STRUCTURED JSON: principles, rules, idioms, checklist
specs 36 Digests of the published components: RM, AM (ADL 1.4/2, AOM, OPT2), BASE, QUERY, LANG, SM, PROC, CDS, TERM, CNF and ITS-REST
howto 1 The specification-lookup policy the server itself follows

Twenty-four curated examples sit alongside them, reachable through examples_search and examples_get.

Kind Examples Contents
aql 12 Time windows, cohorts, joins across compositions, pagination with totals, terminology value sets and audit trails, among others
archetypes 7 CKM-published archetypes: the five ENTRY subtypes (OBSERVATION, EVALUATION, INSTRUCTION, ACTION, ADMIN_ENTRY), plus CLUSTER and COMPOSITION
flat 4 FLAT payloads, including optional RM attributes, coded text with free text, and the raw escape hatch
structured 1 The vital-signs payload again, in STRUCTURED form, so the two can be read side by side

Resources and completions

Documented openehr:// URIs let a client read content directly, without a tool call: openehr://guides/{category}/{name}, openehr://examples/{kind}/{name}, openehr://spec/type/{component}/{name}, and openehr://terminology.

The server completes guide names by category, example names by kind, and specification components.

Plugin

The workflow layer for Claude Code and Cursor. A default install needs no server setup: the plugin registers the hosted one for you, as Components describes. Aim it at a server it cannot reach and the guide-first workflows have nothing to load: clinical-modeler falls back to the reference material bundled in the plugin, ckm-scout stops and says so, and spec-researcher fetches from the specification site instead.

Skills

Skills are model-invoked: the host reads each skill's trigger description and loads the one it judges to match, so the guidance arrives without anyone naming it. Because the host decides, a skill can fail to load when you expected it to.

Seven of the eight are also slash commands you can call yourself. openehr-assistant is not: its frontmatter sets user-invocable: false, so the host reaches for it but you cannot.

Skill Purpose
openehr-assistant Routes any openEHR question that no other skill owns; loads guides before answering
archetype-authoring Create, edit, specialise, review, or translate an archetype, and fix ADL that does not parse
archetype-lint 24 lint checks with ERROR/WARNING/INFO severity, in STRICT or PERMISSIVE mode, indexed against the server's archetypes/rules guide
template-authoring Template design and archetype constraint, including the CGEM categorisation framework
composition-builder Build compositions in FLAT, STRUCTURED and CANONICAL form, and guide validation and format conversion against a target template; no automated validator or converter ships
aql-authoring Author, review, and optimise AQL queries
semantic-diff Compare two archetypes or templates and classify the change as patch, minor, or major
demographic-modeling Model people, organisations, roles, and relationships across the PARTY hierarchy

Subagents

The main conversation delegates to three subagents, which keeps heavy retrieval out of its context. The plugin ships them under agents/.

Subagent Role
ckm-scout Runs parallel CKM searches across varied phrasings and returns a ranked reuse/specialise/author recommendation
clinical-modeler Reads and writes archetype, template, and composition files in your workspace
spec-researcher Answers precise specification questions using the cheapest-first lookup policy

Commands

Three commands of their own, which make ten slash-command entry points in all when you count the seven invocable skills above.

Command Use
/ckm-search Search CKM for archetypes or templates
/openehr-explain Explain any openEHR thing, auto-detecting an archetype, template, RM type, or query
/archetype-impact Scan the workspace for every reference to an archetype before you change it

Hooks and editor rule

A session-start hook runs in both hosts. It counts the openEHR files in the workspace (archetypes, templates, Archetype Designer source templates, and operational templates) and lists what it found alongside the available commands and skills. In a workspace with none of them it prints nothing.

In Claude Code, a second hook notices when the assistant writes an .adl file and suggests an /archetype-lint run. It prompts rather than lints.

Cursor loads an editor rule as well, which applies when openEHR files are in context: .adl, .adls, .oet, .t.json, .opt, .optx, .optj and .aql.


Next: see these working in Use cases, or install the server and plugin.