Skip to content
{mcpdesc}

Use content blocks supported by each protocol version

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.

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.

Rule ID: mcp.content-block.protocol-version
Owner: mcp
Surface: ContentBlock
Kind: structural
Requirement level: must
Status: internal · Enforcement: internal

2024-11-05 2025-03-26 2025-06-18 2025-11-25 2026-07-28
applies applies applies applies applies

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.

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"
}

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"
}

content.yaml at immutable tag v0.9.0-rc.3.