MCP

Skills vs MCP servers: which one does the job

MCP servers connect an AI agent to outside systems; skills teach it how to do the work. What each costs in context, how safe each is, and when to use both.

Orchestrated by Jon Phillips

Researched and written by Claude

Published 10 min read

On this page

An MCP server gives an AI agent access to something outside it: a database, a payment account, a browser, a website's admin. A skill gives the agent know-how: a folder of written instructions, and sometimes scripts, for doing a particular job well. If the hard part of a task is reaching a system, you want an MCP server. If the hard part is knowing what to do once you're there, you want a skill. Most real work needs both.

Anthropic's own one-line version, from the Claude Code features overview: "MCP connects Claude to external services. Skills extend what Claude knows, including how to use those services effectively."

This guide covers what each one is, what each costs in the agent's context, what each can do to your machine, and four jobs from real web work showing which one does the job. It's written for Claude Code, with notes for Codex, Cursor and Gemini CLI, which support both. Every number and quote comes from the vendors' documentation as of September 30, 2026, linked where it's used.

What is an MCP server?

MCP, the Model Context Protocol, is "an open-source standard for connecting AI applications to external systems," in the words of its own documentation. An MCP server is a small program that sits between the agent and one system, such as Stripe, Notion or your database, and offers the agent a set of tools for it: search these records, create that invoice, run this query.

A server can offer three kinds of thing (server concepts):

  • Tools: actions the agent decides to take, which "can write to databases, call external APIs, modify files, or trigger other logic."
  • Resources: read-only data, "such as file contents, database schemas, or API documentation."
  • Prompts: instruction templates a person picks to start a task.

In Claude Code you add one with claude mcp add. A server that runs on the vendor's side is one line (MCP guide):

bash
claude mcp add --transport http notion https://mcp.notion.com/mcp

By default a server is added for you, in the current project only. Add --scope project to write it to a .mcp.json file that your team shares through git, or --scope user to have it in every project. Type /mcp in a session to see what's connected.

What is a skill?

A skill is a folder with a SKILL.md file in it: a name, a one-line description, and instructions. It can also hold reference files and scripts. Claude Code reads each skill's description at the start of a session, and loads the full instructions only when a task matches, or when you type / and its name yourself.

Skills follow an open standard, so one skill folder works in Claude Code, Codex, Cursor, Gemini CLI and dozens of other tools. The standard calls the loading pattern "progressive disclosure": at startup the agent loads "only the name and description of each available skill, just enough to know when it might be relevant."

For installing, writing and vetting skills, see the Claude Code skills guide, and the Codex skills guide for Codex.

What is the difference between MCP and skills?

MCP serverSkill
What it isA program that connects the agent to a systemInstructions, and sometimes scripts, in a folder
What it gives the agentNew tools and live dataKnowledge and a way of working
Where it runsA process on your machine, or a service on the vendor'sNowhere; the agent reads it
Handles logins and keysYes, the server holds themNo
Who usually writes itThe vendor of the systemYou, your team, or someone who's done the job
Anthropic's examples"Slack integration, database queries, browser control""Code review checklist, deploy workflow, API style guide"

The simplest test is the one in the first paragraph. An agent with a Supabase MCP server can run any query you like, but it doesn't know which tables your app treats as the source of truth. An agent with a skill that explains your schema knows exactly which query to write, but it can't run one. Put the two together and it can do the job properly.

What does each cost in context?

Both are designed to cost little until they're used, and Anthropic publishes the numbers.

A skill costs about 100 tokens while it waits. Anthropic's skills overview puts each skill's name and description at "~100 tokens per Skill," loaded at startup. The instructions, "under 5k tokens," load only when the skill is used. Bundled scripts cost nothing until they run, and then only their output enters the conversation. So twenty installed skills cost roughly 2,000 tokens before any of them is used.

An MCP server costs its tool names while it waits. Claude Code's tool search is on by default, and "only tool names and server instructions load at session start," with each tool's full definition loaded when Claude needs it (MCP guide). Anthropic doesn't publish a per-tool token figure. What it does publish is a cap: each tool description and each server's instructions are cut off at 2,048 characters.

Two recent changes are worth knowing:

  • Until September 25, 2026, /context undercounted MCP servers. Claude Code 2.1.283 "Fixed /context not counting MCP server instructions." If you judged a server's cost before then, check again.
  • A skill that loads everything at once is expensive. In August, Anthropic cut its own built-in claude-api skill "from ~200k+ tokens to ~25k by loading reference docs on demand." A skill's reference files should load when they're needed, not all at once.

To see what's actually loaded, run /context. Claude Code's /skill-doctor shows which skills go unused and what they cost, so you can remove them.

Which is safer, a skill or an MCP server?

Neither is safe by default. Both can run code on your machine, in different ways.

An MCP server that runs locally is a program running as you. Anthropic's plugin security page says "Claude Code runs hooks and MCP servers outside the sandbox," so the server's own code isn't limited by Claude Code's permission rules; only the tool calls Claude makes are. A server also holds your API key for the system it connects to. Anthropic "does not security-audit or manage any MCP server" (security), so use ones from vendors you trust, or write your own.

A skill is instructions, but in Claude Code it can also run commands. A line starting with !`command` in a skill "runs shell commands before the skill content is sent to Claude" (skills). And a skill's allowed-tools field pre-approves tools for its turn, which "Workspace trust doesn't gate." Anthropic's warning on the skills overview: "a malicious Skill can direct Claude to invoke tools or execute code in ways that don't match the Skill's stated purpose."

