Claude Code プラグイン完全ガイド2026——スキル・フック・MCPを1パッケージにする「プラグイン」の正体と実践的な作り方

Claude Code プラグイン完全ガイド2026——スキル・フック・MCPを1パッケージにする「プラグイン」の正体と実践的な作り方

Claude Codeのプラグイン機能を徹底解説。スタンドアロンスキルとプラグインの違い、plugin.jsonの書き方、公式マーケットプレイスの使い方、チームへの展開方法まで。2026年公式ドキュメント準拠のエンジニア向けガイド。

エンジニアのゆとです。

「Claude Codeのプラグインって、MCPと何が違うの?」「スキルを作ったけど、プラグインにしないといけない?」という疑問をよく見かける。この記事はその答えを出すのが目的だ。

結論から言うと、**プラグインはスキル・フック・MCP・エージェントを1つのインストール可能なユニットにまとめる「パッケージ形式」**で、スキルやMCPそのものとは別の概念だ。個人プロジェクトで使うだけなら.claude/のスタンドアロン設定で十分で、プラグイン形式にする必要はない。

チームで共有したい、マーケットプレイスで配布したい、複数プロジェクトで使い回したい——そういうときに「プラグイン化」という選択肢が出てくる。


プラグインとスタンドアロン設定はどう違うか

Claude Codeには「カスタムスキルを追加する方法」が2つある。

項目スタンドアロン(.claude/プラグイン
スキル名/hello/my-plugin:hello
設置場所.claude/skills/{plugin-dir}/skills/
共有方法手動コピー/plugin install or マーケットプレイス
バージョン管理なしplugin.json で管理
複数プロジェクト毎回コピーが必要一度インストールすれば全体で使える
向いているケース個人ワークフロー・実験・1プロジェクト専用チーム配布・複数プロジェクト・コミュニティ公開

スタンドアロンのスキルはスキル名に名前空間がない(/helloのように短い)。プラグイン内のスキルは/my-plugin:helloのように名前空間付きになる。これは複数プラグインが同名スキルを持ったときの衝突を防ぐ仕組みだ。

個人で使うだけなら.claude/にそのまま書けばいい。「チームのリポジトリにセットアップドキュメントとして含めたい」「バージョンを管理して更新を配信したい」という要件が出てきたときにプラグイン化を検討する、という流れが現実的だ。


プラグインの内部構造

プラグインの最小構成はこれだけ:

my-plugin/
└── .claude-plugin/
    └── plugin.json

plugin.json さえあればプラグインとして認識される。実際の機能(スキル・フック・MCPなど)は別ディレクトリに置く:

my-plugin/
├── .claude-plugin/
│   └── plugin.json       ← マニフェスト(唯一 .claude-plugin/ に入る)
├── skills/               ← カスタムスキル
│   └── code-review/
│       └── SKILL.md
├── agents/               ← カスタムエージェント
├── hooks/                ← フック設定
│   └── hooks.json
├── .mcp.json             ← MCPサーバー設定
├── .lsp.json             ← LSPサーバー設定(言語インテリジェンス)
├── monitors/             ← バックグラウンドモニター
│   └── monitors.json
├── bin/                  ← プラグイン有効中に PATH に追加される実行可能ファイル
└── settings.json         ← プラグイン有効時に適用されるデフォルト設定

よくある間違いskills/hooks/.claude-plugin/ の中に入れてしまうこと。.claude-plugin/ には plugin.json だけが入る。スキル・フック・エージェントはプラグインのルートレベルに置く。

plugin.json の書き方

{
  "name": "my-plugin",
  "description": "コードレビューと品質チェックを自動化するプラグイン",
  "version": "1.0.0",
  "author": {
    "name": "yuto"
  },
  "homepage": "https://github.com/yuto/my-plugin",
  "repository": "https://github.com/yuto/my-plugin",
  "license": "MIT"
}

name はスキルの名前空間になる(/my-plugin:code-review のように)。version を省略してGit配布する場合、コミットSHAがバージョンとして使われ、プッシュするたびに「新バージョン」として扱われる。明示的にバージョン管理したい場合は version を書いておく。


公式マーケットプレイスを使う

利用可能なマーケットプレイス

Claude Codeには2つの公開マーケットプレイスがある:

claude-plugins-official:Anthropicが管理するキュレーションプラグイン集。Claude Codeをインストールすれば自動で利用可能になる。GitHub統合・Jira/Confluence・Figma・TypeScript/Python/Rust LSPなど2026年5月時点で55+のプラグインが含まれる。

claude-community:サードパーティが提出してレビュー後に登録されるコミュニティプール。デフォルトでは利用不可で、追加が必要:

/plugin marketplace add anthropics/claude-plugins-community

追加後は @claude-community としてインストールできる。

プラグインのインストール

# UIから
/plugin

# CLIから
claude plugin install github-integration    # 公式マーケットプレイスから
claude plugin install @claude-community/my-plugin  # コミュニティから

# GitHub URLから直接
claude plugin install github.com/username/repo

スコープを指定してインストールできる:

claude plugin install github-integration --scope user     # 全プロジェクトで使う
claude plugin install github-integration --scope project  # このプロジェクトのみ

--scope project でインストールすると .claude/plugins.json にリストされ、チームメンバーも同じプラグインが使えるようになる。

マーケットプレイスの信頼性を評価する

Official(最も安全):Anthropicが審査・管理。CI自動チェック+人手レビュー。更新もAnthropicが制御。 Community(要確認):レビューはあるが、コードの内容まで完全に担保されてはいない。インストール前にリポジトリのソースを確認する習慣をつける。 プライベート(最も制御可能):チーム内のリポジトリをマーケットプレイスとして使う方式。社内ポリシーに合わせて管理できる。外部マーケットプレイスに依存しない。 URLダイレクト(注意が必要)claude plugin install github.com/unknown/plugin のような直接インストールはコードの確認なしに実行されるリスクがある。信頼できるソースからのみ使う。

MCPと同様に、プラグインもシェルコマンドを実行できる(hooks経由)。提供元が不明なプラグインをインストールするのはnpm installで信頼できないパッケージを入れるのと同じリスクがある。


実際にプラグインを1本作る

コードレビュープラグインを例に、ゼロから作る流れを示す。

最速の方法:claude plugin init

claude plugin init code-review-plugin

これだけで ~/.claude/skills/code-review-plugin/plugin.json と雛形 SKILL.md が生成される。次のセッションから自動的に読み込まれる。

手動で作る場合

1. ディレクトリ構造を作る:

mkdir -p code-review-plugin/.claude-plugin
mkdir -p code-review-plugin/skills/review
mkdir -p code-review-plugin/hooks

2. マニフェストを書く:

# code-review-plugin/.claude-plugin/plugin.json
{
  "name": "code-review-plugin",
  "description": "PRレビューのポイントをチェックするプラグイン",
  "version": "1.0.0"
}

3. スキルを書く:

# code-review-plugin/skills/review/SKILL.md
---
description: コードをレビューし、品質・セキュリティ・テストカバレッジの観点でフィードバックを出す。PRレビューやコード品質チェックに使う。
---

コードレビューの際は以下の観点でチェックしてください:

1. **コードの構成と可読性**
   - 変数名・関数名が意図を表しているか
   - 1関数が1つの責務を持っているか

2. **エラーハンドリング**
   - 例外処理が漏れていないか
   - エラーメッセージが意味のある内容か

3. **セキュリティ**
   - SQLインジェクション・XSS等の脆弱性がないか
   - 認証・認可の漏れがないか

4. **テストカバレッジ**
   - 境界値・異常系のテストがあるか
   - モックが適切に使われているか

問題点を見つけた場合は、ファイル名と行番号を明示して具体的な改善案を提示してください。

4. フックを追加する(任意):

ファイル保存後に自動でlintチェックを走らせる例:

# code-review-plugin/hooks/hooks.json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_input.file_path' | xargs npx eslint --fix 2>/dev/null || true"
          }
        ]
      }
    ]
  }
}

