Skip to content

[WIP] Demo for Skills Over MCP#2360

Draft
olaservo wants to merge 4 commits intogithub:mainfrom
olaservo:add-agent-skills
Draft

[WIP] Demo for Skills Over MCP#2360
olaservo wants to merge 4 commits intogithub:mainfrom
olaservo:add-agent-skills

Conversation

@olaservo
Copy link
Copy Markdown
Contributor

This branch demonstrates serving Agent Skills bundled as MCP Resources, following the Draft SEP for Skills Extension: modelcontextprotocol/experimental-ext-skills#69

For more background, see the Skills Over MCP WG Repo: https://github.com/modelcontextprotocol/experimental-ext-skills

(Note: template-based skills resources are not yet implemented in this branch.)

olaservo and others added 4 commits April 19, 2026 19:58
Introduce a reusable `skills` package that lets an MCP server publish
server-bundled Agent Skills (SKILL.md files shipped in the binary) per
the skills-over-MCP SEP (SEP-2133):

  - skills.Bundled describes one skill (name, description, embedded
    content, optional icons, optional enabled predicate for runtime
    gating on toolsets/feature-flags/headers)
  - skills.Registry collects entries, declares the
    `io.modelcontextprotocol/skills` extension capability on the server,
    and installs each SKILL.md as an MCP resource plus a
    skill://index.json discovery document conforming to the
    agentskills.io/discovery/0.2.0 schema

The package has no GitHub-specific state — any MCP server author can
drop it in to publish bundled skills with a small amount of wiring.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Ship a SKILL.md at skills/pull-requests/SKILL.md that documents the
pending-review workflow for submitting a multi-comment GitHub pull
request review (pull_request_review_write → add_comment_to_pending_review
→ submit_pending). The skill file lives at the repo root so it is also
usable as a plain agent skill by any consumer that scans the repo
(Claude Code, the agent-skills CLI), independent of this server.

Register the skill via skills.Registry in NewMCPServer, gated on the
pull_requests toolset being enabled. Both stdio and HTTP transports
pick it up since both routes through NewMCPServer. The pull_requests
toolset's inline server instructions are unchanged — skill-aware hosts
discover the skill through the extension capability, skill://index.json,
and resources/list; older hosts continue to receive the same inline
instructions they always have.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The bundled skill now reads differently from the inline server
instructions rather than mirroring them, showing the point of
progressive disclosure: a skill-aware host spends no extra context on
every request but can pull the deeper version on demand.

Restructure into "When to use", "Workflow" (numbered steps), and
"Caveats" sections per the agentskills.io spec's recommended body
shape. Add content that is *not* in the inline instructions:
- when to skip this flow (single top-level comment / approve without
  inline feedback)
- the pending-ness hinges on omitting `event` in step 1
- specific line-ref parameter names (path, line, side, startLine,
  startSide)
- the concrete `APPROVE | REQUEST_CHANGES | COMMENT` event values
- pending reviews are invisible to the PR author and can be deleted
  via `method: "delete_pending"`

Update the embedded-content test to check for the new `## Workflow`
section header and a second tool-name presence assertion.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Ship a second bundled skill that walks the agent through systematic
GitHub notifications triage: enumerate with list_notifications,
partition by reason (review_requested / mention / assign /
security_alert — high; author / comment / state_change — medium;
ci_activity / subscribed — low), act on high-priority items, then
dismiss with state "done" or "read" per the skill's rule.

Demonstrates:
- Multiple bundled skills in one server (registry now has two entries).
- Per-skill toolset gating — pull-requests gates on pull_requests,
  inbox-triage gates on the non-default notifications toolset, so
  enabling one does not force the other.
- Cross-skill reference (the inbox-triage workflow points at the
  pull-requests skill when handling review_requested items).
- Skills teaching workflow judgment (priority buckets) that tool
  descriptions alone cannot encode.

Tests cover the symmetric structural checks, per-toolset registration
paths, the multi-skill index.json shape, and the capability declaration
firing on either toolset.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant