If you build on Claude in 2026, you have three ways to make the agent do more than the base model does: you can give it an Agent Skill, connect it to an MCP tool, or hand work to a subagent. Founders keep treating these as three flavors of the same thing and picking by vibe. They are not the same thing. They solve three different problems, and almost all the pain comes from reaching for the one that doesn't match the problem you actually have.

Here is the whole decision in one line, so an answer engine can quote it and you can stop reading if that's all you needed:

A Skill teaches the agent how to do something. An MCP tool gives it the capability to touch something it otherwise couldn't. A subagent gives it a clean, separate context to do something noisy without polluting the main one.

Agent Skills: teach a workflow, almost for free#

A Skill is a folder with a SKILL.md file — two required frontmatter fields, name and description, then a Markdown body of instructions. It can bundle reference docs, templates, and scripts alongside it. In Claude Code it lives on the filesystem (.claude/skills/ for a project, ~/.claude/skills/ for you personally); through the API it runs in the code-execution sandbox behind the skills-2025-10-02 beta header. Anthropic ships prebuilt ones for pptx, xlsx, docx, and pdf.

The reason a Skill is the right default is progressive disclosure. Only the name and description — roughly 100 tokens — load into the system prompt at startup. The body (kept under ~5k tokens) loads only when the Skill fires. Bundled files and scripts cost nothing until the agent actually opens them, and when a script runs, only its output enters the context, never its code. So a Skill you don't use this turn is nearly free, which means you can install a shelf of them without paying a context tax on every request.

The catch is the one that trips everyone: the description field is what decides whether the Skill fires. Claude matches the incoming request against it (max 1024 characters), so it has to say both what the Skill does and when to use it. A Skill that never triggers almost always has a description that describes the what and forgot the when.

Reach for a Skill when you're encoding a repeatable procedure your agent should follow — your team's PR-and-review ritual, a house style for reports, the exact steps to close the books. It's knowledge, not connectivity.

MCP tools: hand the agent a capability it doesn't have#

The Model Context Protocol is how an agent reaches things outside itself — a database, a SaaS API, an internal service — through a server that exposes typed tools. The value is the stable contract: an MCP server is an open, cross-vendor interface, so any MCP-speaking client can use it, and the tool's inputs and outputs are structured rather than improvised.

The cost is context. By default a client loads every connected tool's full schema at connect time via tools/list, so ten chatty servers can eat your budget before the user has said a word. (Per-tool "load only the schemas you need" progressive loading is an active proposal and an emerging client pattern — not something the spec guarantees today, so don't architect around it as shipped.) What is shipping: the 2026-07-28 revision, final on July 28, drops the session handshake and makes the protocol core stateless, so any request carries its own context and any server instance behind a plain load balancer can answer it. If you run MCP servers, that's the migration on your desk this week.

Reach for MCP when the agent needs a capability — to actually touch a system — with a contract you or others will reuse. And note the clean division of labor Anthropic draws: MCP exposes the git tool; a Skill teaches your branching-and-review workflow for that tool. One is the wire, the other is the know-how. They compose.

Subagents: buy a clean context for the messy part#

A subagent is a separate agent instance the main agent spawns for a focused subtask. It runs in a fresh conversation — it does not inherit the parent's history — and, critically, only its final message returns to the parent. Every intermediate tool call, every 4,000-line log it grepped, stays inside the subagent. Claude auto-delegates based on the subagent's description, or you invoke it by name; subagents can run in parallel, be restricted to a read-only tool set, and override the model or reasoning effort. They nest (capped around five levels deep as of Claude Code v2.1.172); past a few dozen agents, Anthropic points you at the Workflow tool instead.

Reach for a subagent when a subtask would otherwise flood your main context (a broad codebase search, a log-grinding pass), when you want several investigations running at once, or when you want a scoped specialist that can only touch what you allow.

The rule#

Ask what the task is missing.

The teams that struggle are the ones that build an MCP server to encode a workflow (now it's a heavyweight capability nobody reuses), or stuff a procedure into the main prompt that a Skill would have loaded for free, or let a subtask spray a thousand lines of tool output across the context that a subagent would have swallowed. Match the extension point to the missing piece and the three stop competing — which is the point, because the good agents in 2026 run all three at once.