Tool and Prompt examples carry native MCP content, whose types and fields vary by protocol version. Check each block against the containing declaration’s full effective scope. A block valid in a newer version is not automatically valid in an older one.
Requirement
Section titled “Requirement”Content blocks in example results use only content types and fields the applicable protocol version defines: audio from MCP 2025-03-26, resource links and block _meta from 2025-06-18, and resource-link icons from 2025-11-25.
Details
Section titled “Details”Rule ID: mcp.content-block.protocol-version
Owner: mcp
Surface: ContentBlock
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 9.3 and 11.3
Based on
Section titled “Based on”- Tier 1 — MCP schema.ts and normative specification text: MCP 2024-11-05 schema.ts, TextContent, ImageContent, and EmbeddedResource (no AudioContent, no ResourceLink, no content _meta)
- Tier 1 — MCP schema.ts and normative specification text: MCP 2025-03-26 schema.ts, AudioContent
- Tier 1 — MCP schema.ts and normative specification text: MCP 2025-06-18 schema.ts, ResourceLink and ContentBlock, _meta on content types
- Tier 1 — MCP schema.ts and normative specification text: MCP 2025-11-25 schema.ts, Resource extends Icons (inherited by ResourceLink)
The same diagnostic codes also report embedded resource _meta (mcp.resource-contents.meta.protocol-version) and annotations.lastModified (mcp.annotations.last-modified.protocol-version); the rule property identifies which.
Examples
Section titled “Examples”Invalid example
Section titled “Invalid example”Source: expected-invalid/protocol-version-incompatible-tool-example.json · Selected: /tools/0/examples/future-result/result/content/0
{ "type": "resource_link", "uri": "resource://example/item", "name": "Future resource link"}Invalid example
Section titled “Invalid example”Source: expected-invalid/invalid-prompt-example-semantics.json · Selected: /prompts/4/examples/resource-link-too-new/result/messages/0/content
{ "type": "resource_link", "uri": "briefing://example", "name": "Example"}Rule Source Code
Section titled “Rule Source Code”content.yaml at immutable tag v0.9.0-rc.3.