Extension identifiers in an MCP-reserved namespace are checked against the pinned catalogue. Unknown or experimental identifiers are preserved with a warning. Verify the identifier and its maturity; an unrecognized identifier is not silently assigned known extension semantics.
Requirement
Section titled “Requirement”An extension identifier under an MCP-reserved prefix that the pinned extension catalogue lists as experimental, or does not list, is preserved with a warning.
Details
Section titled “Details”Rule ID: mcpdesc.extensions.catalogue-maturity
Owner: mcpdesc
Surface: Extension identifier · Path: capabilities.extensions, clientRequirements.extensions
Kind: mcpdesc-semantic
Requirement level: should
Protocol versions: independent of the MCP protocol version
Status: internal · Enforcement: internal
Required by
Section titled “Required by”- MCP Description 0.9.0, Sections 8.4 and 8.5; validator extension catalogue (effective 2026-09-04)
- 8. Capabilities: req-extensions-reserved-identifiers
-
- Capabilities: req-extensions-catalogue-maturity
-
- Capabilities: req-extensions-official-no-warning
Based on
Section titled “Based on”- Tier 1 — MCP schema.ts and normative specification text: MCP 2026-07-28 specification, Basic, General fields, _meta key name format (second label modelcontextprotocol or mcp is reserved)
The pinned catalogue lists no experimental identifiers, so no document currently produces the experimental-identifier warning.
Examples
Section titled “Examples”Accepted with a warning
Section titled “Accepted with a warning”Source: expected-warning/unknown-reserved-extension-identifier.json · Selected: /capabilities/0/extensions
{ "io.modelcontextprotocol/future-capability": { "enabled": true }}Accepted with a warning
Section titled “Accepted with a warning”Source: expected-warning/deprecated-client-capability-requirements.json · Selected: /prompts/0/clientRequirements/extensions
{ "io.modelcontextprotocol/future-capability": {}}Rule Source Code
Section titled “Rule Source Code”capabilities.yaml at immutable tag v0.9.0-rc.3.