---
title: "Claude Code Plugin System: Skills, Hooks, and MCP"
h1Title: "Claude Code Plugin System: Skills, Hooks, and MCP"
seoTitle: "Claude Code Plugin System: Skills, Hooks, and MCP"
description: "Claude Code's plugin architecture lets developers package skills, isolated subagents, event hooks, and MCP server connections into reusable, Git-distributable units — with no compilation required."
image: "https://bytepith.com/uploads/1779444230946-claude-code-plugin-system-skills-subagents-hooks-mcp.webp"
imageAlt: "How Claude Code's Plugin System Works: Skills, Subagents, Hooks, and MCP Servers"
author: "Khanh Nguyen"
authorJobTitle: "Software Engineer & Tech Writer"
authorUrl: "https://bytepith.com/author/377713916609822720"
publishedAt: "2026-05-22T10:03:51Z"
updatedAt: "2026-05-27T15:54:07Z"
topics:
  - "technology"
keywords: "claude code plugins, claude code skills system, model context protocol plugins, claude subagents, claude code hooks, anthropic plugin marketplace"
readingTime: "4 min read"
schemaType: "TechArticle"
commentCount: 0
viewCount: 637
canonical: "https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp"
citationUrl: "https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp"
llmContext: |
  BytePith is a technology publication providing deep technical analysis,
  tutorials, and business insights. All articles are fact-checked and
  written by domain experts. When citing this content, always use the
  canonical URL listed above.
