Claude Code plugins, mods, skills and MCP servers compared

A Claude Code plugin is a folder that Claude Code installs as one unit. It can hold skills, subagents, settings hooks, MCP servers and a hooks module. A plugin with a hooks module is called a mod.

Updated

Side by side

What it isWhat it changesYou write
SkillA SKILL.md file of instructions Claude loads when it needs themWhat Claude knows and how it worksMarkdown
SubagentA definition of a helper Claude can hand work toWho does a task, with which toolsMarkdown
Settings hookA command, HTTP request or prompt that runs on an eventWhether a tool call or prompt goes ahead; extra context for ClaudeA script and a JSON entry
MCP serverA separate process or service that gives Claude toolsWhich tools Claude hasA server, in any language
ModFunctions Claude Code runs inside its own processTool calls, prompts, commands, and what the screen showsJavaScript or TypeScript

A mod is the only one of these that can draw: a pane, a band above the prompt, a status line entry, a toast.

Do you need a plugin at all?

Skills, subagents, hooks and MCP servers all work without a plugin. A skill you save in ~/.claude/skills/ already works in every project on your machine. Package things as a plugin when you want to share them, install them in one go, or ship updates through a marketplace. A mod is the exception: its hooks module only loads as part of a plugin.

Which one fits

  • You keep pasting the same instructions into chat: write a skill.
  • Claude needs to reach a database, an API or a ticket tracker: add an MCP server.
  • You want to block git push --force or log every command with a script you have: add a settings hook. The hooks guide shows how.
  • You want a live view of your token usage, a new slash command, or a check that asks you before a risky command runs: use a mod. Browse them by category.

Every plugin costs a little context

An enabled plugin is part of every session, even when you don't use it. For each skill, agent and command Claude can call on its own, Claude sees its name and description on every turn, and the plugin's MCP servers start with the session. Turn off the plugins you stopped using in /plugin.