Reference · Diagram Design

Skill vs MCP vs Plugin in Claude Code

Three extension points that are easy to confuse: what each one actually is, which folder it lands in for every scope, and what it looks like on disk.

Skill, MCP server and plugin compared in Claude Code A comparison in three layers. The first layer shows that a Skill is a folder of instructions and an MCP server is a running process supplying tools, while a Plugin is a versioned bundle that packages both rather than being a third kind of extension. The second layer maps each one to the folders it installs into for personal, project, local and user scope, and notes that the tilde path is Unix shorthand for the Windows home folder. The third layer shows the on-disk structure of a skill directory, an MCP server JSON entry, and a plugin directory. WHAT EACH ONE IS BUNDLED BUNDLED Skill A folder with SKILL.md — instructions, not new abilities. No install: create the folder. Invoke: /name MCP Server A running process or endpoint — gives Claude new tools. Install: claude mcp add <name> --scope local|project|user Plugin skills/ .mcp.json agents/ hooks/ A versioned bundle from a marketplace. Not a third kind of thing — a wrapper around the other two. Install: /plugin marketplace add <repo> then /plugin install <name>@<marketplace> Its skills are namespaced /plugin-name:skill-name so they never clash with your own. WHERE IT INSTALLS, BY SCOPE Skill Personal — every project of yours ~/.claude/skills/<name>/SKILL.md Project — this repo only, commit it .claude/skills/<name>/SKILL.md Personal wins over project on a name clash. List: /help → Custom commands · ls ~/.claude/skills/ MCP Server local (default) — you, this project only ~/.claude.json → projects[<path>] project — your team, shared via git .mcp.json at repo root, needs approval user — you, everywhere → ~/.claude.json List: claude mcp list · claude mcp get <name> · /mcp Plugin user — every project · local — one ~/.claude/plugins/installed_plugins.json Cached copy of the plugin itself: ~/.claude/plugins/cache/<market>/<plug>/ ~/.claude/plugins/known_marketplaces.json List: claude plugin list · ... marketplace list · /plugin ~/ is a Unix-style shortcut for your home folder. On this Windows machine ~/.claude/skills/ really means C:\Users\diego\.claude\skills\ WHAT IT LOOKS LIKE ON DISK A skill my-skill/ ├── SKILL.md ← the only required file ├── references/ ← read only when needed └── scripts/ assets/ description: in frontmatter, drives auto-use An MCP entry { "mcpServers": { "github": { "type": "http", "url": "https://..." } } } type: stdio (local process) · http · sse · ws Tools reach Claude as mcp__<server>__<tool> A plugin my-plugin/ ├── .claude-plugin/plugin.json ← manifest ├── skills/<name>/SKILL.md └── agents/ hooks/ .mcp.json bin/ Only plugin.json goes in .claude-plugin/ LEGEND FOCAL — A PLUGIN PACKAGES THE OTHER TWO RUNS A PROCESS STATIC FILES ONLY