Model Context Protocol Specification Version Timeline - Version-by-Version Changes and Adoption Milestones

First Published:
Last Updated:

The Model Context Protocol (MCP) is an open standard, introduced by Anthropic in late 2024, that lets an AI application connect to external tools and data through a single, uniform interface, so that one integration works across any compliant client. This is a non-AWS installment in my history-and-timeline series, and unlike my cross-protocol timeline of tool use and agent protocols, it narrows the lens to a single subject: the MCP specification itself, and how it has changed from one revision to the next.

The reason for a dedicated page is that implementers keep asking two very practical questions - "which specification version does my server or client actually target?" and "what changed between this version and the last?" - and the primary facts needed to answer them are spread across separate changelog pages, blog posts, and the specification repository. MCP also uses an unusual, date-based versioning scheme (the version identifier is a date such as 2025-06-18), which is easy to confuse with the day a release was announced. This article organizes the specification's evolution chronologically, with a primary source for every row, and treats the specification revisions as the protagonists: each date-based revision is a row that summarizes its own headline changes, while supporting rows (the original announcement, SDK and platform adoptions, the registry, and governance milestones) are included only when there is an official announcement to cite.

The scope is deliberately narrow. This article covers the specification versions and their differences, the version negotiation model, and the current shape of the specification. It is not an implementation tutorial, a security deep-dive, or a pricing guide - those are covered by my dedicated MCP articles, linked below. Where my Tool Use and Agent Protocol History and Timeline tells the cross-protocol story (function calling, then MCP, then A2A), this article stays inside MCP and follows its specification revisions in detail. A future per-version diff article is planned as a child of this page; here, each version's changes are summarized rather than exhaustively enumerated.

Companion articles on hidekazu-konishi.com:

Background and Method of Creating the MCP Specification Version Timeline

The "specification version" layer of MCP has evolved quickly - roughly one revision every few months since launch - and each revision changes concrete, testable things: which transport is normative, how authorization works, what a tool may return, and which messages exist at all. It is genuinely difficult to keep a mental map of "when was the Streamable HTTP transport introduced?", "which revision removed JSON-RPC batching?", or "what is deprecated as of the latest release candidate?". I wanted one page that answers those questions with a primary source for each fact.

A few terms are used throughout, and it is worth defining them precisely:
  • A specification revision is a published version of the MCP specification, identified by a date string in YYYY-MM-DD form. Per the official versioning page, the date indicates the last date on which backwards-incompatible changes were made - not the day the release was announced, and not a sequential release number. The protocol version is not incremented for backwards-compatible updates.
  • A revision may be marked Draft (in progress, not ready for use), Current (ready for use, may still receive backwards-compatible changes), or Final (a past, complete revision that will not change). Individual features may additionally be marked Deprecated under the feature lifecycle policy.
To organize this history, I have taken the following approaches.
  • Tracking the history of the MCP specification and organizing the transition of its revisions.
  • Summarizing the current overall shape of the specification: transports, primitives, authorization, and version negotiation.
The inclusion criteria are explicit. Specification revisions are the protagonists: each is a separate row that summarizes its own headline changes as stated in the official changelog. Supporting milestones - the original announcement, SDK releases, platform adoptions, the registry, and governance changes - are included only when an official source announces them, and they are clearly the supporting cast, not the main line. The version identifier and the announcement or publication date are kept distinct: where a version label differs from the day it was announced or published, the timeline says so. A version that has not yet been finalized is labeled as a release candidate rather than presented as shipped.

The source policy is primary-only. This timeline references the official specification pages and changelogs on modelcontextprotocol.io, the specification GitHub repository, the MCP blog, and each vendor's own announcement. Dates from secondary media are not used as the source of record. Where a primary source states only that something is a release candidate, the timeline reflects that status rather than treating it as final.

This timeline primarily references the following sources.
The content posted here is limited to the revisions and milestones considered essential for understanding how the MCP specification has changed.
In other words, please note that the items on this timeline are not all updates to MCP, but are representative milestones that I have picked out.

MCP Specification Version Historical Timeline (Updates from November 5, 2024)

