Pexo
banner
Pexo/Blog/MCP vs Agent Skills: When to Use Each, and the Layer Above Both

MCP vs Agent Skills: When to Use Each, and the Layer Above Both

Finn avatar
Finn·Last updated May 29, 2026
MCP vs Agent Skills: When to Use Each, and the Layer Above Both
Summary

Developers building on Claude Code, Codex, and OpenClaw keep asking whether to use an MCP server or an Agent Skill. This guide answers the build-time question first — what MCP is (Anthropic's agent-to-tool standard), what Agent Skills are (SKILL.md packaged workflows), when to use which, and why most setups use both, since skills sit on top of MCP. It then reveals the option both comparisons miss: Agent-as-a-Service — a complete agent sold as an endpoint (Manus, Devin, Anthropic Claude Managed Agents) — and reframes all three on the value/risk axis: a Skill sells a procedure, an MCP server sells a capability, and an AaaS endpoint sells a result.

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_file call returns file contents; a query call returns rows.
  • Typed discovery. tools/list returns 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 serverAgent Skill
What it providesStandardized access to external tools and dataA 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 runsA separate server process the agent connects toInside the agent's own context — no extra infra
InteractionSynchronous: input → output in secondsInstructions the agent reads and executes
Discoverytools/list + typed JSON schemasdescription field matched against the task
Auth / credentialsOAuth-style, scoped, revocableInherits whatever the agent already has
Best atStable, governed integration with GitHub, databases, SaaSEncoding multi-step know-how, formatting, quality bars
It is…A capability the agent callsA 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.md and 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:

LayerUnit you sellWhat the buyer still doesWho absorbs the risk
SkillA procedure (SOP / workflow)Runs it, integrates it, owns every execution failureThe buyer — entirely
MCPA capability (one call / endpoint)Judges and stitches the outputs togetherThe buyer owns output quality
Agent-as-a-ServiceA result (a finished deliverable)Accepts or rejects the finished workThe 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.

Resources

ResourceWhat it coversLink
Model Context ProtocolThe official MCP specification, SDKs, and server registrymodelcontextprotocol.io
AnthropicAgent Skills standard and the SKILL.md formatanthropic.com
Manus API docsA worked example of the Agent-as-a-Service model (task.create / task.poll)open.manus.im/docs/v2
The pillar guideThe full value/risk breakdown across all three layerspexo.ai

Frequently Asked Questions (FAQ)

What is the difference between MCP and a skill?

MCP standardizes how an agent accesses external tools and data — it is a connection to a separate server that returns typed outputs synchronously. A Skill is a filesystem package (SKILL.md) that tells the agent how to do a task, loaded into the agent's own context. MCP is a capability the agent calls; a Skill is a procedure the agent follows. They operate at different layers.

Can a skill call MCP?

Yes, and this is the standard production pattern. A Skill encodes the workflow — the steps and the quality bar — while MCP servers give that workflow stable, governed access to the systems it operates on. For example, a release-notes Skill describes how to format a changelog, and it pulls the underlying pull requests through a GitHub MCP server. The Skill supplies the what; MCP supplies the how-to-reach.

Do I need both MCP and Skills?

Often, yes. If your task is "perform this multi-step workflow against an external system," you typically want a Skill for the procedure and an MCP server for governed access to the system. You can use either alone — a Skill with no external dependencies, or MCP tools an agent calls directly — but most real setups layer Skills on top of MCP rather than choosing one.

Where do skills live?

A Skill is a directory on the filesystem containing a SKILL.md file plus optional scripts and resources. The exact path depends on the runtime: Claude Code uses ~/.claude/skills/, OpenAI Codex uses ~/.agents/skills/ (or ~/.codex/skills), and Gemini CLI and Cursor have their own locations. Because the format is an open standard, the same skill directory works across all of them.

Is an MCP server an agent?

No. An MCP server is a tool provider — it exposes capabilities (functions the agent can call) and returns results, but it does not plan, reason, or decide what to do. The agent connected to it does that. An MCP server is closer to a typed, discoverable API than to an autonomous agent.

Is a skill an agent?

No. A Skill is a capability or SOP that an agent loads — instructions plus optional scripts. It does not run on its own or plan autonomously; it executes inside the reasoning loop of an agent you control. Think of it as a recipe the agent picks up, not a worker you dispatch a job to.

What is Agent-as-a-Service?

Agent-as-a-Service (AaaS) is a delivery model where a complete, autonomous agent is sold as an endpoint. You dispatch a goal, the agent plans, gathers what it needs, uses its own tools, and returns a finished result — with the process opaque to you. The interaction is usually asynchronous (dispatch, then poll for the deliverable). Manus, Devin, and Anthropic's Claude Managed Agents are examples.

When should I delegate to an AaaS agent instead of building with MCP or Skills?

Build with MCP and Skills when the workflow is core to your product, needs to be auditable, or is unique to your domain — you keep full control and full risk. Delegate to an Agent-as-a-Service endpoint when the task is commoditized or outside your core and you would rather pay for a finished result than maintain a pipeline. In that trade you accept an opaque process in exchange for the seller absorbing the execution and quality risk.

How is AaaS different from just calling an MCP server?

An MCP call is synchronous and returns one capability's output in seconds, with the caller responsible for planning the overall task and judging quality. An AaaS endpoint is asynchronous and returns a complete deliverable over minutes to hours, with the remote agent doing the planning and the seller claiming responsibility for quality. MCP sells a capability; AaaS sells a result.

Why can't a Skill be sold the way a SaaS product is?

Because of where a Skill sits on the value/risk axis: it hands the buyer a procedure and all of the execution risk, and its copy cost is effectively zero, so its standalone price trends toward zero. Value in the Skill ecosystem accrues to the runtime that executes skills, not to the skill file itself. The full argument is in the pillar guide on what each layer sells.

Pexo Recommend

Agent-as-a-Service for Video: How AI Video Agents Deliver Finished Work

Agent-as-a-Service for Video: How AI Video Agents Deliver Finished Work

Agent-as-a-Service for video: the difference between a single-model video API (a capability — one clip, you assemble the rest) and a video AaaS (a result — a finished, multi-shot, scored film from a goal). Covers the pipeline, auto model selection across Seedance 2.0, Kling 3.0, Veo 3.1, Sora 2, and Runway Gen-4, and running it inside Claude Code, Codex, and OpenClaw.

Finn avatarFinnMay 29, 2026