Compatibility and versioning
Stable surfaces
Section titled “Stable surfaces”- MCP endpoint:
https://elicitra.eigen.rest/api/mcp. - Scenario export format:
elicitra.scenario.v1. - Webhook event types end in
.v1. - The current machine contract lives under
/developers/v6/and is byte-immutable after publication. - The previous
/developers/v1/,/developers/v2/,/developers/v3/,/developers/v4/, and/developers/v5/trees remain available and byte-immutable; no sunset is currently scheduled. - Webhook contracts are published as AsyncAPI 3.0.0 (document version
1.1.0).
MCP protocol negotiation is separate from Elicitra contract versioning. The hosted server is stateless: it creates a fresh protocol server per POST and never returns Mcp-Session-Id.
Every published version tree is immutable. Consumers should ignore unknown JSON object properties when reading output, but must send inputs that match the current published closed schemas. Any contract-field addition is published under a parallel version before runtime starts returning it.
The unversioned MCP endpoint advertises and serves the v6 MCP runtime contract with the same fourteen-tool allowlist. Both initialize.serverInfo.version and elicitra_get_started.contractVersion are v6. Versioned directories are pinned machine artifacts, not alternate MCP routes. Webhook event type suffixes (.v1), HMAC signature entries (v1=), and the elicitra.scenario.v1 export format are independent protocols.
The assistant-name schema addition and fourth public event required the parallel v6 artifact tree because v5 is immutable. V6 keeps the three lifecycle subscriptions unchanged while adding the non-subscribable com.elicitra.automation.triggered.v1 conditional-destination event; the hosted MCP runtime migrated to v6 only after that parallel tree was available.
Existing lifecycle deliveries remain pinned to their v5 dataschema URLs, so a consumer that validates the immutable URL continues to receive the same contract. Only com.elicitra.automation.triggered.v1 uses the new v6 dataschema; the v6 tree also republishes the unchanged lifecycle schemas for discovery.
The versioned manifest.json publishes a deterministic sha256: digest for every MCP input/output and webhook data schema. Consumers can use those hashes to pin reviewed contracts and detect accidental artifact drift.
An incompatible change introduces a parallel version. Elicitra retains the previous public tool/event artifacts for at least 180 days. If a version is deprecated, its deprecation and sunset dates are published here and in the changelog before removal.
Client support
Section titled “Client support”Elicitra tests the current stable Codex CLI/IDE extension, Claude Code, and Cursor against staging before GA and after transport changes. A client is listed as supported only if it can:
- send an environment-backed bearer token;
- negotiate stateless Streamable HTTP without GET/session requirements;
- list the correct scope-filtered tools;
- complete the draft workflow without storing the PAT in the project.
If a client release cannot meet those invariants, the release is marked temporarily unsupported; Elicitra does not weaken tenant, auth, or stateless transport controls to accommodate it.