Experimental exploration of skills discovery and distribution through MCP primitives. Maintained by the Skills Over MCP Working Group.
by modelcontextprotocolLast 12 weeks · 17 commits
5 of 6 standards met
Summary This repo explores skills discovery and distribution through MCP primitives, but there is no complete Node.js example showing how to serve Agent Skills over MCP. Given the ecosystem around the TypeScript SDK and GitHub Copilot agents, a Node example would be highly valuable. Proposal Add a minimal but complete Node.js example that: 1. Discovers skills from a local directory (e.g. ). 2. Parses (YAML frontmatter + body). 3. Exposes skills via MCP primitives: / for skills and their resources. / for skill activation. 4. Demonstrates how a client (e.g. Copilot / MCP app) can: list available skills, activate a skill, read its bundled resources. Implementation sketch Use for the MCP server. Create an directory with: / (MCP server). folder containing sample files and resources. Implement: directory enumeration (aligned with ADR), SKILL.md parsing with YAML frontmatter, mapping skills to MCP resources and tools. Why this helps Gives Node developers a concrete reference for Skills-over-MCP. Makes it easier to experiment with the proposals in this repo. Aligns with existing TypeScript SDK and MCP Apps documentation. I’m happy to implement this and open a PR if this direction looks good.
We are building an MCP server that will contain a massive amount of skills. Exposing them all in a skill://index.json is not practical and will leads to context bloat and poor skill selection. From our server end, we have a mechanism to surface relevant skills based on a query string / passed in context. Today, we can workaround and surface that mechanism through a "discover_skills" tool and returning a list of resource URIs. But relying on a tool being called to discover skills is unideal Could there be a more idiomatic way to do this in the Skills over MCP extension spec? Perhaps a ? Or a if we are going Skills are just Resources route This is similar to the "query" parameter proposed for tools in SEP-1821. https://github.com/modelcontextprotocol/modelcontextprotocol/issues/1821
Summary Adds with working definitions for Skills Over MCP terminology, and cross-references it from the README documents table. Fixes #51. This is a combined draft that takes the best of the three open glossary PRs and credits all three authors as co-authors: #103 (@kiku-jw) — the descriptive-not-normative framing and the Agent Skills alignment/divergence notes. #101 (@luohui1) — the thorough prose definitions, the term, and the References section. #93 (@EfeDurmaz16) — the distribution/ecosystem terms ( URI, skill metadata, server-skill pairing, multi-server composition, ephemeral availability, provenance). Contents Core terms — covers all 10 terms requested in #51 (skill, instruction, primitive, resource, convention, context, progressive disclosure, control model, first-class primitive, server author vs. skill author, discovery), each 1-3 sentences with Agent Skills alignment/divergence noted where relevant. Distribution and ecosystem terms — skill resource, URI, skill metadata, server-skill pairing, multi-server composition, ephemeral availability, provenance. References section linking the Agent Skills spec, MCP Resources/Tools specs, and related repo docs. Acceptance criteria (#51) [x] Glossary with at least 8 defined terms (19 terms) [x] Each definition is 1-3 sentences, not exhaustive [x] Notes alignment or divergence with Agent Skills spec where relevant [x] Cross-referenced from README documents table [ ] Reviewed by at least 2 facilitators for accuracy Relationship to existing PRs This supersedes #103, #101, and #93 by merging their content. If the WG prefers this combined version, those three can be closed in favor of this one; the original authors are credited via trailers on the commit. Verification 🦉 Generated with Claude Code
The briefing recipe fetched only conversation-level PR comments, so it missed inline review threads — including maintainer reviews where the substantive security/spec critique lands (this surfaced when a daily briefing dropped a maintainer's full security review of SEP-2640). Updates the "Active SEP threads" step to require all three methods — , , — flag unresolved maintainer threads by author, and slice the large-result file rather than skip it.
Summary A TypeScript SDK + reference client/server demonstrating SEP-2640 (Skills Extension), serving Agent Skills as resources over MCP. Tracks the current SEP text on the branch, including the latest decision-log ADRs (2026-06-02 / 06-05 / 06-09). No protocol dependency beyond and the one new extension method below. Note: this PR has evolved well past its original description. The latest commit () realigns the SDK to the current index schema and adds ; the summary below reflects the branch as it stands now. resource convention Multi-segment paths with organizational prefixes () Final-path-segment = frontmatter , and the no-nesting constraint — both enforced at discovery time Scheme-agnostic discovery: is SHOULD; index entries may use any scheme (, , …) (current SEP-2640 schema) The index is the WG's own schema (decoupled from the agentskills.io format) with type-less entries: — the skill's frontmatter copied verbatim as JSON (carries / and anything else authored) + — when served as individual files; is over the SKILL.md raw bytes — per packed form Every entry MUST have a , a non-empty , or both. No /version marker. This replaces the earlier discriminated schema. (new extension method) Enumerate the files under a skill directory without knowing every URI — an -style, metadata-only, paginated, non-recursive listing. Directories are identified by ; on a non-directory/unknown URI. Server: + , installed on the low-level . Client: , , . Gated by a new capability flag (default off). Digest: integrity + caching / — tamper/integrity check against the index digest (UTF-8 round-trip is byte-exact for , so a faithful read always matches). Caching pattern (the digest's headline purpose) documented: compare a stored index digest against the freshly-read one to skip refetching unchanged skills — no content hashing. Extension declaration via native SDK (v1.29+) to advertise the directory-read capability (paired with ) Subpath exports Removed since the original PR The index entry type and the parameterized-template serving feature (, ) — it only existed to back the dropped index type. The catch-all supporting-files template stays. field + validation and the constants. The well-known HTTP bridge (removed earlier in the branch). Breaking changes Yes — this is a clean rewrite of the index schema and removes the template surface. Package version bumped to (pre-1.0). Verification / test plan [x] — clean , 163 tests pass** (new ; rewritten / ) [x] Reference client + server run end-to-end over stdio — index discovery, enumeration + , archive fetch+unpack, digest verification (matches ✓), supporting-file flow [x] Examples type-check against the built SDK 🦉 Generated with Claude Code
Repository: modelcontextprotocol/experimental-ext-skills. Description: Experimental exploration of skills discovery and distribution through MCP primitives. Maintained by the Skills Over MCP Working Group. Stars: 159, Forks: 22. License: Apache-2.0. Open PRs: 9, open issues: 20. Last activity: 4d ago. Community health: 100%. Top contributors: olaservo, Copilot, pja-ant, erain, JAORMX, wachterjohannes, kaxil, sambhav.