Here is the chronological timeline, from the initial specification of November 5, 2024 through the release candidate for the next revision. Rows for specification revisions open with the date-based version identifier (for example, "version 2025-11-25"); the remaining rows are supporting adoption and ecosystem milestones. Each row links to its primary source.

* You can sort the table by clicking on the column name.
DateEvent
2024-11-05The initial MCP specification is published (version 2024-11-05). MCP uses date-based version identifiers, and 2024-11-05 is the first revision. It defines the client-server architecture, the JSON-RPC 2.0 message format, the core server primitives (tools, resources, and prompts), and the two initial transports: stdio for local servers and HTTP with Server-Sent Events (HTTP+SSE) for remote servers. Source: MCP specification 2024-11-05.
2024-11-25Anthropic announces and open-sources the Model Context Protocol. The public launch shipped the specification together with Python and TypeScript SDKs and reference servers for systems such as Google Drive, Slack, GitHub, Git, and Postgres. The specification revision is labeled 2024-11-05 - the last backwards-incompatible change date - so the version identifier precedes this public announcement date. Source: Introducing the Model Context Protocol.
2025-03-19Microsoft introduces MCP support in Copilot Studio. This lets makers connect agents to existing knowledge servers, APIs, and other MCP-enabled data sources - one of the first adoptions by a major platform. Source: Introducing MCP in Copilot Studio.
2025-03-26The MCP specification is revised (version 2025-03-26). This revision adds an OAuth 2.1-based authorization framework, replaces the HTTP+SSE transport with the more flexible Streamable HTTP transport (with session management via the Mcp-Session-Id header), and adds tool annotations, audio content, argument completions, and JSON-RPC batching. Source: MCP specification 2025-03-26 changelog.
2025-03-26OpenAI adopts MCP. Adoption starts with the Agents SDK, with ChatGPT desktop and the Responses API to follow - the first adoption of the standard by another frontier AI lab. Source: Model context protocol (MCP) - OpenAI Agents SDK.
2025-04-09Google commits its Gemini models and SDK to MCP. Google DeepMind's CEO announced the support, and native SDK support followed at Google I/O in May 2025. Source: Demis Hassabis on supporting MCP for Gemini.
2025-05-19Microsoft makes MCP a first-class standard across its platforms at Build 2025. The commitment spans GitHub, Copilot Studio, Dynamics 365, Azure AI Foundry, Semantic Kernel, and Windows 11 - and Microsoft and GitHub join the MCP steering committee. Source: Microsoft Build 2025: The age of AI agents and building the open agentic web.
2025-05-21OpenAI adds remote MCP server support to the Responses API and joins the MCP steering committee. This lets the Responses API call tools hosted on any remote MCP server. Source: New tools and features in the Responses API.
2025-06-18The MCP specification is revised (version 2025-06-18). This revision adds structured tool output, elicitation (servers requesting additional input from users during a call), and resource links in tool results; classifies MCP servers as OAuth Resource Servers and requires Resource Indicators (RFC 8707); removes JSON-RPC batching; adds a dedicated security best practices page; and requires the negotiated version to be sent in the MCP-Protocol-Version header on subsequent HTTP requests. Source: MCP specification 2025-06-18 changelog.
2025-07-16AWS announces Amazon Bedrock AgentCore in preview. AgentCore is a set of services for building and operating agents at scale with any framework, with support for MCP and A2A. Source: Amazon Bedrock AgentCore now available in preview.
2025-09-05The official PHP SDK for MCP is released. Developed in collaboration with the PHP Foundation and the Symfony team, it brings first-party PHP support to the official SDK lineup. Source: Announcing the official PHP SDK for MCP.
2025-09-08The official MCP Registry launches in preview. The Registry is an open catalog and API for publicly available MCP servers, designed as a federated "metaregistry" to improve discovery across the ecosystem. Source: Introducing the MCP Registry.
2025-10-13Amazon Bedrock AgentCore reaches general availability. AgentCore Gateway connects to existing MCP servers and turns APIs and Lambda functions into MCP-compatible tools behind a single secure endpoint. Source: Amazon Bedrock AgentCore is now generally available.
2025-11-25The MCP specification is revised (version 2025-11-25), the one-year anniversary release. This revision enhances authorization server discovery with OpenID Connect Discovery 1.0 and incremental scope consent via WWW-Authenticate; allows servers to expose icons as metadata for tools, resources, resource templates, and prompts; updates ElicitResult and EnumSchema to a standards-based approach with titled, untitled, single-select, and multi-select enums and URL-mode elicitation; adds tool calling to sampling; adds OAuth Client ID Metadata Documents as a recommended registration mechanism; adds experimental tasks for durable requests with polling and deferred results; and establishes JSON Schema 2020-12 as the default dialect. Source: MCP specification 2025-11-25 changelog.
2025-12-09Anthropic donates the Model Context Protocol to the newly established Agentic AI Foundation (AAIF) at the Linux Foundation. The foundation is co-founded by Anthropic, Block, and OpenAI; per the announcement, MCP's governance model remains unchanged. Source: Donating the Model Context Protocol and establishing the Agentic AI Foundation.
2026-01-26MCP Apps ships as the first official MCP extension. It brings server-rendered interactive UI capabilities to MCP clients ahead of the extensions framework being formalized in the next specification revision. Source: MCP Apps - Bringing UI Capabilities To MCP Clients.
2026-05-21The release candidate for the next MCP specification, version 2026-07-28, is published (final publication targeted for July 28, 2026). Described as the largest revision since launch, it makes the protocol core stateless - removing protocol-level sessions and the Mcp-Session-Id header, and removing the initialize/initialized handshake in favor of a per-request protocol version and a new server/discover RPC. It introduces Multi Round-Trip Requests (an InputRequiredResult that replaces server-initiated requests such as roots, sampling, and elicitation), moves Tasks out of the core protocol into an official extension, formalizes the extensions framework (reverse-DNS identifiers and independent versioning), folds in the already-shipped MCP Apps extension (live as the first official extension since 2026-01-26; server-rendered HTML UIs in a sandboxed iframe), hardens authorization toward OAuth 2.0 and OpenID Connect, and adopts a formal feature lifecycle and deprecation policy with a minimum twelve-month window. Under that policy, the Roots, Sampling, and Logging features are deprecated (not removed). As of this writing, the current finalized version remains 2025-11-25. Source: The 2026-07-28 MCP Specification Release Candidate; MCP draft changelog.
2026-06-29Beta SDKs implementing the 2026-07-28 release candidate are published. All four Tier 1 SDKs ship pre-release versions - Python v2 and TypeScript v2 (split into focused packages), with Go and C# betas alongside - so implementers can test the stateless protocol, server/discover, and Multi Round-Trip Requests against real workloads before the specification is finalized. Source: Beta SDKs for the 2026-07-28 MCP Spec Release Candidate Are Here.

