Concept 5 min

Skill vs Plugin vs MCP — how they differ

Published · Updated

There are three ways to extend Claude Code — Skill, MCP, and Plugin. The names sound similar but the roles differ, and they nest into each other, so a quick map helps. This guide explains what each one is and how they relate.

Skill — teach Claude one task

A Skill is a small markdown file that tells Claude “in this kind of situation, do it this way.”

For example, a file at ~/.claude/skills/explain-code/SKILL.md makes the directory name become a slash command — /explain-code. You can run /explain-code directly, or Claude will apply it automatically when a question like “how does this code work?” comes up.

Examples:

  • Built-in slash commands like /simplify, /debug, and /loop are all Skills
  • Turn your repeated tasks (code explanation, meeting notes, commit messages) into Skills so you don’t have to repeat the same instructions

Remember: Skill = “a file that defines one task” + “that file becomes a slash command”.

MCP — a bridge from Claude to external services

If a Skill extends what Claude does, MCP extends what Claude can reach. It’s a standard protocol that lets Claude talk to external services like Notion, Slack, or GitHub directly to read and write data.

Examples:

  • Connect the Notion MCP and “find yesterday’s meeting notes” is handled in your Notion workspace
  • Connect the Slack MCP and “summarize yesterday’s activity in #engineering” works straight from Claude

You add MCP servers with claude mcp add. Many require OAuth.

Remember: MCP = “a bridge between Claude and an external service”.

Plugin — a distribution unit that bundles multiple extensions

A single Skill or a single MCP is small. A Plugin is the unit that bundles related extensions and ships/installs them together. One box can contain:

  • Multiple Skills (slash commands)
  • Automation hooks (scripts that run on certain events)
  • Agents (specialized assistant AIs)
  • MCP server config (external service connections)
  • Your own tools, templates, and rules

Plugins are distributed through marketplaces — a shared distribution channel. One install activates everything inside at once, and you can update or remove the whole bundle with one command, which makes Plugins ideal for standardizing workflows across a team or community.

Examples:

  • Superpowers — a methodology bundle for brainstorming, TDD, debugging, and code review
  • Commit Commands — automation for commit, push, and PR creation
  • Slack Plugin — Slack MCP + slash commands for composing messages + channel automation hooks

Remember: Plugin = “a box that holds several kinds of extensions, distributed via a marketplace”.

How the three relate

The three aren’t separate islands — they nest:

Plugin
 ├── Skill 1  (slash command)
 ├── Skill 2  (slash command)
 ├── Automation hooks
 ├── Agents
 └── MCP config (external service connection)
  • Skill — the smallest unit, one slash command
  • MCP — connects Claude to outside services; can stand alone or live inside a Plugin
  • Plugin — the unit that boxes all of the above for distribution and install

Frequently Asked Questions

What is a Skill?

A small file that teaches Claude how to do one thing. You can call it as a slash command (e.g. `/explain-code`), or Claude may apply it automatically when the situation fits.

What is MCP?

A bridge that connects Claude to external services like Slack, Notion, or GitHub. Once connected, Claude can read from and write to those services directly inside the chat.

What is a Plugin?

A package that bundles several extensions — Skills, MCP servers, automation hooks, agents — into one install/distribute unit on the marketplace. Think of it as a 'feature bundle' rather than a single tool.

How are Skills and Plugins different?

A Skill is a single file for one task. A Plugin is a package that bundles multiple Skills along with other automation. A Plugin typically contains Skills, hooks, agents, and MCP config together.

Where should I start?

Install a popular plugin like Superpowers from the marketplace — that's the fastest way to feel the value. Add an MCP when you need data from an external service, and write your own Skill when you want to standardize one of your repeated tasks.