Sampling tools and toolChoice are available from MCP 2025-11-25. Earlier-version interaction examples cannot use those fields. Remove them or narrow the containing Tool’s protocol scope to versions that support them.
Requirement
Section titled “Requirement”A sampling request uses tools and toolChoice only from MCP 2025-11-25.
Details
Section titled “Details”Rule ID: mcp.sampling.tools.protocol-version
Owner: mcp
Surface: CreateMessageRequest · Path: tools, toolChoice
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, Section 9.4
Based on
Section titled “Based on”- Tier 1 — MCP schema.ts and normative specification text: MCP 2025-06-18 schema.ts, CreateMessageRequest (no tools); MCP 2025-11-25 and 2026-07-28 schema.ts, CreateMessageRequestParams tools and toolChoice
Examples
Section titled “Examples”Invalid example
Section titled “Invalid example”Source: expected-invalid/invalid-tool-interaction-example-semantics.json · Selected: /tools/0/interactionExamples/broken/steps/2/request
{ "messages": [ { "role": "user", "content": { "type": "text", "text": "Summarize the release plan." } } ], "tools": [ { "name": "diff_summary", "inputSchema": { "type": "object" } } ], "maxTokens": 120}Rule Source Code
Section titled “Rule Source Code”interaction.yaml at immutable tag v0.9.0-rc.3.