The public catalog states what Doris MCP Server 1.0 can represent. Runtime availability states what the current request identity can safely call on the current Apache Doris route. These are deliberately different concepts.
Availability combines:
major.minor.patch range.No single predicate, including the version number, overrides the others.
The detector issues the Doris version probe and accepts real-world comments such as:
Doris version doris-3.0.3-rc03-43f06a5e26 (Cloud Mode)
Capability and certification keys use only:
3.0.3
RC/GA labels, commit hashes, and deployment hints remain diagnostic metadata. They do not create a separate support bucket. Component version vectors are evaluated conservatively; dead components remain visible in inventory but do not gate active capability ranges.
A DorisCapabilitySnapshot is private to one resolved route and contains:
The detector caches snapshots for a bounded TTL and uses singleflight so concurrent discovery does not issue duplicate probe storms. Domain-specific evidence extends the coherent base generation. If the route changes during extension, the operation is rejected rather than combining routes.
A stale snapshot is eligible only inside the configured bounded stale window and only for the detector's documented failure conditions. Stale state changes the generation fingerprint and remains visible; it is not presented as fresh.
For every authorized child, the manifest returns an Availability object with fields such as:
{ "status": "available", "callable": true, "reason_code": "CAPABILITY_AVAILABLE", "evidence_sources": [ "catalog_contract", "version_range", "runtime_probe" ] }
Typical status classes are available, unavailable/unsupported, degraded, misconfigured, unknown, and pending. The exact wire enum and reason codes are defined by the runtime models. callable is the execution gate.
The description may receive a short dynamic prefix to help a model read the state, but descriptions are not authoritative. Hosts and applications must use the structured object.
An authorized child stays in the manifest when its runtime predicates fail. This design lets the Host explain:
Removing such children would make the contract appear unstable and would hide actionable operator information. Unauthorized children, by contrast, are filtered out and cannot be distinguished from nonexistent names.
manifest_version changes when any relevant public contract, authorization, capability generation, provider generation, or route evidence changes. A Host may send the discovered version with a child call. A mismatch returns CHILD_MANIFEST_STALE and requires rediscovery.
This prevents a time-of-check/time-of-use gap in which a model calls a child under an obsolete provider or capability description.
Hierarchical mode resolves availability during domain discovery. Flat mode also obtains each formal child from the current authorized manifest before returning it in tools/list. Both modes therefore share:
Flat mode is a Host compatibility fallback, not a capability bypass.
Release certification records evidence gathered against named Doris patch targets. Runtime support is decided for the connected route.
The project baseline is Doris 2.0.0+. The 1.0 target set is 2.0.15, 2.1.11, 3.0.3, 3.1.4, 4.0.5, 4.0.6, 4.0.7, 4.1.0, 4.1.1, 4.1.2, and 4.1.3. At the release boundary, 4.0.5 is the first fully certified target. A target marked target_uncertified is not treated as automatically broken; its runtime manifests remain authoritative and honest about observed support.
The baseline does not mean every child works on 2.0. Features introduced later remain discoverable with callable=false, a stable reason code, and the required version/provider/probe evidence. The reviewed release-note mapping is documented in the Doris version capability matrix.
For trace_column_lineage:
This is the intended pattern for every version- and provider-dependent child: state the active evidence path, do not infer success from version alone, and never silently substitute one evidence class for another.
explicit_adbc=true, which represents an end user request that explicitly selected ADBC or Arrow Flight SQL;doris_query.execute_query.When a child is not callable:
doris_cluster.get_runtime_capabilities if authorized.reason_code and evidence sources.See Troubleshooting for failure-specific procedures.