Protocol timelineChecked for spec 2026-07-28

The History of MCP: From Early Commits to an Open Standard

A primary-source timeline of MCP, from its pre-launch repository and November 2024 announcement through adoption, open governance, and the stateless 2026 core.

On this page

Version verifiedChecked August 25, 2026 against MCP 2026-07-28. Review method.

The short version

  • MCP was announced on November 25, 2024, but its public repository, TypeScript SDK, and Python SDK all have September 24 commits.
  • The protocol expanded rapidly in 2025: remote transport, OAuth, structured results, elicitation, registry work, and support from major platform vendors arrived in successive waves.
  • Governance moved from an Anthropic-led launch toward a formal SEP process and stewardship within the Agentic AI Foundation.
  • The July 2026 specification began a modern, stateless era rather than merely adding another feature to the original session-based design.

The usual one-line history of the Model Context Protocol is true but incomplete: Anthropic announced MCP on November 25, 2024. The primary sources show a more useful story. Public specification and SDK work appeared two months earlier; the launch design then changed repeatedly as remote servers, authorization, extensions, and foundation stewardship became central.

This timeline uses repository artifacts for provenance, dated specifications for protocol behavior, and vendor announcements only for claims about those vendors. That prevents three common mistakes: treating an announcement date as the start of development, projecting today’s features back onto launch-era MCP, and confusing ecosystem promotion with protocol evidence. The MCP vs function calling comparison applies that chronology to claims about discovery, sessions, batching, and provider tool search.

Before MCP: the pieces already existed

MCP did not invent structured model actions, remote APIs, or JSON messages. JSON-RPC 2.0 had defined the request, response, notification, and error envelope since 2010 S001. Microsoft’s Language Server Protocol later demonstrated how one client-server interface could let many editors interoperate with many language tools S002.

AI products were also developing their own integration models. OpenAI introduced ChatGPT plugins in March 2023, pairing a manifest and API description with authentication S009, then documented function calling in June 2023 S010. These are historical context, not evidence that one system directly descended from another. Function calling describes how a model asks an application to invoke a function; MCP would standardize communication between an AI host and independent context servers.

The LSP connection is stronger because MCP’s earliest public material states it. The initial repository import described MCP as taking inspiration from LSP and already used recognizable host, client, server, resource, prompt, tool, sampling, stdio, and HTTP-with-SSE concepts S013. The aim was interoperability from the beginning, even though the mechanics would later change.

The public work before launch

The specification repository was created on September 24, 2024 S012. Its initial public commit landed the same day S013. Initial imports of the official TypeScript and Python SDK repositories are also dated September 24 S014 S015.

The sequence that followed looks like protocol preparation rather than a finished standard appearing all at once:

The public work before launch comparison table
DatePublic artifactWhat it establishes
Sep. 24, 2024Specification and SDK importsThe architecture and two implementation tracks were public
Oct. 3, 2024Resource capability commitCapability declarations were still being refined S016
Oct. 16, 2024Guide documentation mergeUser-facing documentation was being assembled S017
Nov. 5, 2024First dated specificationA dated launch-era protocol snapshot existed S024
Nov. 19, 2024Reference-server repositoryExample implementations were public before the announcement S018
Nov. 25, 2024Anthropic announcementMCP was formally introduced to the wider public S021

The initial reference-server tree included examples for Git, Google Drive, Postgres, Puppeteer, and an “everything” test server S019 S020. That list is evidence of launch scope, not a recommendation to install those historical implementations today.

This chronology also explains an apparent date mismatch: the first official specification is versioned 2024-11-05, while the public launch announcement came twenty days later. A specification version and a marketing announcement answer different historical questions.

Launch day and the original design

Anthropic’s November 25 announcement presented MCP as an open standard for connecting AI assistants to systems where data lives. It announced TypeScript and Python SDKs, local server support in Claude Desktop, and example integrations S021. On the same day, Zed described its MCP integration and explicitly compared the protocol’s potential to LSP S022. Adoption therefore began outside Anthropic at launch, even though the initial center of gravity was clearly Anthropic’s ecosystem.

The project’s current repository README credits David Soria Parra and Justin Spahr-Summers as MCP’s creators S023. That live credit is a better source for creator attribution than reconstructing authorship from company announcements.

Launch-era MCP was already broader than tools. It defined resources, prompt templates, roots, sampling, logging, completion, and capability negotiation as well as tool listing and invocation S024. The host managed one client per server. A client began with an initialize request, negotiated a dated protocol version and capabilities, and completed an initialization handshake. Local servers used stdio; remote communication used HTTP plus Server-Sent Events.

