If you are building on Claude Code, OpenAI Codex, Gemini CLI, or Cursor, you have hit the question directly: do I extend my agent with an MCP server or with an Agent Skill? It is the most common build-time decision in agent engineering right now, and the honest answer is that Model Context Protocol (MCP) and Agent Skills are not really competitors — they sit at different layers of the same stack. MCP, Anthropic's open standard for connecting an agent to external tools and data, was seeing roughly 97 million downloads per month by March 2026 and is supported by Anthropic, OpenAI, Microsoft, and Google. Agent Skills, the filesystem-based SKILL.md format, is an open standard that runs identically across Claude Code, OpenAI Codex, Gemini CLI, and Cursor. This guide answers the practical question first — when to reach for MCP, when to reach for a Skill, and when to use both — and then surfaces a third option that "MCP vs Skill" comparisons almost never mention: Agent-as-a-Service (AaaS), the model behind Manus, Devin, and Anthropic's Claude Managed Agents. By the end you will know which mechanism to build with, and whether you should be building at all.
The short version: a Skill tells the agent what to do; MCP gives the agent stable access to do it; and an AaaS endpoint just does the whole job and hands you the result. Hold that distinction and the rest follows.
What MCP Is
Model Context Protocol (MCP) is an open standard, introduced by Anthropic, that lets an AI agent connect to external tools and data through a structured, discoverable interface. Instead of hand-wiring each integration into your agent, you run (or connect to) an MCP server that exposes its capabilities in a uniform way. The agent queries a tools/list endpoint at startup, reads typed input/output schemas for each tool, and can then call those tools by name with validated arguments.
Mechanically, an MCP server is a separate process the agent talks to over a transport (stdio locally, HTTP/SSE remotely). Key properties:
- Synchronous request/response. Send an input, get an output back in seconds — like calling a function. A
read_filecall returns file contents; aquerycall returns rows. - Typed discovery.
tools/listreturns each tool's name, description, and JSON Schema for arguments, so the agent knows exactly what it can call and how. - Auth built in. MCP supports OAuth-style flows, so a server can reach GitHub, Notion, Google Drive, or an internal database on the user's behalf with scoped, revocable credentials.
- Stateful sessions. A connection can hold state across calls — useful for pagination or multi-step transactions.
The defining trait is that MCP is agent-to-tool plumbing: it standardizes access. It does not tell the agent when to call a tool, in what order, or to what quality bar — that judgment stays with the agent (and with you). With adoption across Anthropic, OpenAI, Microsoft, and Google and on the order of 97 million downloads a month, it is the default way agents reach systems they do not natively understand. The full specification lives at modelcontextprotocol.io.
A typical install is one line. In Claude Code, adding a remote MCP server looks like:
claude mcp add --transport http github https://api.githubcopilot.com/mcp
After that, the agent can discover and call the server's tools — create_issue, list_pull_requests, and so on — without you writing any glue code.
What Agent Skills Are
An Agent Skill is a filesystem package that teaches an agent how to perform a workflow. At minimum it is a single file, SKILL.md, containing YAML frontmatter (a name and a description) and a markdown body of instructions. Optionally it ships bundled scripts and resource files the agent can run or read at execution time. The format is an open standard documented by Anthropic, and the same skill directory works across Claude Code, OpenAI Codex (~/.agents/skills/ or ~/.codex/skills), Gemini CLI, and Cursor.
The trigger is the description field. The agent reads it and loads the skill automatically when an incoming task matches — no explicit invocation required, though most runtimes also let you pin a skill manually. A minimal SKILL.md:
---
name: release-notes
description: >
Generate formatted release notes from merged pull requests
since the last tag. Use when the user asks to draft a changelog
or release announcement.
---
# Release Notes
1. Find the most recent git tag.
2. List PRs merged since that tag (use the GitHub MCP server).
3. Group them by label: Features, Fixes, Chores.
4. Write each entry as one line in the user's voice.
5. Output as Markdown under a version heading.
Three things define a Skill:
- It runs in the agent's own context. No separate server, no extra infrastructure, no network endpoint — the agent reads the instructions into its loop and follows them.
- It encodes a procedure, not a connection. A Skill is a standard operating procedure (SOP): the steps, the order, the quality bar, the formatting. It is know-how captured as text the model can follow.
- It is a capability, not an agent. A Skill does not plan autonomously or run on its own. It is loaded by an agent you control and executes inside that agent's reasoning.
That last point is the most common confusion: a Skill is not a mini-agent you dispatch work to. It is a recipe your agent picks up when the task fits.
MCP vs Agent Skills: The Build-Time Decision
Here is the comparison developers actually come for. MCP and Skills answer different questions, so the decision is less "which is better" than "which problem am I solving right now."
| MCP server | Agent Skill | |
|---|---|---|
| What it provides | Standardized access to external tools and data | A packaged workflow / SOP the agent follows |
| Core question it answers | "How does my agent reach this system?" | "How should my agent do this task?" |
| Where it runs | A separate server process the agent connects to | Inside the agent's own context — no extra infra |
| Interaction | Synchronous: input → output in seconds | Instructions the agent reads and executes |
| Discovery | tools/list + typed JSON schemas | description field matched against the task |
| Auth / credentials | OAuth-style, scoped, revocable | Inherits whatever the agent already has |
| Best at | Stable, governed integration with GitHub, databases, SaaS | Encoding multi-step know-how, formatting, quality bars |
| It is… | A capability the agent calls | A procedure the agent performs |
The decision sharpens once you frame it by symptom:
- Reach for MCP when integration is the pain. You need the agent to touch a real system — a database, a ticketing tool, an internal API — with typed, discoverable, governed access. The hard part is connecting reliably and safely, not deciding what to do once connected.
- Reach for a Skill when judgment is the pain. The agent already can touch what it needs but keeps doing the task inconsistently — wrong format, skipped steps, no quality bar. The hard part is encoding the procedure so it runs the same way every time.
The hybrid truth: Skills sit on top of MCP. They are not alternatives; they compose. The release-notes skill above is the example — the skill knows the workflow (find the tag, group by label, write in the user's voice), and an MCP server gives it stable access to GitHub to fetch the PRs. The skill supplies the what; MCP supplies the how-to-reach. This is why most production setups use both: a thin layer of Skills capturing the team's SOPs on a foundation of MCP servers wired to the systems those SOPs operate on. If you are debating MCP versus a Skill, the answer is very often "yes."
A Decision Checklist
Use this when you are staring at a concrete task and need to pick a mechanism.
Pick MCP when:
- You need to connect the agent to an external system (GitHub, a Postgres database, Notion, an internal service).
- You need typed, discoverable tools rather than free-form scripting.
- Auth matters — you want scoped, revocable, OAuth-style credentials.
- Multiple agents or skills will reuse the same integration, so centralizing access pays off.
- The work is a single round-trip request that returns in seconds.
Pick a Skill when:
- The agent already has access but performs the task inconsistently.
- You want to capture a repeatable multi-step procedure — an SOP, a formatting standard, a checklist.
- You want it to load automatically when a matching task appears, with zero infrastructure to run.
- You want the same know-how to work across Claude Code, Codex, Gemini CLI, and Cursor without porting.
- Transparency matters: anyone can open
SKILL.mdand read exactly what the agent will do.
Use both when (the common case):
- The task is "do this multi-step workflow against that external system." The Skill encodes the workflow; the MCP server provides governed access to the system.
- You are standardizing a team's practices on top of shared integrations — SOPs as Skills, connections as MCP servers.
There is a quiet assumption running through this entire checklist, though: in every branch, you are extending your own agent. The Skill runs in your loop. The MCP tools register into your session. You own the planning, you own the execution, and you absorb the risk if the output is wrong. That assumption is exactly what the next layer breaks — and it introduces a second axis the build-time comparison never touches.
The Option Both Comparisons Miss: Agent-as-a-Service
Switch the question from "which mechanism do I build with?" to "what am I actually buying or selling, and who is on the hook if it goes wrong?" This is the value/risk axis, and it is the lens the standard MCP-vs-Skill debate never applies. We unpack it in full in the pillar guide, MCP vs Agent Skills vs Agent-as-a-Service: what each layer actually sells — here is the core of it.
On the value/risk axis, the same three layers rearrange around the unit of value that changes hands and the risk that travels with it:
| Layer | Unit you sell | What the buyer still does | Who absorbs the risk |
|---|---|---|---|
| Skill | A procedure (SOP / workflow) | Runs it, integrates it, owns every execution failure | The buyer — entirely |
| MCP | A capability (one call / endpoint) | Judges and stitches the outputs together | The buyer owns output quality |
| Agent-as-a-Service | A result (a finished deliverable) | Accepts or rejects the finished work | The seller absorbs planning, execution, and quality risk |
Each step up the chain, the seller takes on more of the buyer's work and risk — and earns more pricing power for it. A Skill sells a procedure and hands the buyer all the execution risk, which is why it commands almost no standalone price (copy cost is near zero; the runtime captures the value). MCP sells a capability billed per call — a real business, but still an API where the buyer owns whether the result is good. Agent-as-a-Service sells a result, and because it keeps planning, execution, and quality risk on the seller's side, it can charge by outcome.
Agent-as-a-Service (AaaS) is a delivery model in which a complete, autonomous agent is sold as an endpoint: you dispatch a goal, the agent plans the approach, gathers what it needs, uses its own tools, and returns a finished result — while the process stays opaque to the caller. You are not assembling an agent and not calling a single capability. You are delegating the whole job.
The clearest reference point is Manus, which shipped a public API on exactly these terms: a traditional model API is "call an endpoint, get text back," whereas its API lets you dispatch a task that the agent plans, researches, and delivers complete. The surface is deliberately narrow — task.create, task.send_message, task.poll, plus files, webhooks, and connectors — and the interaction is asynchronous: you dispatch, you poll, and minutes to hours later you collect a finished deliverable. There is no model library and no eval harness, because you do not build on it; you delegate to it. The docs are at open.manus.im/docs/v2.
Manus is not alone. Devin (Cognition) exposes the same dispatch-and-collect shape for software tasks, and Anthropic put Claude Managed Agents into public beta in April 2026, selling a managed agent runtime as an endpoint billed at token rates plus a per-session-hour fee. Two products converging from opposite directions — Manus saying "we built a general agent, here is its API," Anthropic saying "we built the runtime, here are managed sessions" — are both betting that agent-as-endpoint is the right unit to sell. The pattern is appearing in vertical form too: in video, a service like Pexo takes a brief and returns a finished clip — model selection, generation, and assembly absorbed behind one endpoint — rather than handing you a model API to orchestrate yourself.
Which Layer Do You Actually Need?
Tie it together with one question: how much of the work and the risk do you want to keep?
- Keep all of it → build with MCP and Skills. Use MCP for governed access to your systems and Skills to encode how the work gets done. This is the right call when the workflow is core to your product, needs to be auditable, or is unique to your domain. You hold the risk and all the control.
- Hand off a result → delegate to an Agent-as-a-Service. Dispatch a goal, get a finished deliverable, pay for the outcome rather than the plumbing. This is the right call when the task is commoditized, outside your core, or not worth the engineering — and you accept an opaque process in exchange for the seller carrying the execution and quality risk.
Most teams live in the first bucket for their core workflows and the second for everything adjacent — building where they need control, delegating where they would rather buy a result than own a pipeline. The two are not in tension; they are the in-house and buy-it sides of one spectrum. For the complete three-layer breakdown — including why a Skill cannot really be sold on its own and where pricing power concentrates — read the pillar: what each of MCP, Agent Skills, and Agent-as-a-Service actually sells.
Related reading
- MCP vs Agent Skills vs Agent-as-a-Service: What Each Layer Actually Sells
- What Is Agent-as-a-Service (AaaS)? The Complete Guide
- Agent-as-a-Service vs SaaS: From Tools to Outcomes
- Agent-as-a-Service for Video: How AI Video Agents Deliver Finished Work
Resources
| Resource | What it covers | Link |
|---|---|---|
| Model Context Protocol | The official MCP specification, SDKs, and server registry | modelcontextprotocol.io |
| Anthropic | Agent Skills standard and the SKILL.md format | anthropic.com |
| Manus API docs | A worked example of the Agent-as-a-Service model (task.create / task.poll) | open.manus.im/docs/v2 |
| The pillar guide | The full value/risk breakdown across all three layers | pexo.ai |