5. ローカルでテストする:

claude --plugin-dir ./code-review-plugin

起動後に /code-review-plugin:review でスキルが使えることを確認する。変更を加えたら /reload-plugins で再読み込み(再起動不要)。


既存の .claude/ 設定をプラグイン化する

.claude/skills/.claude/commands/ にすでに蓄積した設定がある場合、プラグイン化は3ステップで完了する:

# 1. プラグインディレクトリを作る
mkdir -p my-plugin/.claude-plugin

# 2. マニフェストを作る
cat > my-plugin/.claude-plugin/plugin.json << 'EOF'
{
  "name": "my-plugin",
  "description": "既存設定をプラグイン化",
  "version": "1.0.0"
}
EOF

# 3. 既存のファイルをコピー
cp -r .claude/skills my-plugin/
cp -r .claude/commands my-plugin/  # commandsがある場合
# フックは .claude/settings.json の "hooks" セクションを hooks/hooks.json に移行

移行後は claude --plugin-dir ./my-plugin でテストし、問題なければ .claude/ の元ファイルを削除する。プラグイン版が優先されるので重複しても動くが、どちらが使われているか混乱するので削除しておく方がいい。

Claude Code Skills 完全ガイド 2026年5月版 — 公式仕様・自作の作り方・おすすめ10選を実装視点で
Claude Code Skills 完全ガイド 2026年5月版 — 公式仕様・自作の作り方・おすすめ10選を実装視点でClaude Code Skills の公式仕様(SKILL.md frontmatter全項目・配置の4階層・動的コンテキスト注入)を整理し、最小構成から実用構成までの自作コード例とフリーランスエンジニア向けおすすめ10選を実装視点で網羅。2026年5月時点の最新仕様で解説。読む →

