Description
SEP-2640, the MCP Skills Extension, is now Final. In the released version, a server that declares the extension must implement two new methods, skills/list and skills/get (stable spec), and the specification targets protocol revision 2026-07-28 or later (same file). The final text does not define a skill://index.json resource.
MCPSkillsSource still discovers skills by reading skill://index.json (here), and the .NET AgentMcpSkillsSource does the same (here). That follows the draft that ADR 0029 was written against, and the ADR names the release of the spec as the point to revisit its design (ADR 0029). The spec has now been released, so I would like to propose the update and implement it myself.
In outline, discovery would call skills/list and follow its pagination, and direct references would resolve through skills/get. Each skill would take the entry shape the specification defines: a URI, the frontmatter, and the list of files with a digest and a size for each. File reads would be verified against those digests and limited to the files the entry lists, as the specification requires (SEP). I would keep the details open until we agree on the questions below.
Two pieces of work come first, and I would build on both rather than duplicate them. The released spec needs protocol revision 2026-07-28, which the 1.x line of the MCP Python SDK does not support (v1.30.0) and the 2.x line does (v2.2.0), while agent-framework-core pins mcp>=1.24.0,<2 (pyproject). Lifting that pin is tracked in #7446. The Python SDK's own support for the extension is in review in modelcontextprotocol/python-sdk#3485.
I have three questions before starting. First, should skill://index.json stay as a deprecated fallback for a transition period? The Foundry Toolbox integration reads skills through MCPSkillsSource today (here), so removing it outright would break that path. Second, would you prefer Python first, or both languages in one change, as in #8290? Third, may I start against the SDK pull request while #7446 lands, or would you rather I wait for both to merge?
Code Sample
No response
Language/SDK
Python
Description
SEP-2640, the MCP Skills Extension, is now Final. In the released version, a server that declares the extension must implement two new methods,
skills/listandskills/get(stable spec), and the specification targets protocol revision 2026-07-28 or later (same file). The final text does not define askill://index.jsonresource.MCPSkillsSourcestill discovers skills by readingskill://index.json(here), and the .NETAgentMcpSkillsSourcedoes the same (here). That follows the draft that ADR 0029 was written against, and the ADR names the release of the spec as the point to revisit its design (ADR 0029). The spec has now been released, so I would like to propose the update and implement it myself.In outline, discovery would call
skills/listand follow its pagination, and direct references would resolve throughskills/get. Each skill would take the entry shape the specification defines: a URI, the frontmatter, and the list of files with a digest and a size for each. File reads would be verified against those digests and limited to the files the entry lists, as the specification requires (SEP). I would keep the details open until we agree on the questions below.Two pieces of work come first, and I would build on both rather than duplicate them. The released spec needs protocol revision 2026-07-28, which the 1.x line of the MCP Python SDK does not support (v1.30.0) and the 2.x line does (v2.2.0), while
agent-framework-corepinsmcp>=1.24.0,<2(pyproject). Lifting that pin is tracked in #7446. The Python SDK's own support for the extension is in review in modelcontextprotocol/python-sdk#3485.I have three questions before starting. First, should
skill://index.jsonstay as a deprecated fallback for a transition period? The Foundry Toolbox integration reads skills throughMCPSkillsSourcetoday (here), so removing it outright would break that path. Second, would you prefer Python first, or both languages in one change, as in #8290? Third, may I start against the SDK pull request while #7446 lands, or would you rather I wait for both to merge?Code Sample
No response
Language/SDK
Python