{{ message }}
Repository navigation
Add Skills extension (SEP-2640) to the modern server - #1214
Open
tarun-agarwal1044 wants to merge 3 commits into
Open
tarun-agarwal1044 wants to merge 3 commits into
tarun-agarwal1044 wants to merge 3 commits into
Conversation
Adds skills/list and skills/get to the 2026-07-28 server as a SkillsFeature that advertises the io.modelcontextprotocol/skills extension. Skill files are served by the existing ResourcesFeature through resources/read. - SkillsSchema: wire types, including the array-or-"dynamic" resources union, SHA-256 digest helpers, and validation of the SEP-2640 entry rules - SkillsFeature with async and sync skill repositories and cache defaults; unknown or non-SKILL.md URIs are invalid params, nonconforming entries an internal error - A sample skill in the modern conformance server; the sep-2640-skills-enumeration and -manifest scenarios pass resources/directory/read (directoryRead) is not included.
- Skill and SkillResource validate the SEP-2640 rules when constructed or deserialized, and ListSkillsResult rejects a skill listed twice - Over-limit skills are accepted without a warning, as the limits are SHOULD NOTs - Optional resources/directory/read: a repository that supportsDirectoryRead() advertises directoryRead and serves the method; trailing-slash or unknown directories are invalid params, a non-direct child an internal error - The conformance server serves directory reads; sep-2640-skills-directory passes
tarun-agarwal1044
marked this pull request as ready for review
October 21, 2026 12:59
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Adds server-side support for the Skills extension (SEP-2640,
io.modelcontextprotocol/skills) to the modern (2026-07-28) server, modelled on the Python SDK implementation (python-sdk#3485).SkillsSchema: wire types (Skill,SkillResource,ListSkillsResult,GetSkillResult,ReadDirectoryRequest/Result). Entries validate SEP-2640 rules on construction/deserialization; listing the same skill twice is rejected.McpAsyncSkillRepository/McpSyncSkillRepository+SkillsFeature: servesskills/list,skills/get, and optionallyresources/directory/read(opt-in viasupportsDirectoryRead(), which advertisesdirectoryRead: true).Conformance
sep-2640-skills-enumeration32/32,-manifest6/6,-directory7/7--requirements 2026-07-28suite unchanged (155 passed / 35 pre-existing failures)Notes / differences from Python
Skilldeserialization is strict (deviates from CONTRIBUTING lenient-parsing guidance) because SEP-2640 says hosts must not load invalid entries.skills/getcache TTL comes from feature defaults.Open questions
Part of #1140 (server side)