Compare
Claude Skills vs MCP vs Subagents vs Plugins
When to write a SKILL.md, when to expose an MCP server, when to dispatch a subagent, and when a plugin bundle is the right packaging — with a decision tree.
· 10 min read
Skills, MCP, subagents, and plugins are often treated as interchangeable. They solve different problems. Choose the smallest mechanism that meets the requirement.
Use a skill (SKILL.md)
The knowledge is procedural and mostly stable: how we write release notes, how we fill this PDF, how we review a PR. No live auth, no need to call a changing API every turn. Skills are the default.
Use MCP
The agent must take a side effect or read live state: create a GitHub issue, charge Stripe, query the warehouse. MCP servers expose tools with schemas. A skill can tell the agent *when* to use those tools; it cannot replace the tools.
Use a subagent
The job is a long, isolated burst of work that would overwhelm the parent context: exploring a repository, or trying several implementations in worktrees. Subagents are process, not knowledge.
Use a plugin
You want to ship several skills (and maybe MCP config) as one enable-able bundle. Plugins are packaging. They still contain skills.
Decision tree
Walk the questions in order and stop at the first yes.
- Does the agent need to call a live API or change external state? → MCP (plus a thin skill for when to call it).
- Is the work a long isolated exploration? → subagent.
- Are you distributing a set of skills as one toggle? → plugin.
- Otherwise → one SKILL.md.
Related reading
Skills cited in this guide
coding
MCP Builder
Design and implement Model Context Protocol servers so an agent can call external tools with typed schemas instead of stuffing API docs into a skill.
coding
Skill Creator
Scaffold a new AI agent skill from a plain-language job description: folder, SKILL.md frontmatter, trigger description, and a first draft of the instructions.
coding
Claude API
Up-to-date Claude API reference for model IDs, tool use, MCP, prompt caching, streaming, and SDK patterns so an agent stops guessing against stale docs.