ext-skills/docs/skills-extension-candidates.md
Ola Hungerford c1fa4f315e
docs: add skills-extension-candidates and client-mcp-support trackers (#92)
* docs: add skills-extension-candidates tracker

Scaffold a candidates list for MCP servers, dev tools, SDKs, and
skills repositories that could adopt SEP-2640. Initial entries:
FastMCP 3.0 Skills, chrome-devtools-mcp, hf-mcp-server, Hugging Face
skills library, github-mcp-server (PR #2428 demo), Azure Skills Plugin.

Cross-link from related-work.md and add a row to the README docs
table.

* docs: add Issue/PR tracker column to candidates table

* docs: add client-mcp-support survey alongside candidates tracker

* docs: link Azure MCP Server source in candidates table

* docs: remove gemini-cli from client MCP support survey

* docs: verify hermes-agent, switch source refs to main-branch links, refresh takeaways

- Promote hermes-agent from first-pass to verified; note its per-server tool
  pattern (`mcp_{server}_read_resource` + `mcp_{server}_list_resources`) and
  confirm end-user docs exist
- Drop stale line numbers throughout; convert path refs to GitHub source-file
  links on `main` (commit-pinned URLs decayed once files moved)
- Goose: PR #8989 has landed, so describe current `(extension_name, uri)`
  required signature and drop the now-closed issue/PR tracking
- Takeaways: collapse to three implementation patterns (Goose now fits the
  `(server, uri)` bucket), fix open-source count to fourteen, drop the
  smolagents name-drop (not in survey), add strands-agents alongside mastra
  for the internal-SDK-only pattern, and reframe the signature recommendation
  around server-resolution reliability rather than URI portability

* docs: verify remaining first-pass clients, flip cline/Roo-Code to Yes

Verified adk-python, agent-framework, crewAI, mastra, cline, Roo-Code
against local source clones. Two corrections to prior state:

- cline and Roo-Code both expose access_mcp_resource(server, uri) as a
  model-facing tool via McpHub.readResource. Flipped from No to Yes.
- adk-python's load_mcp_resource takes resource_names: array[string] in
  a single call (not two-shot); opt-in via use_mcp_resources flag.

Headline count updated from six to eight of fourteen open-source clients
satisfying #2527. Cross-cutting observations and takeaways adjusted for
the new (server, uri) family members and the four-pattern signature
breakdown. Trust-model list extended.

* docs: add Figma and Adobe MCP as SEP-2640 testing candidates

* docs: update FastMCP 3.0 Skills entry with detailed notes on SEP-2640 compliance

* docs: drop unconfirmed Cursor SEP-2640 entry, track latest SEP-2640 wire-contract PRs

Remove the Cursor row + deep dive (reported WIP never confirmed). Add the
in-flight PRs realigning to the 2026-06-05/06-09 SEP-2640 schema (frontmatter +
archives[] index, resources/directory/read): hf-mcp-server#174, fast-agent#825,
huggingface/skills#172.

* docs: add Slack (interested) and Bloomberg (internal use) as SEP-2640 candidates

* docs: remove archived Roo-Code from client survey, update strands repo to harness-sdk

* docs: re-verify SEP-2640 implementations against current upstream main

Both reference implementations have migrated to the July 2026 v1 shape,
verified against fresh clones rather than the prior June commit pins:

- hf-mcp-server (d794b10, v0.4.6): skills/list + skills/get, per-file
  {uri,digest} resources manifest, directoryRead:true, no index.json or
  archives. Migrated in #219 (merged 2026-08-03). Also records the
  snapshot/TTL model and HTTP-transport-only constraint.
- fast-agent (79b903c, 0.10.1): pins SEP-2640 revision d7490ec, treats
  legacy index.json skill-md/archive entries as unsupported. Requires
  --prerelease=allow (pins fastmcp-slim 4.0.0b1), per @evalstate.

Corrects the earlier note claiming implementations lagged the SEP: the
#174/#825/#172 round merged 2026-06-19 and was never in flight, and a
second realignment followed the v1 rework.

Also fixes drift found while re-checking fast-agent's resource tool:
smart_agent.py is gone (now core/harness_tools.py), get_resource is
opt-in via harness_tools (default False, was unconditional), and
server_name is now optional - the one surveyed client where the model
may omit server identity.

Runtime skill loading is still unshipped; #816 remains open.

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

* docs: track SEP revision 0eb05fe and add mcpkit to the candidates tracker

The SEP moved from d7490ec to 0eb05fe (2026-08-05). The delta is
editorial for the wire contract -- skills/list, skills/get, and the
per-file resources manifest are unchanged -- so d7490ec-pinned
implementations stay compatible. Records what it does change: a soft
reg-name constraint on the first skill-path segment, the skill root URI
fixed as skill://<skill-path> with no trailing slash, whether skills/get
carries ttlMs/cacheScope reopened, and normative host obligations in the
security section.

Adds mcpkit (panyam/mcpkit, Go, v0.3.0) from #118 as a candidate. It
implements the pre-v1 index.json catalog shape with per-file digests, so
the ecosystem is now split across draft revisions rather than uniformly
caught up.

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

* docs: refine mcpkit entry — deliberate tracking, partial v1 migration

Checked mcpkit's issues and PRs rather than inferring alignment from
code shape. Its lag is a tracked decision, not drift:

- #1185 (merged 2026-08-04) implements origin-tagging and per-origin
  resolve citing SEP L179/L183/L185 -- the host obligations 0eb05fe made
  normative -- so it is already on v1 for the security section. #1187
  adds a SEP-2640 security/conformance harness as a WG demo.
- #780 is an explicit index-schema tracking issue that has absorbed the
  archives removal and the resources:[{uri,digest}] direction but waits
  on WG confirmation; its conformance fork pins provenance at 556154c.
- The carrier change is still unbooked: nothing references skills/list
  or skills/get.
- Archives are kept as a non-spec extended surface rather than deleted,
  unlike fast-agent -- a counter-case for whether deferring a feature
  removes it from the ecosystem.

Sharpens the callout accordingly: the draft split runs within an
implementation, not only between them, so "which draft does X
implement" often has no single answer.

🦉 Generated with [Claude Code](https://claude.com/claude-code)
2026-08-28 09:49:18 -07:00

8.8 KiB
Raw Blame History

Skills Extension Candidates

A tracker of MCP servers, dev tools, SDKs, and skills repositories that are candidates for adopting the skills extension proposed in SEP-2640.

Inclusion criterion. An entry belongs here if it already ships skills in some non-MCP form (separate install path, plugin marketplace, framework-native provider), pairs an MCP server with a separate skills repo, or has an in-flight SEP-2640 implementation.

ℹ️ Implementations track the SEP by draft revision, and have realigned twice. SEP-2640 was reworked into a v1 scope between July 8–15, 2026 (see the 2026-07-16 decision record): archives removed, skill://index.json replaced by a skills/list method, the single per-entry digest replaced by a per-file resources manifest, skills/get added, and resources/directory/read made optional behind a directoryRead capability. As of 2026-08-04 the reference server and client have both caught up — hf-mcp-server migrated in #219 (merged 2026-08-03) and fast-agent pins draft revision d7490ec — after an earlier realignment round on 2026-06-19 (hf#174, fast-agent#825, huggingface/skills#172). Both now reject the older skill://index.json + archive shape outright — while mcpkit (below) still serves the index-catalog shape, so the ecosystem is split across draft revisions. Note that the split runs within an implementation, not just between them: mcpkit is current on v1's normative security obligations while deliberately holding its index schema pending WG confirmation. Adoption tracks the SEP section by section, so "which draft does X implement" often has no single answer. Since the SEP is still a draft under review, treat any "implemented" claim here as implements a pinned draft revision and re-verify against the revision the SEP is at when you read this. The SEP has since moved to 0eb05fe (2026-08-05); that delta is editorial for the wire contract — skills/list, skills/get, and the per-file resources manifest are unchanged — so d7490ec-pinned implementations remain compatible. It does add one soft constraint (the first <skill-path> segment SHOULD be a valid RFC 3986 reg-name, since it occupies the authority component), pins the skill root URI as skill://<skill-path> with no trailing slash, reopens whether skills/get should carry ttlMs/cacheScope, and makes the security section's host obligations normative rather than a recorded WG position.

See also client-mcp-support.md for the matching client-side survey: which open-source MCP hosts already let the model load resources by URI (the prerequisite for any client to consume what these candidates would expose).

Snapshot

Server Repo Author / Org Issue/PR tracker Notes
FastMCP 3.0 Skills jlowin/fastmcp — docs FastMCP #2694 Framework with its own native skills provider using MCP Resources; doesn't yet reflect SEP-2640
chrome-devtools-mcp ChromeDevTools/chrome-devtools-mcp Google (ChromeDevTools) none yet Bundles a skills/ folder, but requires separate install — not served via MCP
hf-mcp-server huggingface/hf-mcp-server Hugging Face #219, #174, #164 (all merged) SEP-2640 v1 implemented (server side). Verified at d794b10 (v0.4.6, 2026-08-03). Implements skills/list, skills/get, resources/read, and optional resources/directory/read; entries carry uri + verbatim frontmatter + a per-file {uri, digest} resources manifest (skill-types.ts, skill-resources.ts). Advertises io.modelcontextprotocol/skills with directoryRead: true plus resources: { subscribe: false, listChanged: false } (capability-utils.ts). No skill://index.json, no archives — both removed by #219 (merged 2026-08-03), which migrated from the 2026-06-05 shape that #174 had landed. Operational shape: skills come from a prebuilt snapshot (HF_SKILLS_DIR) with every digest verified before an atomic in-memory swap, a three-hour freshness TTL with stale-while-revalidate, and HTTP transports only — skills are not served over long-lived STDIO. First server we interoperated with end-to-end (against fast-agent, see client-mcp-support.md). #164 adds a client denylist (default cursor-vscode) after that client's resources/subscribe retry-loop flooded the server (~100k req/min). Distribution producer: huggingface/skills#172
mcpkit (ext/skills) panyam/mcpkit Sri Panyam #780 (open, index-schema tracking); #1185, #1187 (merged) Partially migrated, and tracking the SEP deliberately. Go SDK covering both server and host: SKILL.md, skill:// resources, progressive disclosure via a skill://index.json catalog + a host-side load_skill tool, per-supporting-file digests with verified reads, resource-fetch size and per-server byte budgets, and resources/directory/read; no code-execution surface (enforced by a build-failing test). Released in v0.3.0. Already on v1 for the security section — #1185 (merged 2026-08-04) implements origin-tagging and per-origin resolve, citing SEP lines L179/L183/L185, i.e. the host obligations 0eb05fe made normative; #1187 adds a SEP-2640 security/conformance harness as a WG demo. Deliberately holding on the index schema — #780 is an explicit tracking vehicle (body rewritten 2026-07-14) that has already absorbed the archives removal and the resources: [{uri, digest}] direction, but is waiting on WG confirmation before refactoring; its conformance fork "deliberately holds provenance at pre-PR-97 commit 556154c." Not yet absorbed: the carrier change — no issue or code references skills/list/skills/get, so the index-resource → method move is still unbooked. Also resolved the archive deferral differently from fast-agent: archives are retained as an explicitly non-spec "extended surface" rather than deleted, a useful counter-case for whether deferring a feature actually removes it from the ecosystem. The only Go implementation tracked, and the only one pairing a server and host in one SDK
github-mcp-server github/github-mcp-server GitHub #2428 (WIP demo, not for merge) SEP-2640 demo branch
Azure Skills Plugin microsoft/azure-skills Microsoft none yet 25 Azure SKILL.md skills bundled with Azure MCP Server + Foundry MCP; distributed as a plugin, not via MCP
Figma MCP TBD Figma none yet Contact: Discord adityamuttur — candidate for SEP-2640 testing
Adobe MCP TBD Adobe none yet Contact: Discord justinmathew8592 — candidate for SEP-2640 testing
Slack TBD Slack none yet Expressed interest in SEP-2640 — candidate for testing
Bloomberg internal Bloomberg none yet Using skills-over-MCP internally; not public