There may be slight variations between an announcement date, a specification revision label, and a general-availability date. The dates above use the specification revision label for the specification rows, and the official announcement date for the supporting rows.

Current Overview of the MCP Specification

Having followed the chronology, this section summarizes the current shape of the specification: the published revisions at a glance, the transports and primitives that make up the protocol, how authorization works, and how a client and server negotiate a version. Unless noted otherwise, the descriptions reflect the current finalized version, 2025-11-25, with forward references to the 2026-07-28 release candidate where relevant.

MCP Specification Versions at a Glance

The specification has been revised on a roughly quarterly-to-biannual cadence. The table below consolidates the published revisions and the release candidate, with their status and headline changes.
VersionStatusHeadline changes
2024-11-05FinalInitial specification: client-server model, JSON-RPC 2.0 messaging, the tools, resources, and prompts primitives, and the stdio and HTTP+SSE transports.
2025-03-26FinalOAuth 2.1-based authorization, the Streamable HTTP transport (replacing HTTP+SSE), tool annotations, audio content, argument completions, and JSON-RPC batching.
2025-06-18FinalStructured tool output, elicitation, resource links, MCP servers classified as OAuth Resource Servers, removal of JSON-RPC batching, and a security best practices page.
2025-11-25CurrentOpenID Connect Discovery, icon metadata, standards-based elicitation enums, tool calling in sampling, OAuth Client ID Metadata Documents, experimental tasks, and JSON Schema 2020-12 as the default dialect.
2026-07-28Release Candidate (final targeted 2026-07-28)A stateless core, Multi Round-Trip Requests, MCP Apps, the Tasks extension, the extensions framework, authorization hardening, and a formal deprecation policy.
Model Context Protocol Specification Version Lineage - Revisions from 2024-11-05 to the 2026-07-28 Release Candidate and Their Main Change Areas
Model Context Protocol Specification Version Lineage - Revisions from 2024-11-05 to the 2026-07-28 Release Candidate and Their Main Change Areas

