Repository navigation
[Server][Transport] SEP-2322: Multi Round-Trip Requests on Streamable HTTP #342
Copy link
Copy link
Closed
Labels
2026-07-28All issues and PRs related to the spec release 2026-07-28All issues and PRs related to the spec release 2026-07-28ClientIssues & PRs related to the Client componentIssues & PRs related to the Client componentSchemaIssues & PRs related to the Schema componentIssues & PRs related to the Schema componentServerIssues & PRs related to the Server componentIssues & PRs related to the Server componentbreaking changeBreaking the Backwards Compatibility PromiseBreaking the Backwards Compatibility PromiseenhancementRequest for a new feature that's not currently supportedRequest for a new feature that's not currently supportedimproves spec complianceImproves consistency with other SDKs such as TyepScriptImproves consistency with other SDKs such as TyepScriptneeds designValid issue but needs maintainer alignment on design or approachValid issue but needs maintainer alignment on design or approach
Description
Implements SEP-2322 for the MCP Spec 2026-07-28 release.
Tracked by umbrella #334.
Spec summary
Introduces a transport mechanism for multi round-trip exchanges within a single logical request (e.g. server → client → server → client → ...). Replaces session-scoped server-initiated requests with a per-request "conversation". Schema additions correlate sub-requests/responses to a parent request.
PHP SDK changes
src/Server/Transport/StreamableHttpTransport.php— POST handler must support multi-turn streams (keep connection open for nested round trips within a single logical request), separate frommessages/listen.src/Server/Protocol.php— Fiber suspension currently relies on session-stored__pending_responses. Refactor to associate pending responses with the request rather than the session.src/JsonRpc/MessageFactory.php— new envelope fields for parent-request correlation.src/Client/Transport/HttpTransport.phpandsrc/Client/Protocol.php— handle inline server requests on the response stream.- New schemas in
src/Schema/to describe MRTR envelope.
Breaking change. Companion to SEP-2567 (sessionless) — they must land together.
Related
- SEP-2575 / SEP-2567 (umbrella [2026-07-28] Stateless Core overhaul #334)
- Conformance scenarios:
modelcontextprotocol/conformance#188
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
2026-07-28All issues and PRs related to the spec release 2026-07-28All issues and PRs related to the spec release 2026-07-28ClientIssues & PRs related to the Client componentIssues & PRs related to the Client componentSchemaIssues & PRs related to the Schema componentIssues & PRs related to the Schema componentServerIssues & PRs related to the Server componentIssues & PRs related to the Server componentbreaking changeBreaking the Backwards Compatibility PromiseBreaking the Backwards Compatibility PromiseenhancementRequest for a new feature that's not currently supportedRequest for a new feature that's not currently supportedimproves spec complianceImproves consistency with other SDKs such as TyepScriptImproves consistency with other SDKs such as TyepScriptneeds designValid issue but needs maintainer alignment on design or approachValid issue but needs maintainer alignment on design or approach
Type
Projects
- StatusShow more project fieldsDone
Activity
chr-hertel commentedon Aug 19, 2026
Implemented via #446, #449.
InputRequiredResult+RequestStateCodecprovide the multi round-trip pattern: a handler names what it still needs, the client resends with the answer.