MCP servers can now ship agent skills (SEP-2640, Final). albedo already has an MCP client and a native skills system, so it's well placed to be one of the first harnesses to connect the two. there are real design questions, mainly around trust and code execution.
not proposing an implementation, just writing down the opportunity and the friction i see. happy to help if it's wanted, and fine if it isn't.
the opportunity
- SEP-2640 adds an
io.modelcontextprotocol/skillsextension. servers serve Agent Skills asskill://<path>/<file>resources, list them withskills/list, and return one skill's metadata and digests withskills/get. (spec: enumeration, retrieval) - server side support exists: the Python, C#, and Go SDK reference PRs, plus FastMCP (
SkillsExtension/SkillCatalogProviderin 4.2.0a1). there's also a demo in github-mcp-server#3046. - host support is thin. the SEP lists only prototypes (gemini-cli, fast-agent, codex forks, an internal Claude Code one) (reference implementations). so there aren't many places to actually use these skills yet.
- albedo already has most of the pieces:
- an MCP client that does stdio and streamable HTTP, both the 2026-07-28
server/discoverflow andinitialize, and already lists and reads resources (robot-docs/mcp.md) - a progressive-disclosure skills extension with a catalog, slash commands,
skills.read/skills.resources, and load tracking (robot-docs/skills.md) - the SEP's suggested host design is basically that: merge MCP-served skills into the existing registry, load them through the same path, and read supporting files through a resource read (hosts: end-to-end integration)
- an MCP client that does stdio and streamable HTTP, both the 2026-07-28
- concrete example: i run a public atproto docs MCP server (
https://atproto-docs-mcp.fastmcp.app/mcp) that serves anatproto-docsskill. today, Claude clients ignore MCP-served skills.
challenges i see
- identity isn't name. albedo's skill catalog is keyed by frontmatter
namewith workspace/user/built-in scope. the SEP says an MCP skill's identity is (host-assigned server label,SKILL.mduri), that names can collide within and across servers, and that an MCP skill must never silently shadow a local one (names, skill URIs). that touches the catalog types, slash command naming, andskill_loads. - no implicit local execution. the SEP says MCP-served skill content must not cause host-side code execution without explicit per-skill user approval, including code-execution tool calls the model makes while acting on the skill (security implications). albedo's model is built around a trusted Python REPL, so it's an open question what "acting on an MCP skill" and that approval gate would look like here. this seems like the biggest one, and it's a design call, not a plumbing one.
- integrity rules. hosts verify sha256 and size of every file against the listed entry, compare parsed frontmatter field by field, fetch lazily (never ahead of need), and only read files listed in the held entry (integrity and verification). if approvals are persisted, they're bound to the digest set and revoked when it changes.
- origin-scoped reads. a skill from server A must not cause a
resources/readon server B without per-call approval. servers are identified by host label, notserverInfo.name. allowed-toolsmust be ignored for MCP skills unless the user approves it. albedo already treats it as descriptive-only, so this one may come close to free.- caching, if done, has to live outside every filesystem skill discovery path and keep its MCP-origin status across restarts.
- negotiation. albedo currently declares no client capabilities. this would mean advertising the extension and reading the server's
capabilities.extensionsin both theinitializeand_metaeras (capability declaration, per SEP-2133). - current overlap. a server like mine also lists
skill://files inresources/list. albedo's genericread_resourcewould surface them as plain resources. the SEP is explicit that such a read is not a skill load (reading).
references
- SEP-2640 (Final): https://modelcontextprotocol.io/seps/2640-skills-extension
- SEP PR: https://github.com/modelcontextprotocol/modelcontextprotocol/pull/2640
- working group repo: https://github.com/modelcontextprotocol/ext-skills
- conformance scenarios: https://github.com/modelcontextprotocol/conformance/pull/330
- Agent Skills spec: https://agentskills.io/specification
- server demo: https://github.com/github/github-mcp-server/pull/3046
🤖 issue body compiled by claude