The components object holds non-empty named maps in its five namespaces. A Reference Object has exactly one $componentRef. Where a value may be inline or a reference, the inline form is a JSON object without $componentRef.
Requirement
Section titled “Requirement”Components contain non-empty, well-named maps; a Reference Object has only $componentRef; an inline schema or example is an object.
Details
Section titled “Details”Rule ID: mcpdesc.components.members
Owner: mcpdesc
Surface: Components, Reference Object
Kind: structural
Requirement level: must
Protocol versions: independent of the MCP protocol version
Document schema locations: #/$defs/components, #/$defs/componentMap, #/$defs/referenceObject, #/$defs/schemaComponentValue, #/$defs/jsonSchemaObject
Status: internal · Enforcement: internal
Required by
Section titled “Required by”- MCP Description 0.9.0, Sections 17.1 and 17.2
- 17. Reusable Components and Local References: req-components-fields
-
- Reusable Components and Local References: req-reference-object-fields
-
- Specification Extensions: req-extension-ineligible-locations
-
- Specification Extensions: req-extension-component-names
-
- Reusable Components and Local References: req-component-maps
-
- Reusable Components and Local References: req-components-closed
Examples
Section titled “Examples”Invalid example
Section titled “Invalid example”Source: expected-invalid/components-empty-and-reference-shapes.json · Selected: /components/schemas
{}Rule Source Code
Section titled “Rule Source Code”document.yaml at immutable tag v0.9.0-rc.3.