An omitted scope inherits its parent’s full scope; an explicit child scope must stay within it. Declarations with the same identity cannot overlap where the specification requires uniqueness. Narrow the scopes rather than expecting the validator to choose one variant.
Requirement
Section titled “Requirement”Nested protocol scopes stay within their parent scope, and same-named primitives and capability objects do not overlap in protocol scope.
Details
Section titled “Details”Rule ID: mcpdesc.protocol-scope.consistency
Owner: mcpdesc
Surface: Document · Path: protocolVersions
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 4.10 and 8.6
- 4. Versioning: req-scope-subset
-
- Capabilities: req-capability-scopes-disjoint
-
- Tools: req-tool-names-disjoint
-
- Elicitation Declarations: req-elicitation-scope
-
- Versioning: req-scope-root-subset
-
- Resources and Resource Templates: req-resource-scopes-disjoint
-
- Prompts: req-prompt-scopes-disjoint
-
- Prompts: req-prompt-variants-disjoint
Examples
Section titled “Examples”Invalid example
Section titled “Invalid example”Source: expected-invalid/elicitation-scope-outside-parent.json · Selected: /resourceTemplates/0/elicitations/0
{ "name": "authorize", "mode": "url", "message": "Authorize item access.", "protocolVersions": [ "2026-07-28" ]}Invalid example
Section titled “Invalid example”Source: expected-invalid/scoped-version-not-in-root.json · Selected: /transports/0
{ "type": "stdio", "command": "bad-scope", "protocolVersions": [ "2026-07-28" ]}Invalid example
Section titled “Invalid example”Source: expected-invalid/overlapping-tool-scope.json · Selected: /tools/1
{ "name": "run_job", "protocolVersions": [ "2026-07-28" ], "inputSchema": { "type": "object", "additionalProperties": false }}Invalid example
Section titled “Invalid example”Source: expected-invalid/overlapping-capabilities.json · Selected: /capabilities/0
{ "protocolVersions": [ "2025-11-25" ], "tools": { "listChanged": true }}Rule Source Code
Section titled “Rule Source Code”document.yaml at immutable tag v0.9.0-rc.3.