Tool outputSchema is available from MCP 2025-06-18. A Tool whose effective scope includes an earlier protocol version cannot carry it unchanged. Omit it for the earlier version or provide disjoint variants.
Requirement
Section titled “Requirement”A Tool declares outputSchema only for MCP protocol versions whose Tool type defines it.
Details
Section titled “Details”Rule ID: mcp.tool.output-schema.protocol-version
Owner: mcp
Surface: Tool · Path: outputSchema
Kind: structural
Requirement level: Not specified in the rule record
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 | not-applicable | not-applicable | not-applicable |
Required by
Section titled “Required by”- MCP Description 0.9.0, Section 9.1 (Tool Object field table)
- 4. Versioning: req-field-protocol-version-availability
Based on
Section titled “Based on”- Tier 1 — MCP schema.ts and normative specification text: MCP 2025-03-26 schema.ts, interface Tool (closed; no outputSchema)
- Tier 1 — MCP schema.ts and normative specification text: MCP 2025-06-18 schema.ts, interface Tool, outputSchema
Examples
Section titled “Examples”Invalid example
Section titled “Invalid example”Source: expected-invalid/output-schema-before-2025-06-18.json · Selected: /tools/0
{ "name": "early_output", "inputSchema": { "type": "object" }, "outputSchema": { "type": "object", "properties": { "total": { "type": "integer" } } }}Rule Source Code
Section titled “Rule Source Code”tool.yaml at immutable tag v0.9.0-rc.3.