Resource annotations describe audience, priority, and modification time, not Tool behavior. Unknown properties are invalid even when their names start with x-. Remove those properties and keep Tool-specific hints on Tool annotations instead.
Requirement
Section titled “Requirement”Resource Annotations on resources, resource templates, and content blocks contain only audience, priority, and lastModified.
Details
Section titled “Details”Rule ID: mcp.annotations.members
Owner: mcp
Surface: Annotations
Kind: structural
Requirement level: must
Document schema locations: #/$defs/resourceAnnotations
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, Section 10.3
- 10. Resources and Resource Templates: req-resource-annotations-closed
-
- Resources and Resource Templates: req-content-annotations-distinct
-
- Serialization: req-serialization-value-formats
Based on
Section titled “Based on”- Tier 1 — MCP schema.ts and normative specification text: MCP 2024-11-05 schema.ts, inline annotations on Resource, ResourceTemplate, and content types; MCP 2025-03-26 to 2026-07-28 schema.ts, interface Annotations (no index signature)
lastModified is defined from MCP 2025-06-18; that boundary is checked separately.
Examples
Section titled “Examples”Valid example
Section titled “Valid example”Source: expected-valid/distinct-tool-and-resource-annotations.json · Selected: /resources/0/annotations
{ "audience": [ "user", "assistant" ], "priority": 0.8, "lastModified": "2026-08-24T10:00:00Z"}Invalid example
Section titled “Invalid example”Source: expected-invalid/resource-annotations-unknown-property.json · Selected: /resources/0/annotations
{ "priority": 0.5, "x-acme-tier": "gold"}Invalid example
Section titled “Invalid example”Source: expected-invalid/content-annotations-unknown-property.json · Selected: /tools/0/examples/basic/result/content/0/annotations
{ "audience": [ "user" ], "readOnlyHint": true}Rule Source Code
Section titled “Rule Source Code”annotations.yaml at immutable tag v0.9.0-rc.3.