A component reference must identify an existing value in the namespace required by its use site, without a reference cycle. Check both the target name and the namespace. Reuse does not exempt the resolved value from validation in its containing declaration.
Requirement
Section titled “Requirement”A Reference Object targets an existing component in the namespace its use site requires, without cycles.
Details
Section titled “Details”Rule ID: mcpdesc.components.references
Owner: mcpdesc
Surface: Reference Object · Path: $componentRef
Kind: mcpdesc-semantic
Requirement level: must
Protocol versions: independent of the MCP protocol version
Status: internal · Enforcement: internal
Required by
Section titled “Required by”- MCP Description 0.9.0, Sections 17.2 to 17.4
- 17. Reusable Components and Local References: req-component-reference-form
-
- Reusable Components and Local References: req-component-reference-resolution
-
- Elicitation Declarations: req-elicitation-schema-references-resolved
-
- Resources and Resource Templates: req-resource-example-references-resolved
-
- Reusable Components and Local References: req-component-ref-distinct
-
- Reusable Components and Local References: req-component-contextual-validation
-
- Reusable Components and Local References: req-component-reference-pointer
-
- Reusable Components and Local References: req-component-resolution-errors
-
- Reusable Components and Local References: req-component-cycles
Examples
Section titled “Examples”Invalid example
Section titled “Invalid example”Source: expected-invalid/component-reference-resolution.json · Selected: /components/schemas
{ "CycleA": { "$componentRef": "#/components/schemas/CycleB" }, "CycleB": { "$componentRef": "#/components/schemas/CycleA" }}Rule Source Code
Section titled “Rule Source Code”document.yaml at immutable tag v0.9.0-rc.3.