Claude skills vs MCP servers
A skill tells an agent how to do a job. An MCP server lets the agent reach something outside itself: a database, an API, a browser, a calendar. One is know-how. The other is a connection. Most setups that work well use both.
This guide compares them in Claude Code and Codex, with facts from each vendor's docs read on October 19, 2026.
The short answer
| Skill | MCP server | |
|---|---|---|
| What it is | A folder with a SKILL.md file of instructions, plus optional scripts and reference files | A program that speaks the Model Context Protocol and exposes tools, data, or prompts |
| What it adds | Steps, rules, checklists, examples | Actions and live data the agent can call |
| Runs as | Text the agent reads. Scripts run with the agent's own tools | A separate process or a remote HTTP endpoint |
| Context cost | Name and description at start. Full text loads when used | Tool names and schemas. Claude Code can search tools on demand |
| Where it lives | .claude/skills/ or .agents/skills/ |
MCP config (claude mcp add, ~/.codex/config.toml) |
| Works across agents | Yes, through the open Agent Skills format | Yes, MCP is an open protocol |
What a skill is
The >Agent Skills spec defines a skill as a directory with a SKILL.md file. The file has YAML front matter with a name and a description, then Markdown instructions. Optional folders hold scripts, reference docs, and templates.
Skills load in steps. The spec says the name and description load at startup for every skill, around 100 tokens each. The full SKILL.md body loads when the agent decides to use it. Files in scripts/ or references/ load when a task needs them. The >Claude Code docs say this is why a long skill costs few tokens until you call it.
Good skill jobs: a code review checklist, a release procedure, a team style guide, a "how we write migrations" note, a test-first loop.
What an MCP server is
The >MCP docs call MCP "an open-source standard for connecting AI applications to external systems." A server exposes tools the agent can call, such as "query this database" or "create a ticket." Claude, ChatGPT, VS Code, and Cursor all support it.
Good MCP jobs: read your issue tracker, query production logs, drive a browser, search docs that change each day, call a paid API with your key.
An MCP server runs code with your access. Review what a server can do before you add it.
Where plugins fit
A Claude Code plugin is a package. The >plugins docs describe it as "a directory of skills, agents, hooks, MCP servers, or other components" that loads as one unit. The docs say skills and MCP servers both work without a plugin. Use a plugin when you want to ship several pieces together or get updates from a marketplace.
Codex works the same way. Its >skills docs say plugins can bundle one or more skills with MCP server settings.
So "plugins vs skills vs MCP" is not a three-way choice. A plugin is a box. Skills and MCP servers are what you put in it.
When to pick which
- The agent knows how but lacks access. Add an MCP server. Example: it can write SQL, but it cannot see your database.
- The agent has access but does the task wrong. Add a skill. Example: it can run your deploy script, but it skips the smoke test.
- Both. Add the MCP server, then write a skill that says when and how to call its tools. Codex lets a skill declare an MCP tool it depends on in
agents/openai.yaml. - You keep pasting the same prompt. That is a skill. The Claude Code docs say to make one when "you keep pasting the same instructions, checklist, or multi-step procedure into chat."
Context cost
Both add tokens on every turn, so install what you use.
- Skills. Claude Code lists every skill name and description in context. The docs say the listing budget is 1% of the model's context window. When it overflows, Claude Code drops descriptions for the skills you call least. Run
/skill-doctorto see what each skill costs. - Codex skills. The Codex docs say the first skills list uses up to 2% of the context window, or 8,000 characters when the window size is unknown.
- MCP. Each server adds tool definitions. The Claude Code plugin docs point to MCP tool search for how much a server adds per turn.
A worked example
SkillsPicker is an MCP server that recommends skills. Add it to Claude Code:
claude mcp add --transport http skillspicker https://skillspicker.com/mcp
Then ask "find agent skills for this project." The agent reads your project files, sends tag names (not code) to the recommend_skills tool, and gets back a match count and 2 picks, or the full list when we have few skills for your stack. You install the picks as skills. Here the MCP server gives access to a database of skills. The skills it finds give the know-how. See the MCP server page or run the free scan in a browser.
FAQ
Are Claude skills better than MCP? They do different jobs. Skills hold instructions. MCP servers give access to tools and data. Pick by what the agent is missing.
Can a skill call an MCP server?
A skill can tell the agent to use an MCP tool that you have set up. In Codex, a skill can list an MCP server as a dependency in agents/openai.yaml.
Do skills work outside Claude?
Yes. Claude Code and Codex both read the open SKILL.md format. Codex loads skills from .agents/skills/. Claude Code loads them from .claude/skills/.
Is a plugin the same as a skill? No. A plugin is a package that can hold skills, agents, hooks, and MCP servers.
Checked 2026-10-19. Prices and policies change. Confirm on the source before you buy.
Sources
- https://code.claude.com/docs/en/skills
- https://code.claude.com/docs/en/plugins
- https://modelcontextprotocol.io/docs/getting-started/intro
- https://agentskills.io/specification
- https://developers.openai.com/codex/skills
- https://skillspicker.com/mcp