MCP 2026-07-28 Spec: JSON Schema 2020-12, Stateless Protocol, and What Changed¶
The MCP specification released on July 28, 2026 introduced significant changes: full JSON Schema 2020-12 support for tool schemas, a stateless protocol, structured output, and renamed primitives. This page summarizes what changed and what it means for server and client developers.
Tool schemas: full JSON Schema 2020-12¶
Tool inputSchema and outputSchema now support the full JSON Schema
2020-12 vocabulary (SEP-2106).
- Input schemas keep an object root type restriction
- Output schemas have no root-type restriction
structuredContentmay now be any valid JSON value, not only an object- Schemas default to JSON Schema 2020-12 when no explicit
$schemais provided
For CorpusIQ, this makes the AnswerSpec contract host-validatable: the tool declares its output schema, and clients can validate the structured content against it before rendering.
Stateless protocol¶
The 2026-07-28 release removed protocol-level sessions. The handshake is
stateless. Requests carry the protocol version in the MCP-Protocol-Version
header instead of a session handshake. This simplifies horizontally scaled
deployments.
Structured output¶
CallToolResult now includes a structuredContent field. Servers return
machine-readable structured data alongside or instead of text content.
Clients can use the declared outputSchema to validate the structured
content.
Renamed and deprecated primitives¶
Several primitives moved or were renamed in this release. Servers and
clients should check the migration notes in the official specification
before upgrading. The protocol version string for this release is
2026-07-28.
Migration notes¶
- JSON Schema draft upgraded to 2020-12 (breaking for schemas written against older drafts)
- Error code -32002 changed to -32602
- Update
$schemadeclarations tohttps://json-schema.org/draft/2020-12/schema - Validate
structuredContentagainst the tooloutputSchemabefore consuming it