Repository navigation
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 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 TyepScript
Description
Implements SEP-2260 for the MCP Spec 2026-07-28 release.
Tracked by umbrella #334.
Spec summary
Servers can only send requests to clients (sampling, elicitation, roots/list) as a child of an in-flight client request. Unsolicited server-to-client requests are removed in preparation for stateless transports.
PHP SDK changes
src/Server/Protocol.php— Fiber-based server-initiated requests must validate they are running inside a client request's Fiber context. Block/error on unsolicited dispatch.src/Schema/Request/CreateSamplingMessageRequest.php,ElicitRequest.php,ListRootsRequest.php— require/encode the originating client request ID in_meta(verify final spec field name).src/Client/Protocol.php— client must reject server-initiated requests with no associated client request ID.- Update Fiber suspension docs in
CLAUDE.mdanddocs/server-client-communication.md.
Notifications remain unaffected (this is requests-only).
Breaking change. Touches public Fiber suspension behavior used by tool authors.
Related
- SEP-2575 / SEP-2567 / SEP-2322 (umbrella [2026-07-28] Stateless Core overhaul #334)
- SEP-2663 Tasks (umbrella [2026-07-28] Extensions framework + Tasks + MCP Apps #335) — task progress relies on this scoping
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 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 TyepScript
Type
Projects
- StatusShow more project fieldsDone
Activity
chr-hertel commentedon Aug 19, 2026
Closed by the same mechanism as #342 (#446, #449):
readNotification()rejects any unsolicited server-initiated request outright, so there's no unscoped server→client request path left to guard against.