Skip to content

[Server][Client] SEP-2575: Stateless protocol (per-request version, server/discover, messages/listen) #340

@chr-hertel

Description

@chr-hertel

Implements SEP-2575 for the MCP Spec 2026-07-28 release.

Tracked by umbrella #334.

Spec summary

Removes the mandatory initialize/initialized handshake. Protocol version and client info travel in _meta on every request; servers can use server/discover to fetch capabilities. Adds messages/listen RPC replacing the GET-SSE channel.

PHP SDK changes

  • src/Server/Handler/Request/InitializeHandler.php, src/Schema/Request/InitializeRequest.php, src/Schema/Result/InitializeResult.php — keep working for old clients but make optional; gate on protocol version.
  • src/Server/Protocol.php — drop hard requirement that initialize precedes other calls; route server/discover and messages/listen.
  • Add src/Server/Handler/Request/DiscoverHandler.php and MessagesListenHandler.php; corresponding schemas under src/Schema/Request|Result/.
  • src/Server/Transport/Http/Middleware/ProtocolVersionMiddleware.php — extend to also read _meta.protocolVersion from JSON-RPC payloads and emit UnsupportedVersionError.
  • src/Server/Transport/StreamableHttpTransport.php — route streaming through messages/listen POST; legacy GET-SSE deprecated.
  • src/Client/Protocol.php and src/Client/Builder.php — skip handshake when negotiating new version; emit per-request capabilities/version; handle UnsupportedVersionError retry.

Breaking change. Coordinate with deprecation policy (SEP-2596, umbrella #339).

Related SEPs

Metadata

Metadata

Assignees

No one assigned

    Labels

    2026-07-28All issues and PRs related to the spec release 2026-07-28ClientIssues & PRs related to the Client componentP0Broken core functionality, security issues, critical missing featureSchemaIssues & PRs related to the Schema componentServerIssues & PRs related to the Server componentbreaking changeBreaking the Backwards Compatibility PromiseenhancementRequest for a new feature that's not currently supportedimproves spec complianceImproves consistency with other SDKs such as TyepScriptneeds designValid issue but needs maintainer alignment on design or approach

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions