Skip to content
{mcpdesc}

Tool annotations contain only MCP hints

Tool annotations are a closed set of behavior hints. Resource annotation fields such as audience and priority do not belong here, and custom keys are not allowed. Remove those properties; author-reviewed server metadata can instead use the Tool’s _meta where the protocol version defines it.

A Tool annotations object contains only title, readOnlyHint, destructiveHint, idempotentHint, and openWorldHint.

Rule ID: mcp.tool-annotations.members
Owner: mcp
Surface: ToolAnnotations
Kind: structural
Requirement level: must
Document schema locations: #/$defs/toolAnnotations
Status: internal · Enforcement: internal

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

Tool annotations are not available in MCP 2024-11-05; that boundary is checked separately.

Source: expected-valid/distinct-tool-and-resource-annotations.json · Selected: /tools/0/annotations

{
"title": "Inspect",
"readOnlyHint": true,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
}

Source: expected-invalid/tool-annotations-unknown-property.json · Selected: /tools/0/annotations

{
"readOnlyHint": true,
"audience": [
"user"
]
}

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