The November 2024 architecture was session-oriented. It is historically important and remains in deployed software, but its handshake and server-initiated request model do not describe the modern 2026 core.

The 2025 expansion: remote MCP, security, and product support

The 2025-03-26 specification was MCP’s first large redesign S035. Its key changes introduced a protocol authorization framework, Streamable HTTP, tool behavior annotations, audio content, and other refinements S036. Streamable HTTP replaced the split HTTP+SSE transport while retaining optional streaming and stateful sessions.

Infrastructure and product support expanded around the same period. Cloudflare published a remote-server and OAuth deployment path on March 25 S093. VS Code announced broadly available agent mode with MCP support in April S087. In May, OpenAI added remote MCP server support to its Responses API S089. These sources establish official product support; they do not, by themselves, measure user adoption or prove that every implementation behaved identically.

The 2025-06-18 revision hardened and broadened the protocol again S042. It removed JSON-RPC batching, added structured tool output and output schemas, formalized servers as OAuth resource servers, adopted Protected Resource Metadata and Resource Indicators, and introduced elicitation and resource links S043. Security was moving from deployment advice into the normative design.

The 2025-11-25 anniversary release added OIDC discovery, icons, incremental authorization scopes, URL-mode elicitation, client metadata documents, tools in sampling, and experimental Tasks S048 S049. In hindsight, this was the most capable version of the original session-based era. Several of its additions survived into 2026, but Tasks moved to an extension and the session model did not.

From project governance to foundation stewardship

Technical adoption was only one part of MCP’s maturation. In July 2025 the project published a formal governance model centered on Specification Enhancement Proposals (SEPs), lead maintainers, and core maintainers S069. The official registry preview followed in September, creating a shared metadata index tied to package registries and namespace ownership S066.

On December 9, 2025, MCP joined the Agentic AI Foundation (AAIF). The project said the move preserved technical autonomy while placing stewardship in a neutral foundation setting S070. Current governance documentation describes an LF project structure S071. As of this article’s August 25, 2026 review, the project is also undergoing a licensing transition: new code and specification contributions use Apache 2.0, older contributions without relicensing consent remain MIT, and non-specification documentation uses CC BY 4.0 S072.

Governance became more operational in 2026. The contributor ladder documented a path from participation to maintainer responsibility S074, while the SDK tiering system tied “official” status to conformance, maintenance, and feature expectations S073. These changes matter to adopters because a standard is not only a schema. It also needs a process for compatibility decisions, deprecations, registries, and maintained implementations.

The 2026 reset: extensions and a stateless core

The first major 2026 signal was MCP Apps, announced in January as an official extension for sandboxed, server-provided user interfaces S059. Extensions allowed useful features to evolve without continuously enlarging the core protocol.

The release-candidate process published in May then proposed a more fundamental reset: remove protocol sessions, move Tasks out of the core, and replace unsolicited server-to-client requests with a multi-round-trip result pattern S053. Those ideas shipped in the 2026-07-28 specification S054.

The July release removed the initialization handshake and Mcp-Session-Id; made protocol version, identity, and capabilities per-request metadata; added explicit discovery and compatibility behavior; replaced older subscription mechanics; moved Tasks to an extension; and introduced InputRequiredResult for workflows needing another round trip S055. It was a change of protocol era, not merely a longer feature list.

For 2026-07-28 and later, every request is self-contained. “Modern,” “legacy,” and “dual-era” are now defined compatibility terms. See the current-spec migration guide for implementation details.

The August 22 roadmap describes the priorities after that release S064. A roadmap is directional evidence, not a list of shipped features; future articles should not present its proposals as part of the July specification.

What the timeline tells implementers

Three lessons stand out. First, MCP’s durable idea is the host-server interoperability boundary, not any one transport or handshake. Tools, resources, and prompts were present before launch, while the mechanics around them continued to change.

The host, client, and server architecture timeline shows exactly which role boundaries stayed stable and which lifecycle mechanics changed across five released revisions.

Second, a date-free statement about “the MCP protocol” can be misleading. Session IDs, initialization, server-initiated sampling, Tasks, and subscriptions all mean different things across revisions. Implementations and documentation should name the version they support, and readers should treat undated examples as unverified.

Third, official support, registry inclusion, and trust are separate claims. A vendor post can prove that a product announced MCP support. It cannot prove broad usage. A registry entry can establish discoverability. It cannot replace code review, permission review, or security testing.

The history is most useful when it improves present decisions: start with the practical MCP guide, identify whether an integration is modern or legacy, and use dated specifications—not remembered launch behavior—as the source of truth.

Evidence38 cited primary or authoritative sources
Last reviewedAugust 25, 2026
How we research