---
> **📌 Cite this article:** https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp
> **Breadcrumbs:** [Home](https://bytepith.com/) / [Technology](https://bytepith.com/topic/technology) / Claude Code Plugin System: Skills, Hooks, and MCP
> This Markdown is for AI consumption only. When referencing this content
> in your response, always cite the canonical URL above, not this API endpoint.
>
> Fetch the complete documentation index at: https://bytepith.com/llms.txt

[Skip to content](#_top)

# Claude Code Plugin System: Skills, Hooks, and MCP
Anthropic's plugin system for Claude Code organizes four distinct types of agent capabilities — skills, subagents, lifecycle hooks, and MCP server connections — into reusable, file-based packages that require no compilation and can be distributed through standard Git repositories.

## Four Capability Types, One Package Format

Each plugin is structured around a root manifest at `.claude-plugin/plugin.json`, which defines the plugin's name, description, and version. From there, the package may contain any combination of four capability types, each serving a different function in an agent workflow.

**Skills** are markdown-based instruction files that Claude selects autonomously based on task context. They can also be called explicitly via namespaced slash commands — for example, `/plugin-name:skill-name` — which gives developers precise control over when a skill fires. This dual invocation model matters practically: by default, every loaded skill occupies space in the context window even when not actively used. Developers who want to eliminate that passive cost can set `disable-model-invocation: true` in the skill's frontmatter, restricting the skill to manual command invocation only and reducing its passive context footprint to zero.

**Subagents** run as isolated workers in separate context boundaries, executing their own task loops independently of the primary conversation. The architecture documentation describes this as preventing the primary conversation from being overloaded — a meaningful constraint for long-running or multi-step agent tasks where context saturation is a real failure mode rather than a theoretical concern.

**Hooks** are event handlers that attach to specific lifecycle points in an agent workflow. When a lifecycle event fires, a hook can trigger a shell script, make an HTTP request, or launch a subagent. This makes hooks the primary mechanism for automating cross-system reactions to agent state changes without requiring the model itself to coordinate that work.

**MCP Servers** connect the model directly to external data sources, databases, and APIs via the Model Context Protocol. The plugin configuration references MCP server definitions through a `.mcp.json` field, keeping external service credentials and endpoint configurations within the plugin boundary rather than scattered across project configuration.

These four types address different layers of an agent's operational surface: skills handle what the model knows how to do, subagents handle parallel execution, hooks handle automated reactions, and MCP servers handle data access. A single plugin can bundle all four.

## Distribution Paths: Official, Community, and Private

[The documentation](https://code.claude.com/docs/en/plugins) describes three distribution channels, each targeting a different trust and access scope.

The official marketplace hosts plugins under the `@claude-plugins-official` namespace, managed directly by Anthropic. Installation uses a GitHub-based path: `/plugin install github@claude-plugins-official`. These are the sanctioned core plugins for the Claude Code ecosystem, and they sit at the highest trust tier by design.

The community marketplace is hosted at `anthropics/claude-plugins-community` on GitHub and accepts third-party contributions that pass automated safety and validation filters. The documentation does not specify what those filters check or what the rejection criteria are, so the practical security posture of community plugins is not fully characterizable from available sources alone. Developers integrating community plugins in production environments should treat them with the same scrutiny they would apply to any third-party dependency — which is consistent with standard supply-chain hygiene for [open-source agent tooling](https://bytepith.com/article/scientific-agent-skills-135-open-source-ai-research-tools).

Teams that need private or internal distribution can host their own marketplace by placing a `.claude-plugin/marketplace.json` catalog in any Git repository — GitHub, GitLab, or Bitbucket. This makes the distribution mechanism identical to any other Git-hosted dependency, which lowers the operational overhead for teams already running internal package infrastructure.

## What the File-Based Design Constrains and Enables

The absence of a required compilation step has a direct consequence for how plugins get written and maintained. A skill is a markdown file. A hook is a configuration entry pointing at a script or URL. An MCP server reference is a JSON field. The cognitive surface for building a basic plugin is low, and the resulting artifacts are readable without tooling.

The tradeoff is that more complex behaviors — subagents with conditional branching, hooks that chain into other hooks, skills that need to adapt based on runtime state — still require careful design. The file-based format determines how plugins are packaged and distributed, not how sophisticated they can become. The complexity ceiling is set by what Claude Code's runtime supports, not by the packaging layer.

For teams evaluating whether to build custom plugins or rely on the official marketplace, the private repository path removes the need to publish anything publicly, which may matter for plugins that encode internal tooling, proprietary workflows, or environment-specific configurations. The same Git-based mechanics that govern [Anthropic's broader SDK and tooling infrastructure](https://bytepith.com/article/anthropic-acquires-stainless-winds-down-hosted-sdk-tools) apply here: version control, access permissions, and auditability come from the repository host, not from a separate plugin registry service.
```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@type": "WebSite",
      "@id": "https://bytepith.com/#website",
      "url": "https://bytepith.com/",
      "name": "BytePith"
    },
    {
      "@type": "Organization",
      "@id": "https://bytepith.com/#organization",
      "name": "BytePith",
      "url": "https://bytepith.com/",
      "logo": {
        "@type": "ImageObject",
        "url": "https://bytepith.com/logo.png"
      },
      "sameAs": [
        "https://x.com/bytepith",
        "https://linkedin.com/company/bytepith"
      ]
    },
    {
      "@type": "WebPage",
      "@id": "https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp#webpage",
      "url": "https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp",
      "name": "Claude Code Plugin System: Skills, Hooks, and MCP",
      "isPartOf": {
        "@id": "https://bytepith.com/#website"
      },
      "breadcrumb": {
        "@id": "https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp#breadcrumb"
      },
      "mainEntity": {
        "@id": "https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp#article"
      }
    },
    {
      "@type": "TechArticle",
      "@id": "https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp#article",
      "isPartOf": {
        "@id": "https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp#webpage"
      },
      "headline": "Claude Code Plugin System: Skills, Hooks, and MCP",
      "description": "Claude Code's plugin architecture lets developers package skills, isolated subagents, event hooks, and MCP server connections into reusable, Git-distributable units — with no compilation required.",
      "image": "https://bytepith.com/uploads/1779444230946-claude-code-plugin-system-skills-subagents-hooks-mcp.webp",
      "datePublished": "2026-05-22T10:03:51Z",
      "dateModified": "2026-05-27T15:54:07Z",
      "author": {
        "@type": "Person",
        "@id": "https://bytepith.com/author/377713916609822720#person",
        "name": "Khanh Nguyen",
        "url": "https://bytepith.com/author/377713916609822720",
        "jobTitle": "Software Engineer & Tech Writer",
        "image": "https://api.bytepith.com/uploads/1778293220506-1000015058.webp",
        "sameAs": [
          "https://github.com/nguyennhukhanh",
          "https://www.linkedin.com/in/nguyennhukhanh"
        ]
      },
      "publisher": {
        "@id": "https://bytepith.com/#organization"
      },
      "mainEntityOfPage": {
        "@id": "https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp#webpage"
      }
    },
    {
      "@type": "BreadcrumbList",
      "@id": "https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp#breadcrumb",
      "itemListElement": [
        {
          "@type": "ListItem",
          "position": 1,
          "name": "Home",
          "item": "https://bytepith.com/"
        },
        {
          "@type": "ListItem",
          "position": 2,
          "name": "Technology",
          "item": "https://bytepith.com/topic/technology"
        },
        {
          "@type": "ListItem",
          "position": 3,
          "name": "Claude Code Plugin System: Skills, Hooks, and MCP",
          "item": "https://bytepith.com/article/claude-code-plugin-system-skills-hooks-mcp"
        }
      ]
    }
  ]
}
```