Root entries acquire _meta from MCP 2025-06-18. This is different from metadata on the surrounding roots result. Remove misplaced metadata or scope the containing example to protocol versions that define it.
Requirement
Section titled “Requirement”A root in a roots response may carry _meta from MCP 2025-06-18.
Details
Section titled “Details”Rule ID: mcp.root.meta.protocol-version
Owner: mcp
Surface: Root · Path: _meta
Kind: structural
Requirement level: must
Status: internal · Enforcement: internal
Protocol version applicability
Section titled “Protocol version applicability”2024-11-05 |
2025-03-26 |
2025-06-18 |
2025-11-25 |
2026-07-28 |
|---|---|---|---|---|
| applies | applies | applies | applies | applies |
Required by
Section titled “Required by”- MCP Description 0.9.0, Sections 3.5, 3.6, and 9.4
- 3. Document Structure: req-meta-protocol-version-availability
Based on
Section titled “Based on”- Tier 1 — MCP schema.ts and normative specification text: MCP 2024-11-05 and 2025-03-26 schema.ts, interface Root (uri, name); MCP 2025-06-18 to 2026-07-28 schema.ts, interface Root (adds _meta)
Examples
Section titled “Examples”Valid example
Section titled “Valid example”Source: expected-warning/open-step-responses-before-2026.json · Selected: /tools/0/interactionExamples/approved/steps/0/response/roots/0
{ "uri": "file:///workspace/example", "_meta": { "trace": "root1" }}Invalid example
Section titled “Invalid example”Source: expected-invalid/root-meta-before-2025-06-18.json · Selected: /tools/0/interactionExamples/with-root-meta/steps/0/response/roots/0
{ "uri": "file:///workspace/example", "_meta": { "trace": "root1" }}Rule Source Code
Section titled “Rule Source Code”result.yaml at immutable tag v0.9.0-rc.3.