Claude skills vs MCP, subagents, plugins, commands and hooks

Skills teach the agent how to do something. MCP servers give it access to something. Subagents give work its own context, plugins package all of these for installation, and hooks enforce rules every time. Here is how to tell them apart and when to reach for each.

Updated · Skill Index docs

At a glance

What it isLoadedUse it forWhere it lives
SkillA folder with SKILL.md instructions, plus optional scripts and reference filesDescription always; full instructions only when the task matches or you type /skill-nameTeaching a procedure: how to review a PR, write a migration, design a UI.claude/skills/ or ~/.claude/skills/
MCP serverA program that exposes tools and data to the agent over the Model Context ProtocolIts tools are available for the whole sessionAccess to something outside: a database, a browser, an issue tracker, an API.mcp.json or claude mcp add
SubagentA separate worker with its own context window, prompt and tool setWhen the main agent delegates a task to itIsolating noisy or parallel work so it doesn’t fill the main conversation.claude/agents/ or ~/.claude/agents/
PluginA package that bundles skills, subagents, hooks, MCP servers and commandsWhen installed and enabledDistributing a set of extensions as one installInstalled with /plugin from a marketplace
Slash commandA Markdown prompt you run by nameOnly when you type itA saved prompt you trigger by hand (now merged into skills).claude/commands/
HookA shell command Claude Code runs on an event, such as before every file editEvery time the event firesRules that must hold every time: formatting, blocking a command, notificationssettings.json, or a skill’s hooks field
CLAUDE.mdStanding project instructionsAt the start of every sessionFacts and conventions that apply to all work in the repoRepo root, ~/.claude/CLAUDE.md

Skills vs MCP

An MCP server is a capability: it lets the agent query Postgres, drive a browser, or file a Jira ticket. A skill is expertise: the steps, conventions and pitfalls for a kind of task. If the agent can't reach the system, you need MCP (or a CLI it can call). If it can reach it but does the job badly, you need a skill.

They combine naturally: Anthropic's mcp-builder is a skill for writing MCP servers, and vendors such as Supabase and Neon publish skills that explain how to use their platforms correctly.

Skills vs subagents

A subagent is a separate worker with its own context window, defined as a Markdown file in .claude/agents/. Use one when a task would flood the main conversation with output (a broad code search, a long test run) or should run in parallel. The two mix: a skill with context: fork runs in a forked subagent, so the procedure and the isolation come together.

Skills vs plugins

A plugin is not an alternative to a skill, it is a way to ship one. A plugin can bundle skills, subagents, hooks, MCP server configs and commands, and installs from a marketplace with /plugin. Plugin skills are namespaced as /plugin-name:skill-name, so they never clash with yours. A single skill doesn't need a plugin: copying the folder or running npx skills add is enough.

Skills vs slash commands

In Claude Code, custom commands have been merged into skills: .claude/commands/deploy.md and .claude/skills/deploy/SKILL.md both create /deploy, and existing command files keep working. A skill adds a folder for supporting files, control over who can invoke it, and automatic loading when a task matches. If a skill and a command share a name, the skill wins.

Skills vs hooks

Claude applies a skill with judgment and can drift from it in a long session. A hook is code Claude Code runs on an event, every time, regardless of what the model decides. Anthropic's guidance: if a rule must hold every time (run the formatter after each edit, never touch a file), move it into a hook; a skill can register hooks through its hooks field.

Skills vs CLAUDE.md and rules files

CLAUDE.md (and AGENTS.md in other agents) is read at the start of every session, so it suits short facts that always apply: build commands, code style, where things live. Anything long or only occasionally relevant belongs in a skill, which costs almost no context until it is used.

Do skills work outside Claude Code?

Yes. SKILL.md follows the open Agent Skills format, and Codex, Cursor, GitHub Copilot, Gemini CLI and others load the same files from their own folders (see where skills are stored). Claude-only fields such as context: fork are ignored elsewhere. To write one, start with the SKILL.md format guide; to find one, browse skills by topic.

Advertisement

FAQ

Do I need MCP to use skills?
No. Most skills are plain instructions and work with the tools the agent already has (reading files, running commands). You only need an MCP server when a skill has to reach a system the agent cannot otherwise access.
Are skills replacing MCP?
No, they solve different problems. MCP adds capabilities; skills add know-how. A common pattern is an MCP server for access plus a skill that explains how to use its tools well.
Do skills cost context like MCP tools do?
Only a little until used. Each skill contributes its name and description to the context; the instructions load when the skill is invoked. MCP tool definitions are present for the whole session.

Sources