バックグラウンドモニターの活用

プラグインが持てるユニークな機能の一つが「バックグラウンドモニター」だ。プラグインが有効な間、ログやファイルの変更を監視して、イベントが発生したときにClaudeへ通知を送る。

# monitors/monitors.json
[
  {
    "name": "error-log",
    "command": "tail -F ./logs/error.log",
    "description": "アプリケーションエラーログの監視"
  },
  {
    "name": "test-results",
    "command": "fswatch -x ./test/results/",
    "description": "テスト結果ファイルの変更監視"
  }
]

command のstdoutの各行がClaudeへの通知として届く。「テストが失敗したらすぐに知りたい」「エラーログにWARNINGが出たらフォロー」といった自動化に使える。


よくあるエラーと対処法

/plugin コマンドが表示されない

Claude Codeのバージョンが古い。npm update -g @anthropic-ai/claude-code でアップデートする。プラグイン機能は比較的新しい機能(2026年初頭追加)なので、古いバージョンには存在しない。

スキルが /plugin:skill-name で呼べない

ディレクトリ構造を確認する。skills/.claude-plugin/ の中に入っていないか?正しくはプラグインルート直下に skills/ を置く。/reload-plugins を実行してみる。

フックが動かない

hooks/hooks.jsoncommand がshellコマンドとして正しいか確認する。jqコマンドが入っていない環境では jq -r ... が失敗する。--plugin-dir でテストするときにCLIのパスがhooks内で解決されているか確認する。

プラグインのマーケットプレイスへの追加が反映されない

コミュニティマーケットプレイスは毎晩同期される。承認後すぐには表示されないことがある。anthropics/claude-plugins-community のGitHub上の marketplace.json でプラグイン名を検索して、承認されているか確認する。


MCP・スキル・プラグインの整理

混乱しやすいので整理しておく。

機能役割使い方
スキルClaudeに「/コマンド」を追加する.claude/skills/ or プラグイン内
MCPClaudeに外部ツール連携能力を追加する.mcp.json or プラグイン内の .mcp.json
フックツール使用前後にシェルコマンドを実行する.claude/settings.json or プラグイン内
プラグインスキル・MCP・フック・エージェントをひとまとめにする配布形式マーケットプレイス or --plugin-dir

プラグインは「入れ物」だ。中身はスキル・MCP・フックのいずれか(または全部)で構成される。MCPサーバーだけを配布したければプラグイン形式にする必要は必ずしもなく、.mcp.json を直接共有してもいい。プラグイン形式にする理由は「インストールを1コマンドで完結させたい」「バージョン管理したい」という場合だ。

Claude Code MCP設定ガイド — サーバーの追加から実用5選まで【2026年版】
Claude Code MCP設定ガイド — サーバーの追加から実用5選まで【2026年版】Claude Code MCPの設定方法をゼロから解説。MCPサーバーの追加・削除・スコープ管理、Filesystem・GitHub・Brave Search・Puppeteer・自作サーバーの実用5選、よくあるエラーと対処法まで網羅。読む →

コミュニティプラグインを送信する

作ったプラグインをコミュニティに公開したい場合のフロー:

1. バリデーション:

claude plugin validate

これでプラグインの構造・マニフェスト・権限要求が正しいかチェックできる。送信前に必ず実行する。

2. 送信:

  • Claude.ai から: claude.ai/settings/plugins/submit
  • Console から: platform.claude.com/plugins/submit

審査パイプラインは自動チェック+人手レビュー。承認されると anthropics/claude-plugins-community リポジトリの marketplace.json にピン留めされる。

公式マーケットプレイス(claude-plugins-official)はAnthropicが独自に選定するため、申請フォームは存在しない。


まとめ

プラグインについての要点:

  • プラグイン = スキル・フック・MCP・エージェントを「1パッケージ」にする配布形式
  • 個人利用・1プロジェクト専用 → スタンドアロン(.claude/)で十分
  • チーム共有・マーケットプレイス配布 → プラグイン形式へ
  • plugin.json はメタデータのみ。機能はルートレベルのディレクトリに置く(.claude-plugin/ 内に入れない)
  • 公式マーケットプレイス55+本が既にある。まずは claude plugin install で試す

自分で作る前にマーケットプレイスを一度眺めてみると、既製品で解決できるケースも多い。

Claude Code Hooks 完全ガイド2026:PreToolUse/PostToolUse/Stopの実践設定と活用パターン
Claude Code Hooks 完全ガイド2026:PreToolUse/PostToolUse/Stopの実践設定と活用パターンClaude Code Hooksの全イベント種別・設定方法・exit codeの動作を体系的に解説。危険コマンドブロック・linting自動化・デスクトップ通知など実際に使える設定例を多数収録。読む →
← 記事一覧に戻る