You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Implement SEP-2133: Extensions framework for MCP #2188
R-2133-2: id grammar {prefix}/{name} per _meta key rules; prefix mandatory (reverse-DNS SHOULD). No validator in main today.
R-2133-3: SDK registrar so a server registers a handler for ext-x/foo and the dispatcher routes the method.
R-2133-8: disabled-by-default; explicit opt-in (constructed without ext opt-in → discover carries no capabilities.extensions).
R-2133-10: servers SHOULD gate ext-specific output on the client declaring the matching capability.
R-2133-13: unsupported extension → revert to core or reject with error.
R-2133-11 / 12 / 7 / 9 (guidance): validate ext-supplied data as untrusted; doc the supported list; breaking change → new identifier; back-compat within identifier.
Activity
mattzcarey commentedon May 29, 2026
Status — SEP-2133 (Extensions Framework)
Track: B — independent, starts now, lives in the same transport/core files as 2549/2243.
Spec: seps/2133-extensions.md · merged into spec
What's done — partial
capabilities.extensionsfield onClientCapabilities/ServerCapabilities(by @chughtapan). Live inmain:packages/core/src/types/spec.types.ts—extensions?: { [key: string]: JSONObject }on both capability typespackages/core/src/types/schemas.ts— Zodz.record(z.string(), JSONObjectSchema).optional()What's still needed
{prefix}/{name}per_metakey rules; prefix mandatory (reverse-DNS SHOULD). No validator in main today.ext-x/fooand the dispatcher routes the method.discovercarries nocapabilities.extensions).Closed exploration
extension(id, settings, {peerSchema?})registrar returningExtensionHandle, wraps custom-method API with peer-capability gating. Lots of design discussion (11 comments).BaseContext.ext/RequestEnv.extplugin slot (the generic mechanism plugins liketasksPluginpopulate).Open PR stack
BaseContext.ext) is part of the v2-stateless stack ([SEP-2663] refactor!: remove 2025-11 experimental tasks #2128–[SEP-2575][SEP-2567] 2026-06 stateless support: stdio + InMemory transports #2132). The Tasks Extension Implement SEP-2663: Tasks Extension #2189 will be the first real consumer.Outstanding work shape
BaseContext.ext).Coordination
ext.*slot also gets used bySessionCompatandtasksPlugin, so the shape needs to land before Implement SEP-2663: Tasks Extension #2189 can.