Claude Code Skills vs MCP Servers: What's the Difference and When to Use Each (2026)
You open Claude Code and see two ways to extend it: Skills and MCP Servers. The docs call them "complementary" but you just want to know: which one do I use for what?
Here's the one-sentence answer:
> Skills = the playbook. They tell Claude how to do your team's work.
> MCP Servers = the toolkit. They give Claude access to external systems.
Let's make that concrete.
The 30-Second Test
Ask yourself two questions about your task:
| Question | Answer → Use |
|---|---|
| "Does this require a repeatable process or tribal knowledge?" | Skill |
| "Does this require connecting to an external service (API, database, browser)?" | MCP Server |
| "Both?" | Both (they're designed to work together) |
Skills: The Playbook Layer
A Skill is a folder with a SKILL.md file. That's it. No runtime, no dependencies, no servers.
``yaml
.claude/skills/code-review/SKILL.md
name: code-review
description: Use when the user asks for a "code review" or "PR review".
Review Checklist
1. Does this change have tests?
2. Are there SQL injection risks in any query?
3. Is error handling present on all external calls?
4. Can this be done with half the lines?
`
What happens when Claude loads this:
- Level 1 (always in context): The name + description — ~30 tokens. Claude knows this skill exists.
- Level 2 (loaded on trigger): The body of SKILL.md — only loaded when you ask for a code review.
- Level 3 (loaded on demand): Any files in
references/ or scripts/ — Claude reads them as needed.
This means 100 skills cost about as much context as 1 MCP server with 20 tools.
Skills are perfect for:
- Code review checklists (your team's standards)
- Deployment runbooks ("check these 5 things before merging")
- Writing style guides ("we use snake_case, no classes, type hints required")
- Commit message formats, PR templates, changelog generators
- Domain knowledge ("the
subscriptions table is append-only")
Skills are NOT for:
- Reading GitHub issues (needs API access)
- Querying databases (needs a connection)
- Sending Slack messages (needs webhook/API)
- Anything that requires live data from outside Claude's session
MCP Servers: The Connection Layer
An MCP (Model Context Protocol) server is a running process that exposes tools, resources, and prompts to Claude. It's the bridge between Claude and the outside world.
`json
// .claude/settings.json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"]
}
}
}
`
MCP Servers are perfect for:
- GitHub operations (read PRs, create issues, check CI status)
- Database queries (PostgreSQL, SQLite, etc.)
- Browser automation (Playwright for testing, web scraping)
- Internal APIs (your company's REST/GraphQL endpoints)
- Third-party services (Slack, Jira, Notion, Linear)
MCP Servers are NOT for:
- Encoding team conventions (use a Skill instead)
- Documenting processes (a Skill is 100x cheaper in tokens)
- Checkpoint-style instructions ("before deploying, verify X")
The token cost is real: A typical setup with 3 MCP servers and 30+ tools can consume 15,000-50,000 tokens before you type a single prompt. Anthropic's Tool Search feature reduces this by ~85%, but it's still the largest consumer of your context window.
Side by Side
| | Skills | MCP Servers |
|---|---|---|
| What it is | Markdown files in a folder | A running process (Node/Python) |
| Token cost | ~30-50 tokens per skill | 5,000-50,000 tokens for tool list |
| External access | None | Full (APIs, databases, browsers) |
| Development time | 5-30 minutes | Hours to days |
| Dependencies | Zero | Node.js or Python runtime |
| Version control | Just
git push | Configuration + server code |
| Sharing | Copy a folder, or publish to AGI Store | Share config JSON + install instructions |
| Can it do X without Y? | Process without capability | Capability without process |
The Real Pattern: Skills Orchestrate, MCP Executes
The most powerful setups combine both. Here's a real workflow that uses Skills for process and MCP for access:
Automated PR Review Pipeline:
`
1. [MCP: GitHub] → Fetches the PR diff, commits, and CI status
2. [Skill: Security] → Checks for: exposed secrets, SQL injection, unsafe eval()
3. [Skill: Style] → Verifies: naming conventions, file structure, no console.log
4. [Skill: Testing] → Confirms: new code has tests, coverage didn't drop
5. [MCP: GitHub] → Posts review summary as a PR comment
`
The Skills define what to check. The MCP server provides the PR to check and where to post results.
How to Choose: Decision Flowchart
`
I want to extend Claude Code with...
│
├─ A repeatable checklist or process?
│ └─ SKILL. Write a SKILL.md file.
│
├─ Access to GitHub/Jira/Database/Slack?
│ └─ MCP SERVER. Install and configure one.
│
├─ A process that also needs external data?
│ └─ BOTH. Skill for the process, MCP for the data.
│
├─ Something I want to share with my team?
│ ├─ If it's just instructions → Skill (drop a folder)
│ └─ If it needs a running service → MCP + a shared config
│
└─ Not sure?
└─ Start with a Skill. It's free, takes 5 minutes, and has zero token overhead.
If you later need external data, add an MCP server and reference it from the Skill.
`
Common Mistake: Using MCP When a Skill Would Do
We see this pattern constantly:
> Developer writes a 200-line Python MCP server that... reads a checklist and formats output.
That should be a 20-line
SKILL.md` file. The MCP server burns 100x more tokens for the same result.
Rule of thumb: If your "tool" doesn't make an HTTP request or read from a database, it's a Skill.
Common Mistake: Using a Skill When You Need Live Data
The opposite failure mode:
> Skill with instructions like "check the CI dashboard at ci.company.com and see if it's green."
Claude can't browse the web from within a Skill (unless you have a browser MCP). If the step requires looking at something external, you need MCP.
The Token Budget Reality
Here's what a typical Claude Code session looks like, context-wise:
| What's in Context | Tokens |
|---|---|
| System prompt | ~2,000 |
| CLAUDE.md | ~500 |
| 10 Skills (names + descriptions only) | ~300 |
| 1 MCP server with 15 tools | ~8,000 |
| Your prompt + conversation | ~5,000 |
| Total | ~15,800 |
Add a second MCP server and you're at ~24,000 tokens — before you've done anything useful.
This is why the Skill system exists: it gives you the "team knowledge" layer without the token penalty of MCP.
The Bottom Line
| Your Goal | Build This |
|---|---|
| "I want Claude to follow our team's PR checklist" | Skill |
| "I want Claude to read PRs from GitHub" | MCP Server |
| "I want Claude to review PRs using our checklist" | Skill + MCP Server |
| "I want Claude to know our database schema" | Skill (document it in SKILL.md) |
| "I want Claude to query our database" | MCP Server |
| "I want to share my workflow with others" | Publish a Skill to AGI Store |
Skills and MCP aren't competitors. They're two halves of the same idea: Skills bring the knowledge, MCP brings the reach. Use both, but start with the one that's free.
Ready to build your first Skill? Check out our Complete Guide to Claude Code Skills. Looking for Skills to install? Browse the AGI Store marketplace.