Two situations need extra care:

  • A cloned repository can bring both. Claude Code asks before using servers from a project's .mcp.json in an interactive session. In a claude -p run it "loads project-scoped servers without asking," and project skills never need an approval of their own. Read a repository's .mcp.json and .claude/skills/ folder before scripting Claude Code over it.
  • A skill can tell the agent to use an MCP server's tools. A bad skill paired with a server that can write to your store is worse than either alone.

The skills guide's vetting checklist covers what to read before you install a skill, and the same approach works for a server.

When should you use a skill, an MCP server, or both?

Four jobs from the client sites I build, and what each one needed.

1. A pre-launch checklist: a skill alone. Before a site goes live, check every page at phone and desktop widths, a clean console, no text cut off, contrast in dark and light mode. There's no outside system to reach: the agent already has a browser tool and a shell. What it lacks is the procedure and the judgment about what counts as done. That's a skill, and it's what our Spotter Round pack is.

2. Querying a Supabase database: both. This is Anthropic's own example of the pairing: "MCP connects to your database, a skill documents your schema and query patterns." The MCP server runs the queries. The skill knows your conventions: that a price is looked up by a key rather than stored, say, or which table decides what a customer has paid for. The App Stack Pack is that skill for Supabase and Stripe.

3. Changing a WordPress site: both. A WordPress MCP server lets the agent read and write pages, templates and settings on the live site; nothing else can. But the server can't know that a published header template with no conditions goes live on every page at once. That's a rule the agent needs before its first write, and it's what the WordPress Pack carries.

4. Deploying to Cloudflare Pages: usually a skill. Cloudflare offers MCP servers, but the deploy itself is a command-line job (wrangler), and the agent already has a shell. What goes wrong is knowledge: a pages.dev copy of the site that search engines can index unless you say otherwise, or a cached page left pointing at files that no longer exist. A skill covers that. Add Cloudflare's MCP server when you want the agent reading live account data, such as analytics or DNS.

The pattern: reach for an MCP server when the agent can't get to something, and a skill when it can get there but doesn't know the way. If a good command-line tool already exists and the agent has a shell, a skill that explains the tool often does the job with no server at all.

How do skills and MCP servers work together?

In Claude Code, a skill refers to an MCP server's tools by name in its instructions: "use the supabase server's execute_sql tool, and never on production." There's no formal link between the two. The skill only works if the server is connected, so say so in the skill's instructions, and say what to do if it isn't.

Plugins bundle both. A Claude Code plugin can carry skills, MCP servers and hooks together, installed in one step. That's convenient, and it means one install can start a program on your machine, so read what a plugin contains first.

Codex makes the link formal. A Codex skill can declare the MCP server it needs in an agents/openai.yaml file (build skills):

agents/openai.yaml
dependencies:
  tools:
    - type: "mcp"
      value: "openaiDeveloperDocs"
      description: "OpenAI Docs MCP server"
      transport: "streamable_http"
      url: "https://developers.openai.com/mcp"

Do Codex, Cursor and Gemini CLI support both?

Yes. All four read skills in the open standard's format, and all four connect to MCP servers:

ToolSkills folder in a projectMCP servers are set in
Claude Code.claude/skills/.mcp.json or claude mcp add
Codex.agents/skills/config.toml, or codex mcp add
Cursor.agents/skills/ or .cursor/skills/mcp.json
Gemini CLI.agents/skills/ or .gemini/skills/settings.json

Cursor also reads skills from Claude Code's and Codex's folders (Cursor skills), so one copy in .agents/skills/ covers three of the four tools. Claude Code needs its own copy in .claude/skills/, or a link to the shared one.

Are skills replacing MCP?

No. They work at different layers. A skill can't give an agent access to a system it can't already reach, and an MCP server can't teach an agent your team's way of working. What has changed is that some early MCP servers did little more than wrap a command-line tool, and for those, a skill that explains the tool now often does the job with less in the context window.

Our packs work with the MCP servers you already use

Our skill packs are the know-how half. They don't replace your Supabase, WordPress or Stripe connection; they tell the agent how to use it without breaking anything, and how to prove the work before calling it done. The All-Access Bundle has every pack, and the verification skill is free if you'd like to try one first.

Frequently asked questions

What is the difference between MCP and skills?

An MCP server connects an agent to an outside system and gives it tools for that system. A skill is a folder of instructions that teaches the agent how to do a job. One provides access, the other the know-how to use it.

Can skills use MCP tools?

Yes. A skill's instructions can tell the agent to use a connected server's tools. In Codex, a skill can also declare the server it depends on.

Which uses more context?

Both cost little until used: about 100 tokens per skill for its description, and tool names for each MCP server, with the full instructions or tool definitions loaded on demand. Run /context in Claude Code to see your own numbers.

Do I need an MCP server to use skills?

No. Many skills need only what the agent already has, such as files, a shell and a browser.

Is an MCP server just an API?

It sits in front of one. The server turns a system's API into tools the agent can discover and call, and handles the login for it.

Every claim checked against its source on

From Heavy Artillery Skills

All-Access Bundle

Every pack of skills and checks for Claude Code, Codex and Cursor: web work, agents, email, WordPress, web apps and ad tracking, plus every pack added later.

More guides