Mirror of https://github.com/modelcontextprotocol/ext-skills — MCP Extension for Skills discovery and distribution through MCP primitives. Maintained by the Skills Over MCP Working Group.
  • MDX 96.1%
  • TypeScript 3.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ola Hungerford 64db7eaf72
Add threat model doc for skills extension (#108)
* docs: add threat model for skills over MCP (SEP-2640)

Add docs/threat-model.md covering the delivery and host-handling layer
for skills served over MCP. Recommends the install (materialize to a
host-private, immutable store) path as the baseline over load-on-demand,
enumerates non-archive threats (T1-T7) with a full per-fixture mapping to
the dangerous-skills-mcp corpus and to SEP-2640 clauses, folds in the
mcpkit reference-implementation findings, and keeps the archive threat
model as an appendix (archives are slated for removal from this version).

Index the new doc in the README repository-contents table.

🦉 Generated with Claude Code

* docs: refine threat model by removing out-of-scope content and clarifying core boundaries

* docs: reconcile threat model with current SEP-2640 revision

Update the threat model to track the canonical sep/skills-extension
revision instead of the stale local working draft, and address review
feedback on PR #108.

- Retire skill://index.json terminology in favor of skills/list +
  skills/get and the per-file `resources` digest set.
- Mark the B1 supporting-file-digest gap closed: `resources` now
  enumerates every file with a digest and unlisted reads are
  verification failures. Flip adv-supporting-file-digest-swap status.
- Reframe archives as a deferred feature (SEP Appendix: Deferred
  Features); mark archive fixtures Deferred and `refunds` Resolved
  (skills are keyed by uri, not name).
- Add T8 cross-origin name-collision impersonation, T9 nested-skill
  consent, and a directory-walk subtree-escape row under T5, each
  flagged as not yet exercised by the corpus.
- Add a Scope note on skill-catalog metadata confidentiality.
- Add the missing "Residual gaps and future directions" section
  (previously referenced but absent), covering the unsigned-digest
  trust-anchor gap and the third-party attestation direction.

🦉 Generated with [Claude Code](https://claude.com/claude-code)

* docs: add discovery-surface grounding and enumeration-exhaustion threat

- Add a "Protocol surface" paragraph to the system model naming
  skills/list, skills/get, and resources/directory/read and what each
  exposes, so threats can reference them against a stated baseline.
- Add enumeration/pagination exhaustion to T6: a server returning an
  unbounded skills/list or resources/directory/read stream via an
  endless nextCursor exhausts the host at discovery time, before any
  file is fetched. SEP bounds neither page nor entry count; flagged as
  no corpus fixture yet. Reflected in the fixture map and residual gaps.

🦉 Generated with [Claude Code](https://claude.com/claude-code)

* docs: copy-edit threat model to reduce em-dash and antithesis density

Style-only pass over prose I wrote. No change to any technical claim,
normative keyword, fixture reference, or table. Thins the em-dash habit
(convert appositive/dramatic dashes to periods, commas, or parens) and
de-duplicates the "X, not Y" closer, keeping only the load-bearing
contrasts. Definition-list and reference-list dashes left as-is.

🦉 Generated with [Claude Code](https://claude.com/claude-code)
2026-07-29 21:25:45 -07:00
.github docs: transition from Interest Group to Working Group (#81) 2026-04-17 14:27:27 -07:00
docs Add threat model doc for skills extension (#108) 2026-07-29 21:25:45 -07:00
.gitignore Add .gitignore to exclude local settings file 2026-02-03 20:07:14 -07:00
CONTRIBUTING.md docs: transition from Interest Group to Working Group (#81) 2026-04-17 14:27:27 -07:00
LICENSE Add Creative Commons license for project documentation 2026-02-04 07:33:09 -07:00
README.md Add threat model doc for skills extension (#108) 2026-07-29 21:25:45 -07:00

Skills Over MCP Working Group

⚠️ Experimental — This repository is an incubation space for the Skills Over MCP Working Group. Contents are exploratory and do not represent official MCP specifications or recommendations.

Charter: modelcontextprotocol.io/community/skills-over-mcp/charter — mission, scope, membership, active work items, and success criteria. Project board: Skills Over MCP WG Meeting notes: Skills Over MCP WG discussions Discord: #skills-over-mcp-wg Open work: Pull requests — proposals, decisions, implementations, and other in-flight contributions welcome.

Why Skills Over MCP?

MCP servers give agents tools, but tools alone are insufficient for complex workflows — tool descriptions tell an agent what a tool does, not how to orchestrate multiple tools to achieve a goal. Skills bridge this gap. They are structured "how-to" knowledge: multi-step workflows, conditional logic, and orchestration instructions that can run to hundreds of lines.

Skills are context, and MCP is a context protocol. Agents already connect to remote services over MCP to get tools — they can get the know-how to use those tools through the same channel. A remote MCP server can serve both its tools and the instructions for using them together, as a single atomic unit. This also enables automatic discovery (connect to a server, find its skills), dynamic updates (server-side changes flow without reinstall), multi-server composition (skills orchestrating tools across servers), and enterprise distribution (RBAC, multi-tenant, version-adaptive content) — all through infrastructure MCP servers already provide.

See why-and-when.md for the full value proposition and a guide for when MCP distribution applies vs. simpler alternatives. For an accessible external framing of the premise, see Angie Jones's "Skills Over MCP" (Agentic AI Foundation) — "ship the manual with the product."

Problem Statement

Native "skills" support in host applications demonstrates demand for rich workflow instructions, but there's no convention for exposing equivalent functionality through MCP primitives. Current limitations include:

  • Server instructions load only at initialization — new or updated skills require re-initializing the server
  • Complex workflows exceed practical instruction size — some skills require hundreds of lines of markdown with references to bundled files
  • No discovery mechanism — users installing MCP servers don't know if there's a corresponding skill they should also install
  • Multi-server orchestration — skills may need to coordinate tools from multiple servers

See problem-statement.md for full details.

Repository Contents

Document Description
Problem Statement Current limitations and gaps
Why Skills Over MCP? Value proposition and decision guide
Use Cases Key use cases driving this work
Approaches Approaches being explored (not mutually exclusive)
SEP-2640: Skills Extension Proposal to serve skills over MCP via the Resources primitive. Original working draft: docs/sep-draft-skills-extension.md. Comments and review happen on the PR.
Open Questions Unresolved questions with community input (see also issues and meeting notes)
Experimental Findings Results from implementations and testing
Related Work SEPs, implementations, and external resources
Threat Model Threat model for skills served over MCP (SEP-2640), with delivery-model recommendations and an archive appendix
Decision Log Record of key decisions with context and rationale

Contributing

See CONTRIBUTING.md for how to participate.