Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 42 additions & 11 deletions docs/implementations.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,22 @@ To add or update a row, open a PR. Keep notes to one line.

## SDKs and frameworks

The TypeScript SDK ships the extension in v2.4.0 and FastMCP in v4.1.2; the Python SDK has it merged but not yet released. Implementations built before those releases register `skills/list`, `skills/get` and `resources/directory/read` as custom request handlers. The Inspector's [`schemas.ts`](https://github.com/modelcontextprotocol/inspector/blob/main/core/extension/skills/schemas.ts) is a worked example for TypeScript; its comments record the pitfalls ([typescript-sdk#2789](https://github.com/modelcontextprotocol/typescript-sdk/issues/2789)).

| Implementation | Category | Language | Status | Notes |
| :--- | :--- | :--- | :--- | :--- |
| [Go SDK](https://github.com/modelcontextprotocol/go-sdk) | `official` | Go | `in progress` ([#1238](https://github.com/modelcontextprotocol/go-sdk/pull/1238)) | Passes the conformance suite; filesystem provider in [#1240](https://github.com/modelcontextprotocol/go-sdk/pull/1240) |
| [TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) | `official` | TypeScript | `in progress` ([#2818](https://github.com/modelcontextprotocol/typescript-sdk/pull/2818)) | Phase 1: schemas, client ops, server handlers. Tracking issue [#2798](https://github.com/modelcontextprotocol/typescript-sdk/issues/2798) |
| [Python SDK](https://github.com/modelcontextprotocol/python-sdk) | `official` | Python | `in progress` ([#3485](https://github.com/modelcontextprotocol/python-sdk/pull/3485)) | Tracking issue [#3486](https://github.com/modelcontextprotocol/python-sdk/issues/3486) |
| [C# SDK](https://github.com/modelcontextprotocol/csharp-sdk) | `official` | C# | `in progress` ([#1864](https://github.com/modelcontextprotocol/csharp-sdk/pull/1864)) | Alternative PR [#1856](https://github.com/modelcontextprotocol/csharp-sdk/pull/1856); maintainers to pick |
| [FastMCP SkillsProvider](https://gofastmcp.com/servers/providers/skills) | | Python | `in progress` ([#5057](https://github.com/PrefectHQ/fastmcp/pull/5057)) | Tracking issue [#5016](https://github.com/PrefectHQ/fastmcp/issues/5016); directory provider in [#5704](https://github.com/PrefectHQ/fastmcp/pull/5704); released versions still serve their own `skill://` shape |
| [Go SDK](https://github.com/modelcontextprotocol/go-sdk) | `official` | Go | `in progress` ([#1238](https://github.com/modelcontextprotocol/go-sdk/pull/1238)) | Changes requested; filesystem provider in [#1240](https://github.com/modelcontextprotocol/go-sdk/pull/1240) |
| [TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) | `official` | TypeScript | `v1` ([#3047](https://github.com/modelcontextprotocol/typescript-sdk/pull/3047)) | In v2.4.0 as `ext/skills`: `loadSkills` and `skills.attach` on the server, `SkillsClient` on the client. Tracking issue [#2798](https://github.com/modelcontextprotocol/typescript-sdk/issues/2798) |
| [Python SDK](https://github.com/modelcontextprotocol/python-sdk) | `official` | Python | `v1` ([#3485](https://github.com/modelcontextprotocol/python-sdk/pull/3485)) | Merged, not yet released. Filesystem provider requested in [#3683](https://github.com/modelcontextprotocol/python-sdk/issues/3683) |
| [C# SDK](https://github.com/modelcontextprotocol/csharp-sdk) | `official` | C# | `v1` ([#1856](https://github.com/modelcontextprotocol/csharp-sdk/pull/1856)) | Merged, not yet released |
| [Rust SDK](https://github.com/modelcontextprotocol/rust-sdk) | `official` | Rust | `in progress` ([#1392](https://github.com/modelcontextprotocol/rust-sdk/pull/1392)) | Maintainer PR: server and client with typed results; filesystem catalog to follow. Tracking issue [#1391](https://github.com/modelcontextprotocol/rust-sdk/issues/1391) |
| [Java SDK](https://github.com/modelcontextprotocol/java-sdk) | `official` | Java | `in progress` ([#1141](https://github.com/modelcontextprotocol/java-sdk/pull/1141)) | Client APIs and stateless server; [#1214](https://github.com/modelcontextprotocol/java-sdk/pull/1214) adds the modern server. Tracking issue [#1140](https://github.com/modelcontextprotocol/java-sdk/issues/1140) |
| [PHP SDK](https://github.com/modelcontextprotocol/php-sdk) | `official` | PHP | `in progress` ([#372](https://github.com/modelcontextprotocol/php-sdk/pull/372)) | Draft PR; server side, registers skills from a directory |
| [Ruby SDK](https://github.com/modelcontextprotocol/ruby-sdk) | `official` | Ruby | `in progress` ([#635](https://github.com/modelcontextprotocol/ruby-sdk/pull/635)) | Maintainer PR. Tracking issue [#568](https://github.com/modelcontextprotocol/ruby-sdk/issues/568) |
| [Kotlin SDK](https://github.com/modelcontextprotocol/kotlin-sdk) | `official` | Kotlin | `planned` ([#1020](https://github.com/modelcontextprotocol/kotlin-sdk/issues/1020)) | |
| [FastMCP SkillsProvider](https://gofastmcp.com/servers/providers/skills) | | Python | `v1` ([#5057](https://github.com/PrefectHQ/fastmcp/pull/5057)) | Experimental and opt-in. In v4.1.2 with the directory provider ([#5704](https://github.com/PrefectHQ/fastmcp/pull/5704)); proxy and mounted-server discovery in the 4.2 prerelease. Tracking issue [#5016](https://github.com/PrefectHQ/fastmcp/issues/5016) |
| [FastMCP TypeScript](https://github.com/PrefectHQ/fastmcp-ts) | | TypeScript | `v1` ([#131](https://github.com/PrefectHQ/fastmcp-ts/pull/131)) | Client side, on the SDK's `SkillsClient` |
| [Effect](https://github.com/Effect-TS/effect) | | TypeScript | `in progress` ([#10082](https://github.com/Effect-TS/effect/pull/10082)) | `McpServer` and `McpClient` |
| [mcpkit](https://github.com/panyam/mcpkit/tree/main/ext/skills) | `community` | Go | `v1` | Server and client, plus the `mcpskills` CLI. Passes the [conformance suite](https://github.com/modelcontextprotocol/conformance) server scenarios |
| [Tachyon](https://github.com/tachyonmcp/tachyon/tree/main/examples/mcp-skills) | | Java | `v1` | Self-reported 2026-09-14; requires clients to advertise the extension capability |

Expand All @@ -28,17 +37,39 @@ To add or update a row, open a PR. Keep notes to one line.
| :--- | :--- | :--- | :--- | :--- |
| [hf-mcp-server](https://github.com/huggingface/hf-mcp-server) | | TypeScript | `v1` | Hugging Face. `skills/list`, `skills/get`, `directoryRead`. HTTP transports only |
| [github-stars-contrib-mcp-server](https://github.com/svg153/github-stars-contrib-mcp-server) | `community` | Python | `v1` ([#144](https://github.com/modelcontextprotocol/ext-skills/issues/144)) | Passes the [conformance suite](https://github.com/modelcontextprotocol/conformance) server scenarios |
| [github-mcp-server](https://github.com/github/github-mcp-server/pull/2428) | | Go | `prototype` | Demo branch, not for merge |
| [Brewale](https://brewale.dev/docs#skills-over-mcp) | | TypeScript | `v1` | Hosted. Org, project and personal skills with per-user access; `directoryRead`; passes the conformance server scenarios |
| [Cloudflare API MCP server](https://github.com/cloudflare/mcp) | | TypeScript | `v1` | Hosted. Serves the [cloudflare/skills](https://github.com/cloudflare/skills) repo with full manifests; no `directoryRead` |
| [Outline](https://github.com/outline/outline) | | TypeScript | `v1` | Since v1.11.0; per-file digests and `skill://outline/...` URIs |
| [Salesforce B2C DX MCP](https://github.com/SalesforceCommerceCloud/b2c-developer-tooling) | | TypeScript | `v1` | `@salesforce/b2c-dx-mcp` since 3.3.0 |
| [Tableau MCP](https://github.com/tableau/tableau-mcp) | | TypeScript | `partial` | `skills/list` since v4.27.2 ([#1015](https://github.com/tableau/tableau-mcp/pull/1015)); also serves `skill://` resources |
| [DoiT MCP server](https://github.com/doitintl/doit-mcp-server) | | TypeScript | `v1` | Since v2.7.1 ([#345](https://github.com/doitintl/doit-mcp-server/pull/345)) |
| [Google MCP Toolbox](https://github.com/googleapis/mcp-toolbox) | | Go | `v1` | Merged ([#4050](https://github.com/googleapis/mcp-toolbox/pull/4050)), not yet released |
| [OpenWork](https://github.com/different-ai/openwork) | | TypeScript | `v1` | Organization and plugin skills ([#6129](https://github.com/different-ai/openwork/pull/6129)) |
| [Repliers MCP server](https://github.com/Repliers-io/mcp-server) | | JavaScript | `v1` | Serves its skills for ChatGPT's import ([#26](https://github.com/Repliers-io/mcp-server/pull/26)) |
| [Ansible AAP MCP server](https://github.com/ansible/aap-mcp-server) | | TypeScript | `v1` | AAP skills ([#209](https://github.com/ansible/aap-mcp-server/pull/209)); tool fallback for clients without the extension ([#206](https://github.com/ansible/aap-mcp-server/pull/206)) |
| [n8n](https://github.com/n8n-io/n8n) | | TypeScript | `v1` | Serves its skills hub ([#41563](https://github.com/n8n-io/n8n/pull/41563), [#41725](https://github.com/n8n-io/n8n/pull/41725)); per-skill exposure in [#41729](https://github.com/n8n-io/n8n/pull/41729) |
| [gridctl](https://github.com/gridctl/gridctl) | | Go | `v1` | Registry skills on both protocol revisions, with directory browsing ([#1418](https://github.com/gridctl/gridctl/pull/1418)) |
| [OpenL Tablets](https://github.com/openl-tablets/openl-tablets) | | TypeScript | `v1` | On the TypeScript SDK's extension ([#2414](https://github.com/openl-tablets/openl-tablets/pull/2414)) |
| [mcpskills](https://github.com/Cali0707/mcpskills) | `community` | Go | `v1` | Reference server on the Go SDK over Streamable HTTP, with OAuth and group-based access |
| [kernel-mcp-server](https://github.com/kernel/kernel-mcp-server) | | TypeScript | `in progress` ([#260](https://github.com/kernel/kernel-mcp-server/pull/260)) | Ships the `kernel-mcp` skill from [kernel/skills](https://github.com/kernel/skills) |

## Hosts (including agent harnesses, IDEs, and web applications)

| Implementation | Category | Status | Notes |
| :--- | :--- | :--- | :--- |
| [fast-agent](https://github.com/evalstate/fast-agent/blob/main/docs/docs/mcp/skills-over-mcp.md) | `community` | `partial` | First client interoperated end-to-end with hf-mcp-server |
| [MCP Inspector](https://github.com/modelcontextprotocol/inspector/blob/main/clients/cli/README.md#skill-verification---verify) | `official` | `partial` | SEP-2640 support since 2.6.0 (2026-09-09), including CLI skill verification |
| [MCPJam Inspector](https://github.com/MCPJam/inspector) | | `partial` | Skills surface in the app and CLI; declares the extension capability |
| [fast-agent](https://github.com/evalstate/fast-agent/blob/main/docs/docs/mcp/skills-over-mcp.md) | `community` | `v1` | `/skills add` installs served skills after size, digest and frontmatter checks; first end-to-end interop with hf-mcp-server |
| [MCP Inspector](https://github.com/modelcontextprotocol/inspector/blob/main/clients/cli/README.md#skill-verification---verify) | `official` | `partial` | Since 2.6.0, including CLI skill verification; 2.13.0 moved onto the SDK's `ext/skills` |
| [MCPJam Inspector](https://github.com/MCPJam/inspector) | | `v1` | App, CLI and SDK; verifies digests and frontmatter, namespaces skills by server. Aligned with the released spec in v3.17.0 |
| [mcpc](https://github.com/apify/mcpc) | | `v1` | Apify's MCP CLI; `skills-list` and `skills-get` with size and digest checks since v0.7.0 |
| [ChatGPT plugins](https://developers.openai.com/plugins/build/mcp-server#import-skills-from-the-mcp-server) | | `partial` | Imports skills at plugin submission, static snapshot |
| [VS Code fork](https://github.com/tobi-oye/vscode/pull/1) | `community` | `prototype` | `skills/list` discovery and loading ([findings](archive/experimental-findings.md)) |
| [Goose](https://github.com/aaif-goose/goose) | | `planned` ([#12068](https://github.com/aaif-goose/goose/issues/12068)) | Prototype fork in [ext-skills#125](https://github.com/modelcontextprotocol/ext-skills/pull/125) |
| [Microsoft Agent Framework](https://github.com/microsoft/agent-framework) | | `partial` | .NET discovery on `main` ([#9198](https://github.com/microsoft/agent-framework/pull/9198)), not yet released |
| [vitehub](https://github.com/vite-hub/vitehub) | | `v1` | Installs served skills ([#2605](https://github.com/vite-hub/vitehub/pull/2605)) |
| [harness](https://github.com/majorcontext/harness) | | `v1` | Lists, verifies and loads served skills ([#770](https://github.com/majorcontext/harness/pull/770)) |
| [Cherry Studio](https://github.com/CherryHQ/cherry-studio) | | `in progress` ([#22382](https://github.com/CherryHQ/cherry-studio/pull/22382)) | Discovery and verified loading through tools; client spec proposed in [#22350](https://github.com/CherryHQ/cherry-studio/pull/22350) |
| [agentgateway](https://github.com/agentgateway/agentgateway) | | `in progress` ([#4214](https://github.com/agentgateway/agentgateway/pull/4214)) | Gateway pass-through; waits on the Rust SDK |
| [VS Code](https://github.com/microsoft/vscode) | | `planned` ([#338300](https://github.com/microsoft/vscode/issues/338300)) | Requested for GitHub Copilot; no PR yet |
| [Goose](https://github.com/aaif-goose/goose) | | `in progress` ([#12724](https://github.com/aaif-goose/goose/pull/12724)) | Host PR on released rmcp; the maintainers' plan ([#12068](https://github.com/aaif-goose/goose/issues/12068)) waits on the Rust SDK |
| [Agno](https://github.com/agno-agi/agno) | | `in progress` ([#11026](https://github.com/agno-agi/agno/pull/11026)) | Maintainer-written, in review |
| [opencode](https://github.com/anomalyco/opencode) | | `in progress` ([#52298](https://github.com/anomalyco/opencode/pull/52298)) | Community PR, no maintainer reply yet |
| [Hermes Agent](https://github.com/NousResearch/hermes-agent) | | `in progress` ([#137746](https://github.com/NousResearch/hermes-agent/pull/137746)) | Community PR, no maintainer reply yet |
| [agent-harness](https://github.com/ar27111994/agent-harness) | `community` | `planned` ([#492](https://github.com/ar27111994/agent-harness/issues/492)) | Digest-pinned skill store |
Loading