List all ADRs from the Exeris ecosystem registry. Each entry carries number, title, owning repo, scope, visibility, status, and link. Optional `status` filter narrows the result by the first token of the status cell (e.g. 'accepted', 'proposed', 'superseded', 'reserved').
Parametersstatus
Fetch the full markdown body of a specific ADR by number. Resolves the link from the registry against the ecosystem root, so cross-repo ADRs (those whose content lives in a sibling repo) are read from their authoritative source.
Parametersnumberrequired
Fetch one of the canonical decision-doc templates from exeris-docs/templates/. Three kinds: ADR (decision made), RFC (multi-option strategic question), RESEARCH (falsifiable hypothesis, lab-notebook shape).
Parameterskindrequired
Fetch the High-Level Architecture document (high-level-architecture.md) from exeris-docs. Canonical narrative of the three-tier model.
Takes no parameters.
Fetch the B2B technical whitepaper (b2b-technical-whitepaper.md) from exeris-docs.
Takes no parameters.
Search exeris-docs for a literal substring (case-insensitive). Returns the path, line number, and snippet of each match, capped by maxResults. Optional pathFilter narrows to files whose docs-root-relative path contains the substring (e.g. 'adr/' to scope to ADR files). Scope is the docs root only; cross-repo content is reachable via get_adr.
ParametersqueryrequiredmaxResultspathFilter
List sibling Exeris repos under the ecosystem root that publish a `docs/` directory. Returned names are usable as `repo` input to `docs-list_repo_docs` and `docs-get_repo_doc`.
Takes no parameters.
List markdown documents under `<repo>/docs/**` for an Exeris sibling repo. The `adr/` subdirectory is excluded — those are the registry's territory and reachable via `docs-list_adrs` / `docs-get_adr`. Use `docs-list_repos` to discover valid repo names.
Parametersreporequired
Fetch a specific markdown document from `<repo>/docs/<path>`. Use `docs-list_repo_docs` to discover valid paths.
Parameterspathrequiredreporequired
List all @ExerisDomain types known to the active LSP session.
Takes no parameters.
Return the source-model description of an @ExerisDomain type: fields, actions, relationships, generated artefacts, and the `sourceDigest` that `lsp-preview_mutation` takes as its concurrency token.
ParametersqualifiedNamerequired
List all @Action methods across the workspace, with their owning @ExerisDomain.
Takes no parameters.
Preview how the SDK's canonical writer would change an @ExerisDomain source file for one mutation, applied in memory. Returns `{ result, sourcePath, diff }`: a unified diff and the SDK outcome in `result.outcome` — SUCCESS, CONFLICT (the source drifted from the baseline; the result carries baseline, current and intended values), VALIDATION_ERROR, or NO_BASELINE. Nothing is written: apply the diff with your own file tools. For a stale-free preview, pass the entity's last-emitted metadata as `baselineJson` and the `sourceDigest` from `lsp-describe_domain` as `concurrencyToken`.
ParametersoprequiredbaselineJsonqualifiedNamerequiredconcurrencyToken
List all SPI providers registered with the running kernel, including driver origin (community/enterprise priority).
Takes no parameters.
Snapshot of the kernel bootstrap dependency DAG — nodes (subsystems) with their phase, declared dependencies, and running state.
Takes no parameters.
kernel-describe_subsystem
Detail for a single kernel subsystem by name (e.g. memory, crypto, persistence, graph, transport, events, flow, http, security).
Parametersnamerequired
kernel-get_jvm_ergonomics
What the JVM running the kernel actually resolved at startup: selected GC, max/committed heap, visible processors, and the container limits it detected (cgroup CPU quota/period, memory cap, cpuset) plus large-page, CDS and AOT-cache state. Null fields mean the kernel could not determine that value. A kernel that does not implement this answers a snapshot with gcName 'unknown' and -1 byte counts.
Takes no parameters.
List what this project's last build emitted into target/classes/exeris-metadata: every @ExerisDomain entity, plus the enums, capabilities and views the processor wrote alongside them, each with its kind. Use it to discover names before calling build-get_domain_metadata. A project that has not been built, or has no @ExerisDomain sources, returns present:false rather than an error.
Takes no parameters.
build-get_domain_metadata
Fetch the DomainMetadata JSON the annotation processor emitted for one declaration of this project — the authoritative AST the code generators consume, including fields, actions, events, relationships and the system-field flags. `name` is the Java simple name (e.g. 'Station'), as listed by build-list_domains. Returns the record verbatim, plus the schemaVersion and (when the build could compute one) the ADR-042 sourceDigest.
Parameterskindnamerequired
List the files Exeris codegen has generated into this project, each with the generator that produced it and when that generator emits — handlers, services, repositories, domain errors, event publishers, graph projections, sagas, Flyway migrations, OpenAPI specs, and the project-wide bootstrap. Ask this BEFORE hand-writing SQL, a DTO or a controller for an Exeris entity: the build usually already emits it. Optional `entity` narrows to one entity's artefacts. Reports what the pipeline actually emitted, read from its own output manifest and explained by the generator catalogue exeris-tooling publishes with its codegen jar. Each artefact carries `candidates`: every catalogue row that can have written the path, first match first. One candidate means `generator` names it; several mean the path shape is shared and `generator` is null rather than a guess; none means the path is unrecognised. A project that has not run codegen returns present:false.
Parametersentity
Report whether this project's generated code is still pipeline-owned (L1, src/main/generated/java — regenerated on every build, so edits are lost) or has been detached into the developer's own sources (L2, src/main/java — owned, safe to edit). Ask this before editing anything under a generated tree. Returns the state, the observations behind it, and how many files the pipeline claims.
Takes no parameters.
Decode an error, warning or note exeris-tooling printed — an annotation-processor message, a codegen plugin goal failure or warning, a capability-graph or cap-tier Wall refusal, a missing runtime driver, a code-generation pipeline or CodegenMain line, or an exeris-initializr error. Paste the diagnostic text verbatim; returns what it means, the rule behind it, and what to do. Looks each diagnostic up by its stable EXT- identifier (ADR-095), which exeris-tooling prints from 0.9.0, and falls back to message text only for output that carries none. An identifier with no catalogue entry is named back as a catalogue gap, and a diagnostic it does not recognise is reported as not in the catalogue — never as not being an Exeris problem.
Parameterstextrequired
List the capability modules composed into this project, from the build-time cap-manifest.json: each module's qualified name, the services it provides with their versions, and which module owns the lifecycle. Also returns initOrder exactly as the manifest states it. A project with no capabilities returns an empty list, not an error.
Takes no parameters.
caps-describe_composition
Report the composition stamp from cap-manifest.json: whether the capability graph validated, the composition version, and the content binding digest, alongside the manifest schema version, the module count and initOrder. Answers 'is this build's composition trustworthy, and which build is it'. A project with no capabilities returns a present:false answer, not an error.
Takes no parameters.
List Exeris SDK annotations from the authoring contract: name, qualified name, package, targets, retention, and purpose. Supports optional filtering by package (e.g. 'system', 'security', 'capability', or full package name), target (e.g. 'METHOD', 'TYPE', 'FIELD'), or query string.
Parametersquerytargetpackage
Describe a specific Exeris SDK annotation: simple and qualified name, owning package rationale, targets, retention, purpose, detailed description, all attributes (with types, defaults, required-ness, descriptions, and deprecations), and annotation-level deprecation status.
Parametersannotationrequired
Get canonical authoring contract scoping rules for Exeris SDK annotations (including @Field vs @Validation split, FieldMetadata as single AST carrier per ADR-054, derived SQL NOT NULL and API not-blank generator semantics, form lifecycle scoping, deprecations, and sibling vs nested form trap). Supports optional filtering by rule ID or query string.
Parametersrule
List all deprecated Exeris SDK annotations and attributes across the authoring contract, including replacement guidance, since version, and forRemoval status. Supports filtering by package or forRemoval only.
ParameterspackageforRemovalOnly
Get JSON Schema for the Exeris build-time DomainMetadata AST and sibling records. If 'definition' is omitted, returns the top-level schema envelope, reader requirements (such as Jackson 3 constraints), and definition list. If 'definition' is specified (e.g. 'DomainMetadata', 'FieldMetadata', 'ActionMetadata'), returns the schema definition for that specific record.
Parametersdefinition
Identify this MCP server: package name and version, the Node runtime it is running on, which persona mode it resolved to, and what bundled reference data it carries. Use it to confirm which bridge build an answer came from, and which upstream release that data reflects.
Takes no parameters.
Report which tool families can serve requests and why the others cannot. Each family carries its state and, when unavailable, the reason and the remedy. Families backed by a child process also report that process's current state — without starting it. Call this first when a tool returns 'family_unavailable'.
Takes no parameters.