All articles
AIClaude

Claude Code Skills vs MCP: The Essential 2026 Guide (Plus Hooks and Plugins)

A skill teaches Claude how to do something; MCP connects it to an outside service. What Anthropic's docs say about Claude Code skills vs MCP, hooks and plugins, which one costs more context, and when to use each.

Claude Code skills vs MCP: a pale blue plug in a wall socket with a light green instruction tag tied to its cable
Also available in中文Español

I kept seeing people install five MCP servers for jobs a short skill file would do, then wonder why Claude Code feels slow and their limits run out sooner. So I went through Anthropic’s own Claude Code docs to sort out Claude Code skills vs MCP, plus the two other things people mix them up with: hooks and plugins. Everything below comes from Anthropic’s “Extend Claude Code” page and the pages it links to, checked on October 27, 2026.

Claude Code skills vs MCP: the short answer

A skill teaches Claude how to do something. MCP gives Claude a connection to something outside your computer. Anthropic puts it in one line: “MCP connects Claude to external services. Skills extend what Claude knows, including how to use those services effectively.”

  • Skill: a markdown file called SKILL.md with instructions, a checklist or reference material. You run it with /name, or Claude loads it when your task matches its description.
  • MCP server: a connection to an outside system, such as a database, Slack, Notion or a browser. It hands Claude new tools to call.
  • Hook: a script or request that Claude Code runs on its own at a set moment, for example after every file edit.
  • Plugin: a package that bundles skills, hooks, subagents and MCP servers so you can install the same setup in one step.

So when it comes to Claude Code skills vs MCP, the two don’t compete. If Claude needs to reach your database, that’s MCP. If Claude keeps writing queries the wrong way for your schema, that’s a skill. Anthropic lists “Skill + MCP” as a normal pattern: “MCP connects to your database, a skill documents your schema and query patterns.”

Claude Code skills vs MCP vs hooks vs plugins: what each one is, how it starts and what it is good for

What a Claude Code skill is

To understand Claude Code skills vs MCP, start with the simpler one. A skill is a folder with a SKILL.md file inside. The file has a short YAML header with a name and a description, then the instructions. According to the skills docs, the folder name (or the name field) becomes the command you type, and the description is what Claude reads to decide when to load it.

Where you save it decides where it works:

  • ~/.claude/skills//SKILL.md works in all your projects on that machine.
  • .claude/skills//SKILL.md inside a repo works in that project, and you can commit it so your team gets it too.

Two details I found useful. Old custom commands still work: “A file at .claude/commands/deploy.md and a skill at .claude/skills/deploy/SKILL.md both create /deploy and work the same way.” And Claude Code skills follow the Agent Skills open standard, so the basic format isn’t locked to one tool.

Anthropic splits skills into two kinds. Reference skills hold knowledge Claude uses during the session, like an API style guide. Action skills tell Claude to do a specific job, like a /deploy checklist.

What an MCP server does in Claude Code

The other half of Claude Code skills vs MCP is the protocol. MCP stands for Model Context Protocol. Anthropic calls it a “Protocol for connecting to external services” that provides “Tools and data access”. The Claude Code MCP docs use a remote server like Notion as the first example:

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

By default that command saves the server in local scope, which means only the current project and only for you. It’s stored in ~/.claude.json. Add --scope project and Claude Code writes it to a .mcp.json file at the project root that you can commit for your team. --scope user makes it available in all your projects.

Run /mcp inside Claude Code to see which servers are connected. The point of MCP is that the server handles the connection and the login, so Claude gets ready-made tools instead of you pasting data from a browser tab. Anthropic’s own trigger for adding one is exactly that: “You keep copying data from a browser tab Claude can’t see.”

Claude Code skills vs MCP: which uses more of your limits

This is the part of Claude Code skills vs MCP that matters if you pay for Claude by the month. Everything you add takes up some of Claude’s context, and Anthropic’s cost page says enabled plugins add names and descriptions that “count toward your usage”. Here is how the docs describe each one:

FeatureWhat loadsContext cost (Anthropic’s wording)
CLAUDE.mdThe full file, at session startEvery request
SkillsDescriptions at start, full content when usedLow (descriptions every request)
MCP serversTool names at start, full schemas on demandLow until a tool is used
SubagentsA fresh, separate contextIsolated from main session
HooksNothing, they run outside the chatZero, unless the hook returns output
Claude Code skills vs MCP context cost: when CLAUDE.md, skills, MCP servers, subagents and hooks load

