Claude Code Extensibility: Skills vs MCP vs Plugins Explained

The definitive guide to extending Claude Code. Understand when to use Skills, MCP servers, Plugins, Hooks, and Slash Commands—with real examples and recommendations.

January 23, 2026 · 1 min read

TL;DR

Skills = procedural knowledge (30-50 tokens each, loaded on-demand)
MCP = external tool connections (can use 50k+ tokens)
Plugins = shareable bundles of everything
Hooks = automated actions at specific moments
Slash Commands = prompt shortcuts

Most developers need: 2-3 MCP servers (GitHub, Filesystem, one domain-specific) + a few custom Skills for their workflow.

The Five Extension Types

Claude Code ships with multiple ways to extend its capabilities. Each solves a different problem:

TypePurposeToken CostBest For
SkillsTeach procedures30-50 tokens/skillDomain expertise
MCPConnect toolsVaries (can be 50k+)External integrations
PluginsBundle & shareSum of contentsTeam standardization
HooksAutomate actionsMinimalWorkflow triggers
CommandsPrompt shortcutsMinimalFrequent operations

The confusion comes from overlap. A Plugin can contain Skills. A Skill can use MCP tools. Slash Commands were merged into Skills. Understanding when to reach for each one requires understanding what problem you're solving.

Skills: Token-Efficient Expertise

Skills teach Claude how to perform tasks. They're folders containing a SKILL.md file with instructions, plus optional scripts and resources.

How Skills Work

Skills use progressive disclosure to stay efficient:

  1. Metadata scan: Claude loads only names and descriptions (~30-50 tokens per skill)
  2. Relevance match: If a skill matches the current task, full instructions load
  3. Resource loading: Scripts and files load only when executed

This means you can have 100+ skills installed without impacting context. Claude loads what it needs, when it needs it.

Skill Structure

# .claude/skills/code-review/SKILL.md

---
name: code-review
description: Security-focused code review following OWASP guidelines
---

When reviewing code:
1. Check for injection vulnerabilities (SQL, XSS, command)
2. Verify authentication and authorization patterns
3. Look for sensitive data exposure
4. Check error handling for information leakage

Flag issues with severity levels: CRITICAL, HIGH, MEDIUM, LOW

When to Use Skills

  • You have repeatable procedures that Claude should follow
  • Multiple conversations need the same expertise
  • You want domain knowledge without burning context
  • The knowledge is about how to do something, not access to something

Skills Are Cross-Platform

Skills work across Claude.ai, Claude Code, and the API. The same skill file runs everywhere without modification. They've been adopted as the Agent Skills standard by multiple AI coding tools including Codex and Gemini CLI.

Built-in Skills

Claude Code ships with skills for common file formats: docx (Word documents), pdf (extraction and annotation), pptx (slides), and xlsx (spreadsheets with formulas).

MCP: External Tool Connections

The Model Context Protocol (MCP) is an open standard for connecting LLMs to external tools and data. It's how Claude accesses GitHub, databases, browsers, and APIs.

How MCP Works

MCP servers expose tools through a standardized interface. When you configure an MCP server, Claude gains access to its capabilities as callable functions.

MCP Configuration

// ~/.claude/settings.json
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_TOKEN": "your-token" }
    },
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"]
    }
  }
}

The Token Problem

MCP tool definitions consume context. A five-server setup with 58 tools can use 55,000+ tokens before any conversation starts. GitHub's official MCP alone uses tens of thousands.

Tool Search Reduces MCP Token Usage by 85%

Anthropic's Tool Search feature discovers tools on-demand instead of loading all definitions upfront. Claude only sees tools it needs for the current task. Internal testing showed accuracy improvements from 49% to 74% on Opus 4 when working with large tool libraries.

Essential MCP Servers

Rather than installing everything, choose 2-3 servers that match your workflow:

  • GitHub: Repository management, PRs, issues, commits
  • Filesystem: Secure local file operations with permission controls
  • Context7: Automatic documentation lookup for any library
  • Playwright: Browser automation using accessibility snapshots
  • PostgreSQL: Natural language database queries
  • Sequential Thinking: Structured problem-solving for complex tasks

When to Use MCP

  • You need Claude to access external systems
  • Real-time data is required (not just instructions)
  • The tool needs to execute actions (not just provide guidance)
  • You're integrating with third-party services

Plugins: Shareable Bundles

Plugins package multiple customizations into distributable units. They bundle slash commands, subagents, MCP configurations, hooks, and skills into a single installable package.

Plugin Structure

Plugin Directory

my-plugin/
├── .claude-plugin/
│   └── plugin.json    # Metadata and configuration
├── commands/          # Slash commands
├── agents/            # Specialized subagents
├── skills/            # Agent skills
├── hooks/             # Event handlers
├── .mcp.json          # MCP server configs
└── README.md

