Skills vs MCP vs Plugins: Which One Do You Need?
Claude Code has three distinct extension systems — Skills, MCP Servers, and Plugins. They solve different problems, install differently, and combine in specific ways. Here is the definitive breakdown.
The Three Extension Systems
When developers start customizing Claude Code, they quickly encounter three different terms that all sound like "extensions": Skills, MCP Servers, and Plugins. The confusion is understandable — all three change how Claude Code behaves — but they operate at completely different levels of the stack and serve entirely different purposes.
Getting this distinction right matters. Choose the wrong system and you'll spend time building something that doesn't do what you need, or miss a capability that would have saved you hours.
"Skills change what Claude knows. MCP servers change what Claude can do. Plugins change how the Claude Code CLI itself works. Different layers, different jobs."
What Are Skills?
A Skill is a SKILL.md file — a plain Markdown document containing instructions, rules, examples, and context that Claude reads before responding to relevant prompts. Skills live in your project's .agents/skills/ directory.
Skills are instruction sets. They tell Claude how to think about a domain: what format to use for commit messages, how to structure test files, what conventions your team follows, what tone to use in documentation. A skill does not give Claude access to external tools — it shapes Claude's reasoning and output.
Skills are installed per-project (or globally), version-controlled in Git, and portable. They require zero infrastructure — no servers, no API keys, no ports. See all available skills at the skills directory.
npx skills add user/smart-git-commit # Installs to .agents/skills/smart-git-commit/SKILL.md
What Are MCP Servers?
An MCP Server is an external process that Claude Code connects to via the Model Context Protocol. Each server exposes a set of "tools" — named functions with typed parameters — that Claude can call during a conversation. MCP servers give Claude the ability to take action in the real world.
Where skills change what Claude knows, MCP servers change what Claude can do. The Filesystem MCP server lets Claude read and write files. The GitHub MCP server lets Claude create pull requests. The Playwright MCP server lets Claude control a browser. MCP servers require a running process — they're actual programs, not just text files.
MCP servers are connected with claude mcp add and persist in your Claude Code configuration. See all available servers at the MCP server directory.
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem . # Now Claude can read/write files in your project
What Are Plugins?
Plugins are code extensions for the Claude Code CLI itself. They run at the CLI layer, not the model layer. A plugin might add a new slash command, modify how Claude Code handles input or output, integrate with an IDE, or add a new mode to the CLI. Plugins are written in JavaScript or TypeScript and installed via npm.
Plugins are the most powerful and the most complex of the three systems. They require more setup, more technical knowledge, and can interact with the CLI in ways that skills and MCP servers cannot. Most developers will never need to write a plugin, but they're essential for teams building custom Claude Code tooling. Browse plugins at the plugins directory.
npm install -g @company/claude-code-plugin-name # Adds new commands or behaviors to the Claude Code CLI
Side-by-Side Comparison
| Attribute | Skills | MCP Servers | Plugins |
|---|---|---|---|
| Scope | Changes Claude's reasoning and output style | Gives Claude access to external tools and data | Extends the Claude Code CLI itself |
| Install method | npx skills add or copy SKILL.md manually |
claude mcp add command |
npm install -g |
| Persistent | Yes — lives in .agents/ folder in your project | Yes — stored in Claude Code config | Yes — global npm installation |
| File access | No — instructions only | Yes — via Filesystem MCP server | Yes — full system access |
| Network access | No | Yes — servers can make HTTP requests | Yes — full network access |
| Best for | Team conventions, workflows, output formatting | Tool integrations, data access, browser control | CLI customization, IDE integration, new commands |
When to Use Skills
Use a skill when you want Claude to consistently follow a specific pattern, convention, or workflow — and you do not need Claude to access external systems to do it. Good candidates for skills include:
- Commit message formatting rules for your team
- Code review checklists and standards
- Documentation templates and style guides
- Testing patterns and naming conventions
- PR description templates
Skills shine when the value is in the instructions, not the infrastructure. They are fast to create, easy to share, and require nothing more than a text editor.
When to Use MCP Servers
Use an MCP server when Claude needs to access data or systems that are not in the conversation context. If Claude needs to read a file, query a database, call an API, browse the web, or interact with GitHub, you need an MCP server. Skills cannot do these things.
The most common first MCP server is Filesystem — it lets Claude actually explore your codebase rather than relying only on what you paste. From there, add GitHub for repository operations and a database server for data work.
When to Use Plugins
Use a plugin when you need to change how the Claude Code CLI itself behaves. This is the right choice for teams building custom tooling on top of Claude Code: adding new slash commands, building IDE integrations, creating specialized output modes, or hooking into the CLI's event system.
Most individual developers will find that skills plus MCP servers cover everything they need. Plugins become relevant when you're building Claude Code infrastructure for an engineering team.
How They Work Together
The three systems are designed to complement each other, not compete. A typical advanced developer setup might include:
- 2-3 skills for git workflows, code review, and documentation
- 2-3 MCP servers for filesystem access, GitHub integration, and a database
- 0-1 plugins for team-specific CLI customizations
Claude will automatically use the right resource for each task. When you ask it to write a commit message, it applies your git skill. When you ask it to explore the codebase, it calls the filesystem MCP server. When a plugin has added a new slash command, that command becomes available immediately.
Verdict: Start with Skills and Filesystem MCP
If you are new to extending Claude Code, the most impactful starting combination is one or two skills (for your most repetitive workflows) and the Filesystem MCP server (so Claude can actually read your code). That alone dramatically improves every coding session.
Add more MCP servers as you discover specific needs. Consider plugins only if you're building Claude Code tooling for a team. The right extension for most tasks is a skill — they are the fastest to create and the easiest to iterate on.