{
  "title": "MCP Architecture Evolution by Released Revision",
  "schemaVersion": "1.0",
  "researchFreeze": "2026-08-26",
  "protocolRevision": "2026-07-28",
  "count": 5,
  "records": [
    {
      "version": "2024-11-05",
      "era": "Launch",
      "host": "Creates clients, controls permissions, context and LLM integration",
      "client": "One connector to one server; stateful session",
      "server": "Exposes tools, resources, prompts; can request sampling",
      "versionHandling": "initialize negotiation",
      "lifecycle": "initialize → response → initialized",
      "transport": "stdio; HTTP+SSE",
      "serverToClientInteraction": "Direct JSON-RPC requests such as sampling",
      "protocolSession": "Required concept",
      "keyImplication": "Role separation existed from launch, but communication depended on initialized session state",
      "packageSourceIds": [
        "S017",
        "S018",
        "S019"
      ],
      "sourceIds": [
        "S249",
        "S026",
        "S250"
      ]
    },
    {
      "version": "2025-03-26",
      "era": "Remote expansion",
      "host": "Same orchestration role; greater remote auth responsibility",
      "client": "Stateful session; Streamable HTTP client added",
      "server": "Remote authenticated server becomes practical",
      "versionHandling": "initialize negotiation",
      "lifecycle": "initialize → initialized",
      "transport": "stdio; Streamable HTTP; legacy HTTP+SSE transition",
      "serverToClientInteraction": "Direct requests retained",
      "protocolSession": "Supported/commonly used",
      "keyImplication": "New transport changed deployment, not role boundaries",
      "packageSourceIds": [
        "S020",
        "S023"
      ],
      "sourceIds": [
        "S156",
        "S036"
      ]
    },
    {
      "version": "2025-06-18",
      "era": "Authorization hardening",
      "host": "Adds elicitation and richer result handling",
      "client": "Stateful session; protected-resource metadata and Resource Indicators",
      "server": "OAuth resource-server role clarified; structured output",
      "versionHandling": "initialize negotiation plus protocol header for HTTP",
      "lifecycle": "initialize → initialized",
      "transport": "stdio; Streamable HTTP",
      "serverToClientInteraction": "Direct sampling/roots/elicitation requests",
      "protocolSession": "Supported",
      "keyImplication": "Remote identity and server responsibility became more explicit",
      "packageSourceIds": [
        "S021",
        "S024"
      ],
      "sourceIds": [
        "S251",
        "S043"
      ]
    },
    {
      "version": "2025-11-25",
      "era": "Last legacy release",
      "host": "Coordinates expanded elicitation, sampling tool use and experimental Tasks",
      "client": "One stateful session to one server",
      "server": "Richer metadata, Tasks experiment, OIDC/CIMD authorization options",
      "versionHandling": "initialize negotiation",
      "lifecycle": "initialize → initialized",
      "transport": "stdio; Streamable HTTP; legacy transport interoperability",
      "serverToClientInteraction": "Direct client-feature requests",
      "protocolSession": "Supported",
      "keyImplication": "This is the last released architecture accurately described as handshake/session based",
      "packageSourceIds": [
        "S022",
        "S025"
      ],
      "sourceIds": [
        "S160",
        "S049"
      ]
    },
    {
      "version": "2026-07-28",
      "era": "Stateless core",
      "host": "Still coordinates models, permissions, multiple clients and server isolation",
      "client": "One logical server relationship; every request carries version and client capabilities",
      "server": "Implements server/discover; handles independent requests; may use MRTR for input",
      "versionHandling": "Per-request metadata; optional preflight discovery",
      "lifecycle": "No initialize or initialized handshake",
      "transport": "stdio; sessionless Streamable HTTP; request-scoped SSE where needed",
      "serverToClientInteraction": "MRTR InputRequiredResult and explicit subscriptions instead of ordinary server-initiated requests",
      "protocolSession": "Removed from core",
      "keyImplication": "Logical roles persist while network/session topology becomes horizontally scalable",
      "packageSourceIds": [
        "S001",
        "S002",
        "S003",
        "S004",
        "S005"
      ],
      "sourceIds": [
        "S121",
        "S055",
        "S056",
        "S127",
        "S057"
      ]
    }
  ]
}