
TL;DR
MCP gives an agent live access to tools and data. Agent Skills give it packaged procedure. They solve different halves of the same problem, and the MCP working group is now standardizing how skills ship over MCP. Here is the decision rule.
Direct answer
MCP gives an agent live access to tools and data. Agent Skills give it packaged procedure. They solve different halves of the same problem, and the MCP working group is now standardizing how skills ship over MCP. Here is the decision rule.
Best for
Developers comparing real tool tradeoffs before choosing a stack.
Covers
Verdict, tradeoffs, pricing signals, workflow fit, and related alternatives.
The framing "MCP vs Agent Skills" is everywhere right now, and it is the wrong frame. These are not competing standards. They answer different questions:
You can have one without the other and get a bad agent either way. An agent with tools but no procedure improvises badly. An agent with procedure but no tools writes an excellent plan it cannot execute.
The strongest evidence that these compose rather than compete is that the MCP project itself is standardizing how skills ship over MCP. More on that below. First, the decision rule.
If you remember one thing:
Build an MCP server when the agent needs to reach something outside its context. Write a Skill when the agent needs to know how to do something.
A quick sort test. Ask: does this thing change when the world changes, or when our process changes?
If the answer is "both," you need both, and they should be separate artifacts. That separation is the whole point.
| MCP | Agent Skills | |
|---|---|---|
| Answers | What can I reach? | How do I do this? |
| Unit | Server exposing tools, resources, prompts | Folder with SKILL.md plus bundled files |
| Runtime | A live process the agent calls over JSON-RPC | Text and scripts the agent reads and runs |
| State | Live, changes between calls | Versioned, changes when you edit it |
| Auth | Real concern (credentials, scopes, consent) | Usually none; it is content |
| Fails by | Being down, slow, or rate limited | Being stale or wrong |
| Cost to add | A running service to operate | A file in a repo |
MCP is an open protocol using JSON-RPC 2.0 to connect LLM applications to external systems. The specification defines three roles: Hosts (the LLM application initiating connections), Clients (connectors inside the host), and Servers (services providing context and capabilities).
Servers offer three features to clients:
The spec draws the analogy itself: MCP takes inspiration from the Language Server Protocol, standardizing how to integrate context and tools "into the ecosystem of AI applications" the way LSP standardized language support across editors.
Two things are worth knowing about the current state of the spec. The revision scheme is date-based (YYYY-MM-DD), incremented only when backwards-incompatible changes land. The 2026-07-28 revision moves the base protocol to stateless, self-contained requests with per-request capability negotiation, replacing the older stateful-connection model, and adds a mandatory server/discover RPC that returns supported versions, capabilities, and identity in one call. Clients declare their version per request via io.modelcontextprotocol/protocolVersion in _meta, or the MCP-Protocol-Version header on Streamable HTTP. If you are running against 2025-11-25 or earlier, check the backward-compatibility notes before upgrading.
The other thing: MCP now has an extensions track. Tasks (async long-running operations), MCP Apps (inline interactive UI), and, relevant here, Skills over MCP.
Anthropic's engineering write-up defines a Skill as "organized folders of instructions, scripts, and resources that agents can discover and load dynamically to perform better at specific tasks".
The format is deliberately unglamorous. A folder with a SKILL.md that "must start with YAML frontmatter that contains some required metadata: name and description." Additional files live alongside it and get referenced from the main file.
my-skill/
SKILL.md # frontmatter (name, description) + the procedure
reference/
api-notes.md # loaded only if the task needs it
scripts/
validate.sh # executed, not read into context
The design principle doing the work is progressive disclosure, which Anthropic calls "the core design principle that makes Agent Skills flexible and scalable," comparing it to "a well-organized manual that starts with a table of contents, then specific chapters, and finally a detailed appendix."
It runs in three tiers:
SKILL.md content pulled in when the agent judges it relevantThe payoff claim is the interesting one: "agents with a filesystem and code execution tools don't need to read the entirety of a skill into their context window when working on a particular task. This means that the amount of context that can be bundled into a skill is effectively unbounded."
That is the asymmetry people miss. A skill can be enormous because most of it is never read. An MCP server's tool definitions, by contrast, historically all land in context up front. We dug into what happens when that assumption breaks in Skills Delivered Over MCP.
Anthropic is explicit about the relationship, too: skills "complement Model Context Protocol (MCP) servers by teaching agents more complex workflows that involve external tools and software."
Newsletter
Get the weekly deep dive
Tutorials on Claude Code, AI agents, and dev tools, delivered free every week.
From the archive
Jul 29, 2026 • 10 min read
Jul 29, 2026 • 8 min read
Jul 28, 2026 • 7 min read
Jul 28, 2026 • 9 min read
If you want proof that "vs" is the wrong preposition, read the Skills Over MCP Working Group charter.
Its mission is defining how "agent skills - rich, structured instructions for agent workflows - are discovered, distributed, and consumed through MCP." It emerged from SEP-2076, "Agent Skills as a First-Class MCP Primitive", which asked exactly the question this article is about: do existing MCP primitives suffice, or does skills support need new conventions?
The group's current direction is SEP-2640, the Skills Extension, described as "a formal extension using existing Resources primitives." In other words: the answer they landed on is that skills ride on MCP's existing Resources primitive rather than becoming a fourth primitive alongside tools, resources, and prompts.
Some context on how seriously this is being taken. The WG was formed as an interest group in February 2026, converted to a full Working Group on 2026-04-16, and is co-led by Ola Hungerford (Nordstrom, MCP maintainer) and Peter Alexander (Anthropic, core maintainer). Participants include maintainers and engineers from Google, Databricks, GitHub, AWS, Bloomberg, Saxo Bank, Astronomer, and Stacklok. It meets weekly. Its stated long-term success criterion is "interoperable skill distribution across MCP servers and clients."
The charter also coordinates with a Primitive Grouping WG specifically on "progressive disclosure patterns," which tells you the context-cost problem is now a protocol-level concern rather than a client-side hack.
Worth noting what is explicitly out of scope: installable bundles packaging skills plus servers plus subagents plus configuration as one artifact. That is deferred to a broader packaging effort. So if you were hoping for a single install format this year, it is not on this group's roadmap. We wrote about where that pressure leads in Agent Skills Are Becoming Package Managers.
We run this pattern in production on this site, so I will use it rather than a hypothetical.
Our platform exposes one MCP endpoint. Early on it had a handful of tools. It now backs roughly 55 capabilities. If all 55 tool schemas loaded into every agent's context on connect, the endpoint would cost more in context than most tasks are worth before the agent does anything.
So the endpoint does not list 55 tools. Its tools/list exposes a lookup dispatcher: find_tools and use_tool. The agent searches for what it needs, then invokes it. The full catalog exists server-side; only the matched slice enters context. That is the same progressive-disclosure idea Anthropic applies to skill files, applied to tool schemas instead. The full write-up is in One Endpoint, Every Capability.
Skills flow through the same endpoint in three tiers that map exactly onto the Anthropic model:
list_skills returns a lean index (name plus description, tier 1)get_skill returns the body and a file manifest (tier 2)get_skill_file returns one file on demand (tier 3)Which makes the division of labor concrete. MCP is the transport and the live surface. Skills are the payload and the procedure. A skill in our library can point at a linked file hosted anywhere, and that file is fetched only when an agent asks for it - the pattern we described in Linked Context.
The lesson from running it: the moment you have more than about a dozen tools, "expose everything up front" stops being viable, and you are forced into progressive disclosure whether or not you have a name for it. SEP-2640 existing is that same realization at ecosystem scale.
The comparison is only useful if it includes failure modes.
MCP fails operationally. It is a running service. It goes down, it gets slow, it rate limits, it needs credentials rotated. The spec is direct about the risk surface: tools "represent arbitrary code execution and must be treated with appropriate caution," and tool descriptions "should be considered untrusted, unless obtained from a trusted server." Every MCP server you add is a dependency with an availability number and a blast radius. That is a real reason not to build one for something a script could do, which is the argument in CLIs Over MCPs.
Skills fail silently. A skill is text. Nothing breaks when it goes stale. It just quietly describes a process that no longer exists, and the agent follows it confidently into the wrong outcome. There is no health check for "this procedure is now wrong." The mitigation is treating skills like code with real exit criteria rather than accumulated lore, which is the case we made in Agent Skills Need Exit Criteria.
There is a second skills failure worth naming: skills do not compose into a graph on their own. The three-tier model gives you depth (metadata, body, files) but not lateral links between skills. We measured this against our own 36-skill repository in Wiki Skills.
Reach for MCP when:
Reach for a Skill when:
Reach for both when you are automating an actual workflow, which is most of the time. The MCP server exposes create_pull_request. The skill explains what a good PR looks like on your team, when to split one, and which checks must pass first. Neither one is sufficient. In headless and CI contexts, where nobody is watching to correct a bad improvisation, the skill layer matters more than people expect - see Codex Exec in CI.
Stop asking which one wins. Ask which half of the problem you are solving.
Tools without procedure produce agents that do the wrong thing efficiently. Procedure without tools produces agents that describe the right thing uselessly. The MCP working group's answer, after months of debate across maintainers at a dozen companies, was to build skills on top of MCP's Resources primitive rather than pick a side. That is a good signal about how to architect your own stack.
The thing genuinely worth your attention is not the comparison. It is progressive disclosure. Both standards converged on it independently, and it is now a cross-cutting concern with a working group attached. Whatever you build, the question that will determine whether it scales is not "MCP or skills," it is "how much of this must be in context before the agent knows what it needs?"
SKILL.md frontmatter, the three progressive-disclosure tiers, unbounded-context claimRead next
A decision framework for 2026: MCP servers give an agent access to a live system, Agent Skills teach it how to do a task. Here is when to build each, when to build both, and the criteria that actually decide it, grounded in the MCP spec and Anthropic's skills docs.
10 min readSKILL.md solved knowledge packaging with progressive disclosure. MCP solved capability transport but ships flat, context-hungry tool lists. The next shape combines them - an MCP server whose tools are a skill directory, so an agent pays context only for what the task needs. Here is the argument and a working implementation.
9 min readSkills gave an agent what to know. The missing half is what role to play. Agent Studio lets you author subagents next to your skills in one place, serve both over the same MCP endpoint with the same progressive disclosure, browse them over REST and the dd CLI, and publish them to the community under a moderation loop. Here is the design and why the two belong in one studio.
9 min readTechnical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
A hosted infinite canvas your headless AI agents drive over MCP. Any MCP-speaking agent - Claude Code, Codex, Cursor, or...
View ToolAnthropic's agentic coding CLI. Runs in your terminal, edits files autonomously, spawns sub-agents, and maintains memory...
View ToolOpen-source terminal agent runtime with approval modes, rollback snapshots, MCP servers, LSP diagnostics, and a headless...
View ToolFull-stack AI dev environment in the browser. Describe an app, get a deployed project with database, auth, and hosting....
View ToolEvery coding agent in one window. Stop alt-tabbing between Claude, Codex, and Cursor.
View AppTurn a one-liner into a working Claude Code skill. From idea to installed in a minute.
View AppReplay every MCP tool call to find why your agent went sideways.
View AppConfigure Claude Code for maximum productivity -- CLAUDE.md, sub-agents, MCP servers, and autonomous workflows.
AI AgentsDeep comparison of the top AI agent frameworks - LangGraph, CrewAI, Mastra, CopilotKit, AutoGen, and Claude Code.
AI AgentsA practical walk-through of how to design, write, and ship a Claude Code skill - from choosing when to trigger, through allowed-tools, to the steps the agent will actually follow.
Getting Started
Learn The Fundamentals Of Becoming An AI Engineer On Scrimba; https://v2.scrimba.com/the-ai-engineer-path-c02v?via=developersdigest My AI-powered Video Editor; https://dub.sh/dd-descript ...

Progressive Disclosure in Claude Code In this video, we explore the concept of progressive disclosure within Claude code and its impact on building AI agents. Highlighting recent trends among top AI

Check out Zed here! https://zed.dev In this video, we dive into Zed, a robust open source code editor that has recently introduced the Agent Client Protocol. This new open standard allows...

Skills gave an agent what to know. The missing half is what role to play. Agent Studio lets you author subagents next to...

Skills, files, memory, and generation do not need four integrations. They need one MCP endpoint with tiered disclosure,...

The first version of skills-over-MCP served a fixed first-party catalog. Skill Studio extends it two ways: anyone can au...

SKILL.md solved knowledge packaging with progressive disclosure. MCP solved capability transport but ships flat, context...

MCP Apps shipped with the 2026-07-28 final spec - sandboxed interactive UIs for MCP servers. How they compare to standar...

The Agent Skills spec gave agents progressive disclosure in three tiers - name, SKILL.md, bundled files. What it did not...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.