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. It is still the current protocol revision listed on modelcontextprotocol.io as of October 30, 2026, alongside the final 2025 revisions (2025-11-25, 2025-06-18, 2025-03-26). 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. Each request declares its version in _meta under the key
io.modelcontextprotocol/protocolVersion, and on Streamable HTTP the same
value also travels in the MCP-Protocol-Version header instead of a session
handshake. The server accepts or rejects each request independently, answering
with an UnsupportedProtocolVersionError when it does not support the
requested version. server/discover returns a server's supported versions,
capabilities, and identity in one request, so a client can pick a version up
front rather than fail first. 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