A single-version projection validates the source, keeps the declarations whose effective scope includes the protocol version, removes their scopes, and keeps everything else unchanged: security forms, examples, client requirements, tags, extensions, and the components still referenced.
Requirement
Section titled “Requirement”An Effective Protocol View is a valid document for one protocol version that keeps the applicable declarations and preserves their content, security semantics, and referenced components.
Details
Section titled “Details”Rule ID: mcpdesc.view.projection
Owner: mcpdesc
Surface: Effective Protocol View
Kind: mcpdesc-semantic
Requirement level: must
Protocol versions: independent of the MCP protocol version
Status: delegated · Enforcement: external
Required by
Section titled “Required by”- MCP Description 0.9.0, Section 4.12, and the view requirements of Sections 3 to 17
- 4. Versioning: req-view-projection
-
- Versioning: req-view-projection-transports
-
- Document Structure: req-security-empties-preserved
-
- Security: req-security-empty-distinction
-
- Security: req-security-projection
-
- Serialization: req-serialization-empty-values-preserved
-
- Capabilities: req-client-requirements-views
-
- Resources and Resource Templates: req-resource-example-views
-
- Resources and Resource Templates: req-template-completion-views
-
- Prompts: req-prompt-example-views
-
- Prompts: req-prompt-completion-views
-
- Tags: req-tags-views
-
- Specification Extensions: req-extension-views
-
- Reusable Components and Local References: req-component-pruning
Checked by the cases in view-fixtures/, which scripts/test-view-fixtures.mjs recomputes with the reference operations of scripts/mcpdesc-views.mjs. Implementations such as @mcpdesc/core must pass them.
Examples
Section titled “Examples”View succeeds
Section titled “View succeeds”Source: view-fixtures/view-client-requirements-2026-07-28.json · Selected: /expected
"expected/view-client-requirements-2026-07-28.json"View succeeds
Section titled “View succeeds”Source: view-fixtures/view-completion-examples-2026-07-28.json · Selected: /expected
"expected/view-completion-examples-2026-07-28.json"View succeeds
Section titled “View succeeds”Source: view-fixtures/view-component-pruning-2026-07-28.json · Selected: /expected
"expected/view-component-pruning-2026-07-28.json"View succeeds
Section titled “View succeeds”Source: view-fixtures/view-prompt-examples-2026-07-28.json · Selected: /expected
"expected/view-prompt-examples-2026-07-28.json"View succeeds
Section titled “View succeeds”Source: view-fixtures/view-protocol-scoped-primitives-2025-11-25.json · Selected: /expected
"expected/view-protocol-scoped-primitives-2025-11-25.json"View succeeds
Section titled “View succeeds”Source: view-fixtures/view-protocol-scoped-primitives-2026-07-28.json · Selected: /expected
"expected/view-protocol-scoped-primitives-2026-07-28.json"View succeeds
Section titled “View succeeds”Source: view-fixtures/view-resource-examples-2026-07-28.json · Selected: /expected
"expected/view-resource-examples-2026-07-28.json"View succeeds
Section titled “View succeeds”Source: view-fixtures/view-security-forms-2025-11-25.json · Selected: /expected
"expected/view-security-forms-2025-11-25.json"View succeeds
Section titled “View succeeds”Source: view-fixtures/view-security-forms-2026-07-28.json · Selected: /expected
"expected/view-security-forms-2026-07-28.json"View succeeds
Section titled “View succeeds”Source: view-fixtures/view-specification-extensions-2025-11-25.json · Selected: /expected
"expected/view-specification-extensions-2025-11-25.json"View succeeds
Section titled “View succeeds”Source: view-fixtures/view-tool-interaction-examples-2025-11-25.json · Selected: /expected
"expected/view-tool-interaction-examples-2025-11-25.json"View fails
Section titled “View fails”Source: view-fixtures/view-protocol-version-not-declared.json · Selected: /expectedFailure
"req-view-projection"View fails
Section titled “View fails”Source: view-fixtures/view-source-invalid.json · Selected: /expectedFailure
"req-view-projection"Rule Source Code
Section titled “Rule Source Code”projection.yaml at immutable tag v0.9.0-rc.3.