Claude Skills vs MCP vs Subagents: What Each One Actually Does
Published on Reading time: 10 min
- #claude-skills
- #mcp
- #claude-code
Contents
If you spend any time around Claude Code, the question of Claude Skills vs MCP vs subagents comes up fast — three words you keep running into that sound interchangeable. The docs cover them in separate places, and most explanations assume you already know the difference. So people end up building an MCP server when a Skill would have done the job, or spinning up subagents when all they needed was one good instruction file.
Here is the cleanest way to keep them straight: a Skill changes how Claude behaves, an MCP server adds a new capability Claude doesn’t have, and a subagent protects your main context by doing work in a separate window. That one sentence does most of the heavy lifting. The rest of this article unpacks each piece, shows you when to reach for it, and explains how the three stack together so you stop guessing.
The short answer
Skills teach Claude how to do something your way, MCP servers give Claude access to systems it can’t otherwise reach, and subagents run a focused task in their own isolated context. Here is the difference at a glance:
- Claude Skill — A folder of instructions, scripts, and reference files that Claude loads on demand. It answers “how should this be done?” Use it for repeatable, opinionated workflows: your commit-message format, a brand style guide, a document-generation procedure. No new connectivity, just consistent behavior.
- MCP server — A standardized connector that plugs Claude into an external system: a database, a SaaS API, a browser, your file system over SSH. It answers “what can Claude reach?” If your task involves the words query, fetch, or current state, you want an MCP server.
- Subagent — A separate Claude instance with its own context window, its own system prompt, and a restricted set of tools. It answers “who does the work?” Use it when you want to delegate a chunky, self-contained job without flooding your main conversation.
A useful mental model: MCP is plumbing, Skills are know-how, and subagents are extra hands. You almost always end up wanting more than one. If you’re brand new to the tool itself, the Claude Code guide is the place to start before you layer any of this on top.
What a Skill is (and when you need one)
A Claude Skill is a packaged set of instructions and supporting files that Claude discovers and loads automatically when a task matches it — so you never have to re-explain the same workflow twice. Technically, a Skill is just a folder with a SKILL.md file at its root. That file holds a name, a short description, and the actual instructions. Alongside it you can drop scripts, templates, examples, or any reference material the task needs.
The magic is in the loading. Claude reads only the short description up front. When your request looks relevant, it pulls the full Skill into context — and not a moment sooner. This keeps your context window lean while still giving Claude deep, specific expertise the instant it’s needed. You can learn the authoring details in our walkthrough on how to create an Agent Skill, and there’s a growing Agent Skills marketplace if you’d rather install one than write it.
Reach for a Skill when the problem is about consistency, not connectivity. You want Claude to handle a recurring job the same way every single session without you copy-pasting the rules each time. Good candidates:
- Enforcing your team’s coding conventions or pull-request template
- A fixed procedure for generating reports, invoices, or slide decks
- Domain knowledge — say, how your company validates customer data
- Output formatting rules that must never drift
If you find yourself pasting the same paragraph of instructions into Claude over and over, that paragraph wants to be a Skill. For inspiration on what’s realistic, browse some Claude Skills examples.
What a Skill is not: it doesn’t connect to anything. A Skill can tell Claude exactly how to write a database migration, but it can’t reach the database. That’s the next piece’s job.
What an MCP server is (and when you need one)
An MCP server is a connector built on the Model Context Protocol — an open standard that lets Claude talk to external systems like databases, APIs, browsers, and file systems through one consistent interface. Think of MCP as a universal adapter. Before it existed, every integration was a one-off. With MCP, any tool that speaks the protocol can plug into any AI client that speaks it, and they understand each other immediately.
A single MCP server exposes a bundle of related actions — read a row, run a search, create a record, take a screenshot. Claude sees those actions as tools it can call. When it needs live data or wants to change something in the real world, it calls the relevant tool, the server does the work, and the result comes back. If you’ve ever wondered how this differs from the model just calling a function, our piece on MCP vs function calling covers the distinction.
You need an MCP server when Claude has to reach something it cannot touch on its own. The tell is in the verbs: query, fetch, current state, post, update. Concretely:
- Pulling live records from Postgres or a SaaS app
- Reading and writing files on a remote machine
- Driving a real browser to test or scrape a page
- Calling a third-party API — payments, ticketing, your CRM
You don’t have to build these from scratch. There’s a healthy ecosystem already — see our roundup of the best MCP servers and a guide on how to find MCP servers worth installing. When you’re ready to wire one in, connecting an MCP server to Claude walks through the setup. And because these servers run real actions against real systems, take MCP security seriously before granting access to anything sensitive.
The boundary to remember: an MCP server gives Claude the ability to reach a system. A Skill gives Claude the judgment to use that ability correctly. They’re complements, not competitors.
What subagents are (and when you need them)
A subagent is a separate Claude instance that runs in its own context window with its own system prompt and a limited toolset, so it can tackle a focused task without cluttering — or being distracted by — your main conversation. When your primary Claude (the orchestrator) hits a job that matches a subagent’s description, it hands that job off. The subagent works alone, then returns only its final answer. All the messy intermediate steps stay sealed inside its own context.
That isolation is the whole point, and it buys you two things. First, context protection: a long, noisy task — say, combing through a hundred log files — doesn’t pollute your main window with thousands of lines you’ll never need again. Only the conclusion comes back. Second, specialization: you can give a subagent a tightly scoped role, restrict which tools it’s allowed to touch, and even run it on a different model tuned for that job. If you want the full mechanics, see our deep dive on Claude Code subagents.
Reach for a subagent when you need an independent specialist with boundaries:
- A code-review agent that only reads files and comments, never edits
- A research agent that gathers sources and hands back a clean summary
- Parallel work — several subagents chewing through independent chunks at once
- Any task heavy enough that its raw output would drown your main thread
One honest caveat: isolation isn’t free. Multi-agent workflows can burn several times the tokens of a single straight-through session, because each subagent carries its own context. So don’t fan work out to a swarm of subagents when one well-instructed pass would do. If you’re orchestrating several of them, our overview of multi-agent systems covers the patterns that actually hold up.
How the three work together
The three aren’t rivals — they sit at different layers, and a serious Claude Code setup usually runs all three at once: MCP for reach, Skills for know-how, subagents for division of labor. Picture a real task: “audit our staging database for orphaned records and write up the findings.”
- The MCP server is what lets Claude actually connect to the database and run the queries. Without it, there’s nothing to audit.
- A Skill tells Claude what “orphaned record” means in your schema, which tables to check, and how your team likes the write-up formatted. Without it, Claude guesses.
- A subagent can run the slow, query-heavy audit in its own context and return just the report — keeping the hundreds of raw rows out of your main window.
Each one fills a gap the others can’t. MCP without a Skill gives Claude a connection but no judgment about how to use it. A Skill without MCP gives Claude perfect instructions for a system it can’t reach. Subagents without either are just empty context windows with nothing useful to do.
The practical takeaway: don’t ask “Skill or MCP or subagent?” Ask which layer your current gap lives in. Missing a connection? That’s MCP. Missing consistent behavior? That’s a Skill. Drowning in context or needing a specialist? That’s a subagent. Once you start sorting problems by layer, the choice gets obvious — and your Claude Code workflows get a lot cleaner. It’s also worth knowing about Claude Code hooks, a fourth piece that fires shell commands on lifecycle events, for the times none of these three fit.
FAQ
Is a Claude Skill the same as a subagent?
No. A Skill is a set of instructions Claude loads into its current context to change how it behaves — it has no separate context window. A subagent is a whole separate Claude instance with its own context, prompt, and tools. A Skill teaches expertise any agent can apply; a subagent is an independent worker you delegate a task to. They often work together: a subagent can use a Skill.
Do I need MCP to use Skills?
No, they’re independent. A Skill is pure instructions and files — it works fine on its own if the task doesn’t require external data. You only add MCP when a Skill’s workflow needs to reach a system Claude can’t otherwise touch, like a live database or a third-party API. Many useful Skills never need MCP at all.
When should I build an MCP server instead of a Skill?
Build an MCP server when Claude needs access to something external — anything you’d describe with words like query, fetch, post, or current state. Write a Skill when you need consistent behavior and no new connectivity. A quick test: if the task is “connect to X,” that’s MCP; if it’s “always do X this way,” that’s a Skill. See MCP vs function calling if you’re weighing the lower-level options.
Are subagents worth the extra cost?
Sometimes. Subagents protect your main context and let specialists run in parallel, which is genuinely valuable for big, noisy, or independent tasks. But each one carries its own context, so multi-agent runs can use several times the tokens of a single session. Use them when isolation or parallelism actually pays off — not as a default for every task.
Can I use all three in one project?
Yes, and that’s the common setup. A mature Claude Code project often wires MCP servers for connectivity, Skills for repeatable know-how, and subagents for delegated or parallel work — each handling a different layer of the same problem. The skill is matching the tool to the gap, not picking a single favorite.
Conclusion
The fastest way to stop confusing these three is to stop treating them as alternatives. They live at different layers: MCP gives Claude reach, Skills give it judgment, and subagents give it focus and extra hands. Almost every real workflow eventually wants more than one.
So next time you’re unsure, name the gap first. No connection to a system Claude needs? Reach for MCP. Behavior that keeps drifting or needs re-explaining? Write a Skill. A task heavy enough to choke your main context, or one that needs a tightly scoped specialist? Spin up a subagent. Sort the problem by layer and the right tool is usually obvious. When you want the authoritative details on any of them, the official Claude Code docs are the source of truth — and if you’re still finding your footing with the tool itself, the Claude Code tutorial is a solid next step.
Sources: Skills explained (Claude), Compare Skills vs Subagents vs MCP Servers (systemprompt.io), Subagent vs MCP Server vs Skill (dibi8.com).