Installing Plugins

Plugins install directly in Claude Code:

Plugin Commands

# Install from GitHub
/plugin install github.com/username/my-plugin

# List installed plugins
/plugin list

# Disable a plugin
/plugin disable my-plugin

When to Use Plugins

  • You want to share a complete workflow with teammates
  • Multiple customizations work together as a unit
  • You're distributing through a marketplace
  • Team standardization is the goal

Plugin Marketplaces

Several community marketplaces have emerged. Dan Ávila's marketplace offers DevOps automation and testing plugins. Seth Hobson curates 80+ specialized subagents. The official plugin format continues evolving as more extension points are added.

Hooks: Automated Actions

Hooks execute shell commands at specific moments in Claude's workflow. They're deterministic—when the trigger fires, the hook runs.

Available Hook Points

  • PreToolUse: Runs before tool calls, can block them
  • PostToolUse: Runs after tool execution
  • PermissionRequest: Runs when permission dialogs appear
  • SessionStart: Runs at the beginning of each session

Hook Configuration

// .claude/settings.local.json
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit",
        "command": "npm run lint --fix $FILE"
      }
    ],
    "PostToolUse": [
      {
        "matcher": "Write",
        "command": "./scripts/notify-slack.sh 'File created: $FILE'"
      }
    ]
  }
}

When to Use Hooks

  • Enforcing quality gates (lint before edit, test after write)
  • Notifications and logging
  • Automatic formatting or validation
  • Integration with CI/CD pipelines

Hooks vs Skills

Hooks are for actions that must happen. Skills are for guidance that should be followed. Use hooks for hard requirements; use skills for best practices.

Slash Commands: Prompt Shortcuts

Slash commands are templates for frequently-used prompts. They've been merged into the Skills system—a file at .claude/commands/review.md creates /review.

Slash Command

# .claude/commands/pr.md

Create a pull request for the current branch.

1. Run git diff against main
2. Summarize all changes
3. Generate a PR title and description
4. Use gh cli to create the PR

Commands vs Skills

The distinction has blurred. Both create /name shortcuts. The difference:

  • Commands: Simple prompt templates, always user-invoked
  • Skills: Can include scripts, resources, and auto-trigger based on context

For simple shortcuts, use commands. For anything more complex, use skills.

Head-to-Head Comparison

ScenarioBest ChoiceWhy
Access GitHub reposMCPNeed external connectivity
Follow coding standardsSkillProcedural knowledge, low tokens
Share team workflowPluginBundles everything together
Auto-lint on saveHookDeterministic action at specific moment
Quick PR commandCommandSimple prompt shortcut
Query databaseMCPExternal tool access
Code review processSkillMulti-step procedure
Notify Slack on deployHookAutomated action

Token Efficiency Comparison

ExtensionBase CostLoaded CostNotes
Skill30-50 tokens<5k tokensProgressive loading
MCP Server1-50k tokensSameAll tools loaded upfront*
PluginSum of partsVariesDepends on contents
HookMinimalMinimalShell execution
CommandMinimalTemplate sizeUser-invoked

*Tool Search feature reduces MCP overhead by ~85% through on-demand loading.

Frequently Asked Questions

What is the difference between Claude Code Skills and MCP?

Skills teach Claude how to perform tasks through instructions and scripts, using only 30-50 tokens per skill until needed. MCP (Model Context Protocol) connects Claude to external tools and data sources like GitHub, databases, and APIs. Skills are for procedural knowledge; MCP is for external connectivity. They work together—a Skill can use MCP tools.

How many tokens do MCP servers use?

MCP servers can consume significant context. A typical five-server setup with 58 tools uses approximately 55,000 tokens before any conversation starts. Some servers like GitHub's official MCP use tens of thousands of tokens alone. Anthropic's Tool Search feature reduces this by 85% through on-demand tool discovery.

Can I use Skills in Cursor or other editors?

Skills have been adopted as the Agent Skills standard beyond Claude Code. They work with Codex, Gemini CLI, and other compatible tools. The same SKILL.md file runs across platforms. MCP is also cross-platform—many editors support MCP servers.

Should I use Skills or MCP for my workflow?

Use MCP when you need Claude to access external systems (GitHub, databases, APIs, browsers). Use Skills when you need Claude to know how to do something. Most workflows benefit from both: MCP for connectivity, Skills for methodology.

How do I share my setup with teammates?

Create a Plugin. Plugins bundle commands, skills, hooks, and MCP configurations into a single installable package. Host it on GitHub and teammates can install with /plugin install github.com/you/plugin. Commit shared configurations to your repo's .claude/ directory.

Speed Up Your Claude Code Workflow

Our MCP server adds FastApply for 35% faster edits and WarpGrep for 40% fewer search tokens. One install, three capabilities.