Skip to content

[Feature] Publish app skills through the MCP skills extension (SEP-2640) #2553

Open

Description

@Minoo7

Executor already serves skills to agents through its own skills tool. This asks for the same skills to also be published through the standard MCP skills extension, so that any host implementing the extension can discover them without knowing anything about Executor.

What the extension is

SEP-2640 reached Final status. It defines how an MCP server serves Agent Skills using the existing Resources primitive, under the extension id io.modelcontextprotocol/skills:

  • skills/list enumerates the skills a server publishes. skills/get returns one skill's entry by URI.
  • Each file of a skill is a resource, normally at skill://<skill-path>/<file-path>, so SKILL.md and its supporting files load one at a time, when needed.
  • Every listed file carries a SHA-256 digest and a size, and a host verifies content against the digest.
  • Skill names resolve per origin, so a served skill cannot silently take the place of a local one.

Working group repo: https://github.com/modelcontextprotocol/ext-skills

Why it is worth doing in Executor

  • Hosts can treat served skills as skills. A tool that returns skill text is opaque to a host. The host cannot list those skills in its own skill menu, apply its own consent rules, or cache them. With skills/list the host sees name, description and file list in a shape it understands.
  • Less for the model to learn. Today the model has to be told that an Executor-specific tool exists and how to page through it. A host that supports the extension handles discovery itself.
  • Integrity comes for free. Executor already computes a revision hash for an app's skill catalog. Per-file digests are the standard form of the same idea, and hosts are required to check them.
  • A gateway is where this matters most. Executor sits between agents and many apps. Publishing each app's skills through one standard listing means one connection gives a host every skill the person has access to, scoped by the access rules Executor already enforces.
  • Pass-through. MCP servers that Executor connects to may start serving skills this way. Executor could relay them alongside app skills.

Suggested scope

  1. Declare io.modelcontextprotocol/skills and implement skills/list and skills/get over the catalog the skills tool already reads.
  2. Expose skill files as resources under skill://<app>/<skill>/..., with digests and sizes.
  3. Keep the skills tool for hosts that do not support the extension.

An earlier pull request (#1986) declared this extension before it was closed ahead of the v2 launch, so some of the design work may be reusable.

Open questions

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions