[FEATURE] Auto-discover skills from MCP servers via skill:// resource protocol

Resolved 💬 2 comments Opened Mar 24, 2026 by egordigitax Closed Apr 22, 2026

Summary

When an MCP server exposes skills via the skill:// resource URI scheme (as implemented by FastMCP's SkillProvider), Claude Code should automatically discover and register them as native $skill-name / /skill-name skills — without requiring the user to copy SKILL.md to ~/.claude/skills/ locally.

Problem

Currently, skills in Claude Code are resolved only from local directories (~/.claude/skills/, .claude/skills/, --add-dir). MCP servers can expose skill resources via the skill:// protocol, and Claude Code can read them through ListMcpResourcesTool / ReadMcpResourceTool, but they are not registered as invocable $ / / skills.

This creates a gap for HTTP-transport MCP servers: there is no installation step on the client, so no post-install hook can copy the skill locally. The user must manually download and place the file — which defeats the purpose of a zero-install HTTP MCP connection.

Proposed behavior

  1. On MCP server connection, Claude Code calls list_resources() and looks for resources matching skill://<name>/SKILL.md.
  2. For each discovered skill resource, Claude Code reads the content and parses the YAML frontmatter (name, description).
  3. The skill becomes available as $<name> (inline) and /<name> (slash command), same as a local skill — with the MCP server name shown as the source.
  4. If a local skill with the same name exists, local takes precedence (consistent with current priority: project > personal > plugin).

Use case

We run an internal documentation RAG service as an HTTP MCP server. It exposes a skill://fmk-docs/SKILL.md resource that describes how to search the knowledge base. Today, users must manually copy this file to ~/.claude/skills/fmk-docs/SKILL.md after connecting the MCP server — an unnecessary friction point.

Prior art

  • FastMCP already standardizes the skill:// URI scheme via SkillProvider
  • The _manifest resource provides a file listing with SHA256 hashes, enabling cache invalidation
  • MCP prompts are already partially surfaced as commands — skills are a natural extension

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