Requesting support for SEP-2640 (Skills Extension, Extensions Track, Final), which serves Agent Skills over the existing Resources primitive.
Nothing in the SDK covers it today: no skills/* constants in lib/mcp/methods.rb, no helper module, and no match for skill anywhere under lib/ on main (1.6.0). ROADMAP.md names DPoP, workload identity federation, and the tasks extension as the unimplemented extensions — skills isn't listed.
What a server declaring the extension owes
skills/list and skills/get — both MUST
resources/directory/read — optional, gated behind directoryRead: true
- the SEP-2133
capabilities.extensions fragment io.modelcontextprotocol/skills, alongside a declared resources capability
- on 2026-07-28,
skills/list results carry the SEP-2549 ttlMs/cacheScope hints
Prior art in the other official SDKs
Notes
MCP::Apps looks like the shape this would take: a helper module for an Extensions-Track SEP, with Capabilities#support_extensions for negotiation and the resources primitive underneath.
Most of it can be assembled today from define_custom_method plus resources_read_handler, and a custom method's result does get resultType stamped on the modern path. The SEP-2549 hints don't follow: Server::CACHEABLE_RESULT_METHODS is frozen and consulted internally, so a hand-rolled skills/list has to merge ttlMs/cacheScope into its own result. Worth folding into whatever first-class support lands.
Requesting support for SEP-2640 (Skills Extension, Extensions Track, Final), which serves Agent Skills over the existing Resources primitive.
Nothing in the SDK covers it today: no
skills/*constants inlib/mcp/methods.rb, no helper module, and no match forskillanywhere underlib/onmain(1.6.0).ROADMAP.mdnames DPoP, workload identity federation, and the tasks extension as the unimplemented extensions — skills isn't listed.What a server declaring the extension owes
skills/listandskills/get— both MUSTresources/directory/read— optional, gated behinddirectoryRead: truecapabilities.extensionsfragmentio.modelcontextprotocol/skills, alongside a declaredresourcescapabilityskills/listresults carry the SEP-2549ttlMs/cacheScopehintsPrior art in the other official SDKs
Skillsextension python-sdk#3485Notes
MCP::Appslooks like the shape this would take: a helper module for an Extensions-Track SEP, withCapabilities#support_extensionsfor negotiation and the resources primitive underneath.Most of it can be assembled today from
define_custom_methodplusresources_read_handler, and a custom method's result does getresultTypestamped on the modern path. The SEP-2549 hints don't follow:Server::CACHEABLE_RESULT_METHODSis frozen and consulted internally, so a hand-rolledskills/listhas to mergettlMs/cacheScopeinto its own result. Worth folding into whatever first-class support lands.