A few things follow from that table:

  • An idle skill costs very little, because only its description sits in context. If you set disable-model-invocation: true in the skill’s header, even the description stays out, and the skill only loads when you type its command.
  • MCP tool search is on by default, so idle MCP tools take little space too. The cost shows up when a tool returns a lot of data. Claude Code warns when one MCP tool result goes over 10,000 tokens and caps it at 25,000 tokens by default. You can change the cap with MAX_MCP_OUTPUT_TOKENS.
  • Anthropic’s own advice on the cost page is to prefer command-line tools such as gh, aws or gcloud when they exist, because they “are still more context-efficient than MCP servers”. It also says to disable servers you aren’t using.
  • On a Pro, Max, Team or Enterprise plan, /usage shows how much of your recent usage went to skills, subagents, plugins and individual MCP servers. I’d check that before buying a bigger plan. My notes on how the Claude 5-hour and weekly limits work explain why this adds up.

To see the actual numbers in your own session, run /context all. It shows how many tokens each loaded MCP tool uses.

Where hooks and plugins fit

Hooks are the one to use when something has to happen every single time. A skill is a request Claude reads and follows, so “outcome can vary”. A hook “fires on its event without Claude deciding”. Anthropic’s example: an instruction like “never edit .env” in a skill is a request, while a PreToolUse hook that blocks the edit is enforcement. Hooks live in ~/.claude/settings.json for all projects or .claude/settings.json for one repo, according to the hooks reference.

Plugins aren’t a fourth kind of feature. The plugins overview calls a plugin “a directory of skills, agents, hooks, MCP servers, or other components” that installs as one unit, with a manifest at .claude-plugin/plugin.json. Plugin skills get a namespace, like /my-plugin:review, so two plugins can’t clash. You browse and install them with /plugin.

One thing to know before installing a pile of them: “An enabled plugin is part of every session, not only the sessions where you use it.” Its MCP servers run alongside each session and its hooks keep firing. Plugins in Anthropic’s official marketplace show a Context cost estimate on the Marketplaces tab, and you can turn one off with /plugin or claude plugin disable without uninstalling it. If you want ideas, I keep a list of the Claude Code mods I’d actually install, and I wrote up how I built my first plugin.

Which one should you use? Claude Code skills vs MCP by situation

Anthropic has a handy list of triggers for when to add each feature. I turned it into this table:

If this keeps happeningAdd this
You type the same prompt to start a taskA skill you call with /name
You paste the same playbook into chat for the third timeA skill
You copy data from a browser tab Claude can’t seeAn MCP server
Claude gets a convention or command wrong twiceA line in CLAUDE.md
You want something to happen every time without askingA hook
A side task floods your chat with output you won’t needA subagent
A second repository needs the same setupA plugin
Claude Code skills vs MCP: Anthropic's triggers for adding a skill, MCP server, hook, subagent or plugin

My own rule for Claude Code skills vs MCP: start with a skill if the problem is that Claude doesn’t know how you work. Add an MCP server only when Claude truly needs live data or actions in another system, and check first whether a CLI already does the job. Keep CLAUDE.md short; Anthropic suggests under 200 lines and moving reference material into skills.

If you’re just getting started, my Claude Code install guide covers setup, and my post on effort levels explains the other big lever on how much each request costs.

Where each one lives

Claude Code skills vs MCP file locations: SKILL.md folders, ~/.claude.json, .mcp.json and settings.json
WhatWhere or how
Personal skill~/.claude/skills//SKILL.md
Project skill.claude/skills//SKILL.md
MCP server, local (default)claude mcp add, saved in ~/.claude.json
MCP server, shared with team--scope project, saved in .mcp.json
Hooks~/.claude/settings.json or .claude/settings.json
Plugin.claude-plugin/plugin.json, installed with /plugin

FAQ

Is a Claude Code skill the same as a slash command?

Close. Custom commands have been merged into skills. A file in .claude/commands/ and a skill in .claude/skills/ both create the same /command. Skills add a folder for extra files, control over who can call them, and automatic loading.

Can a skill use an MCP server?

Yes, and that’s the combination Anthropic recommends. The MCP server gives Claude the tools, and the skill explains how your team wants them used, such as your database schema or your Slack message format.

Claude Code skills vs MCP: which makes my plan run out faster?

Both add some tokens. An unused skill adds its description to each request, and an unused MCP server adds its tool names. The bigger cost is what gets pulled in when they run. /usage on paid plans shows the split, and my Claude Pro vs Max comparison helps if you’re deciding whether to upgrade.

Do I need a plugin to use skills or MCP?

No. The plugins page says skills, subagents, hooks and MCP servers “all work on their own, without a plugin”. A plugin is only worth it when you want to share or reuse a whole setup.

If you’re still choosing a tool, my Claude Code vs Codex comparison covers which one is worth paying for.

Leave a thought

Your email address will not be published.