Transports

A transport carries JSON-RPC messages between an MCP client and server. Two transports are defined in the current specification:
  • stdio - the server runs as a local subprocess and exchanges messages over standard input and output. This is the simplest option for local tools.
  • Streamable HTTP - introduced in the 2025-03-26 revision, replacing the earlier HTTP+SSE transport. It uses a single MCP endpoint that supports POST and GET, with optional Server-Sent Events streaming for server-to-client messages. In the current model, sessions are tracked with the Mcp-Session-Id header.
The 2026-07-28 release candidate changes this layer significantly: it makes the transport stateless, removing protocol-level sessions and the Mcp-Session-Id header, so that the same request can be answered by any server instance behind ordinary HTTP infrastructure. The older HTTP+SSE transport, deprecated since 2025-03-26, is reclassified as Deprecated under the new lifecycle policy.

Primitives

MCP servers expose capabilities through a small set of primitives:
  • Tools - callable functions the model can invoke, described with a name, description, and JSON Schema for input. Since 2025-06-18, tools can also declare structured output and return resource links.
  • Resources - readable context, such as files or records, identified by URI.
  • Prompts - reusable prompt templates the server offers to the client.
Clients can also offer capabilities back to servers, including sampling (letting a server ask the client's model to generate text), elicitation (letting a server request additional input from the user, added in 2025-06-18), and roots (letting a server learn which directories or URIs it may operate on). In the 2026-07-28 release candidate, the Roots, Sampling, and Logging features are deprecated - they remain in the specification during the deprecation window, but new implementations are advised to use tool parameters, direct provider APIs, and stderr or OpenTelemetry instead.

Authorization

Remote MCP servers need a way to authenticate and authorize callers. The authorization model has been refined in every revision since it was introduced:
  • 2025-03-26 added an OAuth 2.1-based authorization framework.
  • 2025-06-18 classified MCP servers as OAuth Resource Servers (so a client can discover the corresponding authorization server through protected resource metadata) and required clients to implement Resource Indicators (RFC 8707) to keep tokens from being reused against the wrong server.
  • 2025-11-25 enhanced authorization server discovery with OpenID Connect Discovery 1.0, added incremental scope consent via the WWW-Authenticate header, and recommended OAuth Client ID Metadata Documents as a registration mechanism.
The 2026-07-28 release candidate continues this direction, aligning more closely with OAuth 2.0 and OpenID Connect deployment practices and deprecating dynamic client registration in favor of Client ID Metadata Documents.

How MCP Version Negotiation Works

Because multiple revisions coexist in the wild, a client and server must agree on which version to use. In the current specification, this happens during the initialization handshake: the client sends an initialize request that states the protocol version it wants, and the server responds with the version it will use. Clients and servers may support several versions simultaneously but must settle on one for the session. Over Streamable HTTP, once a version is negotiated, subsequent requests carry it in the MCP-Protocol-Version header (required since 2025-06-18); if that header is absent and the version cannot be inferred, servers fall back to 2025-03-26 for backwards compatibility. If negotiation fails, the protocol provides error handling so the client can terminate the connection cleanly.

The 2026-07-28 release candidate reworks this mechanism to match its stateless core: it removes the initialize handshake and instead carries the protocol version and client capabilities in each request's metadata, and it adds a server/discover RPC that a client can call up front to learn the versions and capabilities a server supports. New clients that speak 2026-07-28 fall back to the initialize handshake when they reach an older server. For the authoritative version list and status, see the MCP versioning page.

Frequently Asked Questions about MCP Specification Version History

What is the latest MCP specification version?

As of this writing, the current finalized version is 2025-11-25. The next revision, version 2026-07-28, exists as a release candidate that was published on 2026-05-21, with final publication targeted for July 28, 2026; until it is finalized, 2025-11-25 remains the version in use. The full sequence of published revisions is 2024-11-05, 2025-03-26, 2025-06-18, and 2025-11-25.

How does MCP specification versioning work?

MCP uses string-based version identifiers in the form YYYY-MM-DD, where the date indicates the last date on which backwards-incompatible changes were made - not a sequential release number. The version is not incremented for backwards-compatible updates. Revisions are marked Draft, Current, or Final, and individual features may be marked Deprecated under the feature lifecycle policy.

How does MCP version negotiation work?

In the current specification, a client and server negotiate a version during the initialization handshake: the client proposes a protocol version in its initialize request and the server responds with the version it will use. They may each support multiple versions but must agree on one for the session. Over Streamable HTTP, the negotiated version is then sent in the MCP-Protocol-Version header on later requests. The 2026-07-28 release candidate replaces the handshake with a per-request protocol version and a new server/discover RPC.

When was MCP first released?

The initial MCP specification revision is dated 2024-11-05, and Anthropic publicly announced and open-sourced the protocol on 2024-11-25. The version identifier (2024-11-05) reflects the last backwards-incompatible change date and therefore precedes the public announcement.

What changed in the 2025-06-18 revision?

The 2025-06-18 revision added structured tool output, elicitation (servers requesting additional input from users), and resource links in tool results; classified MCP servers as OAuth Resource Servers and required Resource Indicators (RFC 8707); removed JSON-RPC batching; added a dedicated security best practices page; and made the MCP-Protocol-Version header required on subsequent HTTP requests.

Summary

In this article, I built a version-by-version timeline of the Model Context Protocol specification and summarized the current shape of the protocol.

The chronology shows a standard that has matured on a regular cadence: an initial revision in November 2024 that established the client-server model and the tools, resources, and prompts primitives; a 2025-03-26 revision that introduced the Streamable HTTP transport and OAuth 2.1 authorization; a 2025-06-18 revision that added structured output, elicitation, and stronger authorization while removing JSON-RPC batching; a 2025-11-25 anniversary revision that refined authorization discovery and added experimental tasks and JSON Schema 2020-12; and a 2026-07-28 release candidate that, once finalized, makes the protocol core stateless and adds MCP Apps, a Tasks extension, and a formal deprecation policy. Throughout, MCP's date-based versioning marks the last backwards-incompatible change rather than a sequential number, and version negotiation lets old and new implementations interoperate.

By organizing these revisions in one place with a primary source for each, I hope this article serves as a reference that MCP implementers, and the AI search agents that assist them, can consult in a single fetch. It is intended as the hub for my other MCP articles - on the server ecosystem, implementation, testing and debugging, tool poisoning defense, and capability inspection - each of which goes deeper into a specific layer.

This timeline will be updated as the MCP specification continues to evolve.

In addition, there are related history-and-timeline articles on this site, so please have a look if you are interested.
Tool Use and Agent Protocol History and Timeline - Function Calling, MCP, and A2A
MCP Server Ecosystem Reference 2026
Agent Interoperability Architecture with A2A and MCP on AWS
AWS History and Timeline - Almost All AWS Services List, Announcements, General Availability(GA)

References:
Model Context Protocol: Versioning
MCP specification 2025-11-25 changelog
MCP specification 2025-06-18 changelog
MCP specification 2025-03-26 changelog
The 2026-07-28 MCP Specification Release Candidate
One Year of Model Context Protocol (2025-11-25 release)
Introducing the Model Context Protocol (Anthropic)
Model Context Protocol specification repository (GitHub)
Tool Use and Agent Protocol History and Timeline - Function Calling, MCP, and A2A
MCP Server Ecosystem Reference 2026
MCP Server Implementation Reference

References:
Tech Blog with curated related content

Written by Hidekazu Konishi