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 componentSchemaIssues & PRs related to the Schema componentIssues & PRs related to the Schema componentServerIssues & PRs related to the Server componentIssues & PRs related to the Server componentenhancementRequest 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-2133 for the MCP Spec 2026-07-28 release.
Tracked by umbrella #335. Prerequisite for SEP-2663 (Tasks) and SEP-1865 (MCP Apps).
Spec summary
Establishes a formal extension process with reverse-DNS identification (e.g.
io.modelcontextprotocol/oauth-client-credentials), independent versioning, and a Standards Track path. Extensions are advertised via anextensionsfield inClientCapabilities/ServerCapabilitiesduring initialization. Extensions can declare their own JSON-RPC methods and notifications.
PHP SDK changes
- Schema: Add an
extensionsmap toClientCapabilitiesandServerCapabilitiesinsrc/Schema/(each entry keyed by reverse-DNS extension ID). - Capability negotiation: Update initialize request/response handlers in
src/Server/Handler/andsrc/Client/Handler/to round-trip theextensionsmap and store negotiated set on the session/request. - Builder API:
Server::builder()->addExtension(ExtensionInterface $ext)and matching method onClient::builder(). IntroduceExtensionRegistryalongsideRegistryso handlers can query "is extension X negotiated for this request?". - Method routing:
Protocol::processInput()dispatches a fixed method set today. Make the request/notification handler map extensible so extensions can register their own method handlers. - Per-request capabilities:
RequestContextneeds typed accessor for per-request extension data (SEP-2663 uses per-request capability flags).
Related
- Umbrella [2026-07-28] Extensions framework + Tasks + MCP Apps #335
- Blocks SEP-2663 (Tasks) and SEP-1865 (MCP Apps) sub-issues
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 componentenhancementRequest 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 #443, #454.
ExtensionInterfacenow carriesgetMessages()/getRequestHandlers()directly, plusExtensionIdentifierfor reverse-DNS naming and modern-lifecycle dispatch.