THE LITTLE SKILL DEPOT
Skill vs plugin vs MCP server: what each one is and when to use it
The three words get used interchangeably in blog posts and they should not be. A skill is knowledge, a plugin is packaging, and an MCP server is capability. Pick the wrong one and you either pay tokens on every turn for something used once a week, or install a running process when a paragraph of Markdown would have done.
A little help from the depot
Skill: a folder of instructions loaded on demand
A skill is a directory containing a SKILL.md file with a name and a description in its frontmatter, followed by instructions. It may include reference files and scripts. The agent reads only the description at session start; when a request matches, it loads the full file and follows it. The format is open and shared by Claude Code, Cursor, Codex, Gemini CLI and GitHub Copilot, which is why one skill from GitHub installs into all of them with npx skills add.
A skill gives the model no new ability. It cannot reach a database or a browser by itself. What it changes is judgement and procedure: how to review a diff, what a landing page must not do, which steps to take before claiming a bug is fixed. Cost: a line or two of description per installed skill on every turn, plus the whole file when it triggers.
my-skill/
SKILL.md # frontmatter: name, description; then instructions
reference.md # optional
scripts/ # optional, runs with your permissionsPlugin: a package that bundles several extension types
In Claude Code, a plugin is a repository with a .claude-plugin/plugin.json manifest that can carry slash commands, subagent definitions, hooks, MCP server configuration and skills together. You add a marketplace with /plugin marketplace add owner/repo and install with /plugin install name@marketplace. The plugin itself does nothing at run time; it is the unit of distribution and versioning for the things inside it.
The word is Claude Code specific. Cursor calls its equivalents extensions and rules, Gemini CLI has extensions, Codex has none of this and reads skills and AGENTS.md directly. A plugin can contain skills, so "plugin or skill" is often a false choice: the skill is the content, the plugin is the box it ships in. Cost: the sum of whatever it contains, and hooks run automatically on events, which is the part to read before installing.
/plugin marketplace add anthropics/claude-plugins-official
/plugin install frontend-design@claude-plugins-officialMCP server: a running process that exposes tools
An MCP server is a separate program that speaks the Model Context Protocol over stdio or HTTP and exposes tools (functions the agent can call), resources (data it can read) and prompts. You register it in the agent's configuration: .mcp.json or claude mcp add for Claude Code, .cursor/mcp.json for Cursor, ~/.codex/config.toml for Codex, settings.json for Gemini CLI. Once connected, the agent can query Postgres, drive a browser, read Linear tickets or call your internal API, none of which a Markdown file can do.
The cost is different in kind. Every connected server's tool definitions are sent with every turn, so a server with forty tools can consume thousands of tokens before you type anything. And it is code running on your machine with your credentials, so it needs the scrutiny you would give any dependency.
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres postgresql://localhost/appSide by side
The table condenses the three, plus the always-on instruction file (CLAUDE.md, AGENTS.md, GEMINI.md, Cursor rules) that people most often confuse with a skill.
Skill Plugin (Claude Code) MCP server Rules file
---------------- ----------------- ------------------------ --------------------- ---------------------
What it is SKILL.md folder Manifest + bundled parts Separate process CLAUDE.md / AGENTS.md
Gives the agent Procedure, taste Distribution, versioning New tools and data Standing constraints
Loaded When task matches Parts load by their rule Tool list every turn Every turn
Token cost idle ~1 line each Sum of contents Hundreds to thousands Whole file
Works in All major agents Claude Code only All major agents Per agent, own name
Install npx skills add /plugin install Config file entry Commit the file
Can run code Only via scripts Hooks run automatically Yes, that is the job No
Read before use SKILL.md, scripts Hooks, MCP entries Source, permissions The fileWhich one to use
Reach for a skill when the problem is that the agent does not know how: it writes tests after the code, it designs generic screens, it reviews with nitpicks. Anything a senior colleague would fix by explaining a procedure is a skill. It is the cheapest option, works everywhere, and can be read in full before installing.
Reach for an MCP server when the problem is that the agent cannot: it needs to read production logs, run queries, open a browser, or file a ticket. If the capability already exists as a CLI the agent can call from a shell, you may not need MCP at all; a skill that explains the CLI is lighter.
Reach for a plugin when you are distributing to a team in Claude Code and the package needs more than instructions: a hook that runs the formatter after every edit, a subagent with its own model, a pre-configured MCP server, plus the skills that use them. One install, one version number.
Reach for the rules file when the constraint is short and always true: the package manager, the branch naming, the language of commit messages. If the rules file is growing past a screen, the long parts are procedures and belong in skills.
Two common mistakes
Installing an MCP server for knowledge. A "React best practices" MCP server that returns documentation on request pays its tool-definition cost every turn and adds a network round trip; the same content as a skill loads once, when needed, from disk.
Installing thirty skills at once. Each adds a description line to every turn, and skills with overlapping descriptions compete; the agent picks one and you do not see which. Install the few you will actually use, and disable or remove the rest.
Frequently asked questions
Can a skill call an MCP server?
Yes, indirectly. A skill's instructions can tell the agent to use a tool that an MCP server provides. The skill supplies the procedure; the server supplies the tool. Both have to be installed.
Is a Claude Code slash command a skill?
They have merged. A skill can be invoked as /skill-name, and older .claude/commands files still work. The difference is that a skill also loads automatically when its description matches.
Do plugins work in Cursor or Codex?
No. The plugin manifest and marketplace commands are Claude Code features. The skills inside a plugin usually work elsewhere if you install them as plain skills.
Which is safest to install from a stranger?
A Markdown-only skill, because you can read everything it will do. Skills with scripts, plugins with hooks and MCP servers all run code; treat them like any dependency.
How do I see what a plugin will install?
Open the repository and read .claude-plugin/plugin.json, then the hooks and .mcp.json entries it references. Skills and commands are just files you can read; hooks and servers are what run.
Content last reviewed: