This document lists changes made to the Model Context Protocol (MCP) specification since the previous revision, 2025-11-25.Documentation Index
Fetch the complete documentation index at: https://mcp-staging.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Major changes
-
Remove protocol-level sessions and the
Mcp-Session-Idheader from the Streamable HTTP transport. List endpoints (tools/list,resources/list,prompts/list) no longer vary per-connection. Servers that need cross-call state use explicit, server-minted handles passed as ordinary tool arguments (SEP-2567). -
Make MCP stateless: remove the
initialize/notifications/initializedhandshake. Every request now carries its protocol version, client identity, and client capabilities in_meta(io.modelcontextprotocol/protocolVersion,io.modelcontextprotocol/clientInfo,io.modelcontextprotocol/clientCapabilities). Version mismatches returnUnsupportedProtocolVersionError(SEP-2575). -
Add
server/discover: servers MUST implement this RPC to advertise their supported protocol versions, capabilities, and identity. Clients MAY call it before any other request for up-front version selection, or use it as a backward-compatibility probe on STDIO (SEP-2575). -
Replace the HTTP GET endpoint and
resources/subscribe/resources/unsubscribewithsubscriptions/listen: a single long-lived POST-response stream for all server-to-client notifications. Clients opt in to specific types (toolsListChanged,promptsListChanged,resourcesListChanged,resourceSubscriptions); the server acknowledges and tags notifications withio.modelcontextprotocol/subscriptionId(SEP-2575). -
Remove
ping,logging/setLevel, andnotifications/roots/list_changed. Log level is now set per-request viaio.modelcontextprotocol/logLevelin_meta; servers MUST NOT emitnotifications/messagefor requests that did not include this field (SEP-2575).
Minor changes
- Add
extensionsfield toClientCapabilitiesandServerCapabilitiesto support optional extensions beyond the core protocol. - Document OpenTelemetry trace context propagation conventions for
_metakeys (traceparent,tracestate,baggage) (SEP-414). - Servers SHOULD return tools from
tools/listin a deterministic order to enable client-side caching and improve LLM prompt cache hit rates. - Require standard MCP request headers (
Mcp-Method,Mcp-Name) on Streamable HTTP POST requests, and add support for custom headers from tool parameters viax-mcp-header(SEP-2243).
Other schema changes
N/AGovernance and process updates
N/AProcess changes
- Formalize PR-based SEP workflow with markdown files in
seps/directory, PR-derived numbering, sponsor responsibilities, and status management via PR labels (SEP-1850).