Skip to content

.NET: Python: [Feature]: Move MCPSkillsSource to the released SEP-2640 (skills/list and skills/get) #8772

Description

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

.NETUsage: [Issues, PRs], Target: .NetagentsUsage: [Issues, PRs], Target: Single agentfoundryUsage: [Issues, PRs], Target: all Foundry integrationsmcpUsage: [Issues, PRs], Target: MCPpythonUsage: [Issues, PRs], Target: PythonskillsUsage: [Issues, PRs], Target: skills related features

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions