Courses
Claude Codeは多くの開発タスクを標準機能でこなせますが、チームごとに既定ではカバーしきれない固有のワークフローがあります。たとえば、自社の推奨構成でコンポーネントをスキャフォールドするカスタムコマンド、コミット前の自動リンティング、常用フレームワークのドキュメントへのクイックアクセスなどが欲しくなるかもしれません。
Claude Codeのプラグインを使えば、これらの機能を自分で追加できます。コミュニティ製プラグインをインストールすることも、自作することも可能です。
Anthropicのエージェント型コーディングツールが初めての方は、まず Claude CodeガイドやClaudeモデル入門コースから始めてください。本チュートリアルは、Claude Codeがインストール済みで、基本的な操作を一通り使ったことがある前提です。
最後まで読めば、次のことがわかります。
- Anthropicのディレクトリやコミュニティソースからプラグインを見つけてインストールする方法
- プラグインに含められる3種類のコンポーネントの理解
- 用途に応じた適切なタイプの選び方
- 自作プラグインの構築と共有
Anthropicの最新モデルの機能概要については、Claude Sonnet 5のガイドもご覧ください。
要点まとめ(TL;DR)
-
Claude Codeプラグインは、skills・MCPサーバー・hooksをひとつにまとめ、
claude plugin addでインストールできる共有可能なパッケージです -
Skillsはオンデマンドで読み込み(各~100トークン)、MCPサーバーはツール定義を事前読み込み(Tool Searchで削減)、hooksはシェルスクリプトとして実行されトークンコストはゼロ
-
知識やワークフローにはskills、外部APIアクセスにはMCPサーバー、毎回必ず動かしたい規則にはhooksを使用
-
プラグインは3ファイルで作成:
.claude-plugin/plugin.jsonのマニフェスト、skills/ディレクトリ、SKILL.mdの指示ファイル
Claude Codeプラグインとは?
プラグインは、複数のClaude Code拡張をまとめ、簡単に共有・インストールできるようにしたパッケージです。マシン間やチームメイト間で設定ファイルを手作業でコピーする代わりに、すべてをひとつのプラグインにまとめて配布できます。
プラグインには次の3種類のコンポーネントを含められます。
-
Skills:
/skill-nameで呼び出すカスタムコマンド、または関連性があるときにClaudeが自動で使うコンテキスト対応プロンプト -
MCPサーバー:SlackやGitHubなどの外部サービスやAPIへの接続を提供し、通常は得られないデータにアクセスさせる
-
Hooks:特定のイベント(ファイル編集前やコミット後など)で自動的に実行されるシェルスクリプト
プラグインはこれらのうち1つだけを含むことも、連携する複数を組み合わせることもできます。たとえば「デプロイ」プラグインなら、手動デプロイ用の/deployスキル、ステージング環境の状態を確認するMCPサーバー、そしてデプロイコマンド実行前にテストを走らせるフックを含められます。
どのコンポーネントを含むかはplugin.jsonマニフェストで定義します。プラグイン名、バージョン、作者などのメタデータに加え、インストールすべきskills・MCPサーバー・hooksを指定します。プラグインをインストールすると、Claude Codeはこのマニフェストを読み取り、各コンポーネントを正しい場所にセットアップします。
このパッケージ形式のおかげで、Claude Code拡張の内部的なファイル構造を理解していなくても問題ありません。プラグインをインストールすれば、必要なものがすべて所定の場所に展開されます。
Claude Codeプラグインの探し方とインストール
多くのプラグインは主に2つの場所にあります。Anthropicの公式ディレクトリclaude.com/pluginsには、Anthropic製、検証済みのコミュニティ提供、人気のサードパーティ拡張が掲載されています。各一覧には、プラグインの構成要素、互換性情報、インストール手順が記載されています。
2つ目の入手先はGitHubです。
- anthropics/claude-plugins-official - 既定の組み込みプラグインレジストリ。
- anthropics/claude-plugins-community - コミュニティ投稿の連携を厳選したカタログ。
- anthropics/knowledge-work-plugins - ナレッジワーカー向けに設計されたプラグイン。
使いたいプラグインが見つかったら、インストールコマンドは入手先によって異なります。
# From the official directory
claude plugin add @anthropic/deploy-helper
# From a GitHub repository
claude plugin add github:username/repo-name
# From a local directory (useful during development)
claude plugin add ./my-plugin
いくつかインストールしたら、一覧管理したくなるはずです。pluginコマンドで、一覧表示・更新・削除を行えます。
# List all installed plugins
claude plugin list
# Update a specific plugin to the latest version
claude plugin update @anthropic/deploy-helper
# Update all plugins
claude plugin update --all
# Remove a plugin
claude plugin remove @anthropic/deploy-helper
インストール時に決める事項のひとつがスコープです。プラグインは2か所に配置できます。ユーザースコープは~/.claude/plugins/で、すべてのプロジェクトで動作します。プロジェクトスコープは特定のリポジトリ内の.claude/plugins/です。
既定はユーザースコープです。現在のプロジェクトだけにインストールするには--projectフラグを付けます。
claude plugin add @anthropic/deploy-helper --project
プロジェクトスコープのプラグインは、拡張が特定のコードベースに紐づく場合に適しています。
自社のデプロイ手順を知っているプラグインはそのプロジェクトに、個人の好みに合わせてコードを整形するプラグインはユーザーレベルに置くのが自然です。両方のスコープに存在する場合はプロジェクト版が優先され、チームはプロジェクト固有の設定を強制しつつ、開発者は他の場所で個人プラグインを有効のままにできます。
最適なClaude Codeプラグインタイプの選び方
3種類のコンポーネントは目的が異なり、コンテキストウィンドウのトークン消費も異なります。これらのトレードオフを理解すると、用途ごとに最適な選択ができます。
Skills vs MCPサーバー:トークンのトレードオフ
MCPサーバーは、セッション開始時にすべてのツール定義をコンテキストウィンドウに事前読み込みします。各ツールには名前・説明・完全なパラメータスキーマが必要で、通常はツールあたり100〜300トークンかかります。サーバー5つの構成だと、文字を1つも入力しないうちに約55,000トークンを消費します。
- GitHub:35ツール
- Slack:11ツール
- Sentry:5ツール
- Grafana:5ツール
- Splunk:2ツール
7つ以上のサーバーで67,000トークン超を消費する構成も報告されており、会話開始前に20万トークンのうち3分の1が失われる計算です。
Skillsは段階的開示という別のアプローチをとります。セッション開始時にClaudeが見るのは、YAMLフロントマターにあるスキル名と1行説明のみで、スキルあたり約100トークンです。
完全な指示は、そのスキルが現在のタスクに関連するとClaudeが判断したときにのみ読み込まれます。参照ファイルも必要になったときだけ読み込みます。スクリプトはコンテキストウィンドウに入りません。外部で実行され、出力だけが戻ります。

Anthropicは2025年後半にTool Searchでこの不均衡に対処しました。
すべてのツール定義を事前読み込みする代わりに、ツール説明が利用可能なコンテキストの10%を超えそうな場合、Claude Codeはオンデマンド読み込みに切り替えます。
大規模なツール群では、内部テストでコンテキスト使用量が約134,000トークンから約5,000トークンまで低下。ツール選択の精度も向上し、Opus 4は49%から74%、Opus 4.5は79.5%から88.1%へとMCP評価で改善しました。
両者の使い分けは次の通りです。
Skillsは、Claudeに判断を伴う知識やワークフローへのアクセスを与えたいときに最適です。たとえばチームのコードレビュー・チェックリストを記述したスキルは、レビュー時に読み込まれ、各項目をどう適用するかはコンテキストに基づきClaudeが決めます。
また、重い計算をスクリプトで行う必要がある処理にもSkillsは適しています。スクリプトのコードはコンテキストウィンドウの外に留まるためです。
MCPサーバーは、Slackメッセージ、GitHubのPR、データベースクエリなど、外部サービスからリアルタイムデータが必要な場合に最適です。複数のAIエージェントが同じツールを必要とする場合や、監査ログ・明示的な権限などエンタープライズ機能が必要な場合にも適しています。
多くの構成では両者を組み合わせます。Skillsが自然言語の指示で「どのように・いつ」を担い、MCPサーバーが実際のAPI呼び出しを担当します。
| Skills | MCP Servers | Hooks | |
|---|---|---|---|
| トリガー | /skill-name または自動 |
セッション内のツールとして利用可能 | ライフサイクルイベントで自動 |
| トークンコスト | スキルごとに約100(遅延読み込み) | ツールごとに100–300(事前読み込み;Tool Searchで削減) | ゼロ |
| Claudeが判断? | はい | はい | いいえ(決定論的) |
| 最適用途 | 知識、ワークフロー、チーム標準 | 外部API、リアルタイムデータ、マルチエージェント構成 | リンティング、テストゲート、保護パス |
| 例 | コードレビュー・チェックリスト | GitHub PR管理 | テスト合格までコミットをブロック |
インストールしておきたい人気のClaude Codeスキル
- Superpowers(当サイトのチュートリアル):TDD、デバッグ、構造化プランニングの本番運用ワークフロー20件以上
- frontend-design:凡庸なデザインを避け、大胆なデザイン判断を促す指示
- mcp-builder:外部API統合のためのMCPサーバー作成ガイド
- webapp-testing:UI検証のためにPlaywrightでローカルWebアプリをテスト
- skill-creator:新しいスキルの作成をガイドするインタラクティブツール
接続しておきたい人気のMCPサーバー
- Context7:リアルタイムかつバージョン特定のドキュメント検索
- GitHub:リポジトリ検索、PR管理、課題トラッキング
- Playwright:スクリーンショットではなくアクセシビリティツリーによるブラウザ自動化
- Supabase:Row Level Securityを考慮したDBクエリ
- Sentry:エディタ内でのエラートラッキングとパフォーマンス監視
また、おすすめのリモートMCPサーバーに関するガイドもご覧いただけます。
Hooks:決定論的なレイヤー
Hooksは、skills対MCPという議論の外側に位置します。skillsとMCPサーバーはいずれもClaude向け(Claudeが利用するかどうかを判断)ですが、hooksはシステム向けです。PreToolUseやPostToolUseといったイベントで発火し、Claudeが特定のアクションを取る前後にシェルスクリプトを実行します。フックを実行するかどうかにClaudeの意思決定は関与しません。
このため、hooksは必ず実行すべき処理(コミット前のリンティング、保護ディレクトリへの書き込みブロック、すべてのbashコマンドの記録、デプロイ前のテスト実行など)に適しています。
この開発者は「書き込み時ブロック」より「送信時ブロック」のフックを推奨しています。作業の途中でClaudeをブロックすると、エージェントが混乱して結果が悪化するためです。彼女のチームでは、PreToolUseフックでBash(git commit)をラップし、テスト合格時にのみ存在する一時ファイルの有無を確認しています。ファイルがなければコミット不可。エージェントはまず作業を完了し、検証は最後に行われます。
Hooksはコンテキストウィンドウ外のシェルスクリプトとして動くため、トークンのオーバーヘッドはありません。
設定しておくと便利なClaudeフック
- ESLint/Prettier(編集時):Claudeが書き込んだ後に自動フォーマット
- テストゲート(コミット時):テスト合格までコミットをブロック
- 保護パス:migrations・config・vendorなどへの書き込みを防止
- 完了通知:長時間タスクが終了したらSlackやデスクトップへ通知
- 議事録バックアップ:コンパクション実行前に会話履歴を保存
自作Claude Codeプラグインの作り方
スキルを個人の.claude/ディレクトリに置いているだけでは自分しか使えません。プラグインとしてパッケージ化すると、チームメイトと共有したり、複数プロジェクトで再利用できます。
ここではsession-loggerというプラグインを作成し、/session-logger:summarizeコマンドを追加します。呼び出すと、Claudeが会話を振り返り、構造化された要約をSESSION_LOG.mdに追記します。
プラグイン構成の作成
プラグインはファイルシステム上のどこに置いても構いません。本チュートリアルでは、ホームディレクトリに作成します。
cd ~
mkdir -p session-logger/.claude-plugin
mkdir -p session-logger/skills/summarize
これで次の構成が作成されます。
~/session-logger/
├── .claude-plugin/
│ └── plugin.json # manifest goes here, nowhere else
└── skills/
└── summarize/ # folder name becomes the command name
└── SKILL.md # must be named exactly this
マニフェストの作成
~/session-logger/.claude-plugin/plugin.jsonを作成します。
{
"name": "session-logger",
"description": "Log session summaries to a markdown file",
"version": "1.0.0"
}
nameは名前空間の接頭辞になります。このプラグイン内のすべてのコマンドは/session-logger:で始まります。
スキルの作成
次を作成します: ~/session-logger/skills/summarize/SKILL.md。
---
description: Log a summary of the current session to SESSION_LOG.md
disable-model-invocation: true
---
When invoked, review the conversation and create a summary with these sections:
- **Date/time**: Current timestamp
- **Tasks completed**: What was accomplished
- **Files modified**: List of files created or changed
- **Decisions made**: Architectural or implementation choices
- **Open questions**: Unresolved items for future sessions
Append the summary to SESSION_LOG.md in the project root. Create the file if it doesn't exist.
disable-model-invocation: trueは、ユーザーのみがこのスキルを起動できることを示します。このフラグがないと、Claudeが会話の助けになると判断したときに自律的にコマンドを実行する可能性があります。ロガーやデプロイ系のツールでは、通常は手動制御を望むはずです。
ローカルでテスト
プラグインを使いたい任意のプロジェクトに移動し、--plugin-dirでプラグインを指してClaude Codeを起動します。
cd ~/your-project
claude --plugin-dir ~/session-logger
/session-logger:summarizeと入力してコマンドを呼び出します。プラグインコマンドは、完全な名前を入力するまでオートコンプリートに表示されません。正しいコマンドとして認識されると、テキストが青に変わります。
ある程度作業をしたらコマンドを実行します。Claudeが会話をレビューし、現在のプロジェクトディレクトリのSESSION_LOG.mdにエントリを追記します。
他者と共有
プラグインをGitHubにプッシュします。手動クローン以外で配布するには、プラグインマーケットプレイスに追加します。 マーケットプレイスガイドでは、自前のマーケットプレイスの作成や、既存への投稿方法を解説しています。
まとめ
プラグインによって、Claude Codeは汎用アシスタントから、自分たちのワークフローに合わせて形づくられた道具へと変わります。ここで作ったセッションロガーは、約5分・3ファイルで完成しました。多くの有用なプラグインも、実はそれほど複雑ではありません。
ここまで追ってきたなら、すでに手元で動くプラグインがあるはずです。要約フォーマットを変えたり、セクションを追加したり、チームの実ニーズに合わせて作り替えてみてください。個人用の簡単なツールでも、数百人の開発者に配布するものでも、基本の構成は同じです。
あわせて、時間のあるときにコミュニティのリポジトリも覗いてみてください。他の人のプラグイン構成を見ることで、ドキュメントだけでは掴みづらいパターンが学べます。
Claude Codeをさらに深堀りするには、Claude Codeのベストプラクティス、Superpowersスキルフレームワーク、長時間セッション向けのスラッシュコマンド、セキュリティと権限の各チュートリアルをご覧ください。Claudeモデルについてもっと学ぶなら、Introduction to Claude Modelsコースをおすすめします。
Claude Codeプラグインに関するFAQ
Claude Codeのプラグインとは何ですか?
プラグインは、Claude Codeの拡張機能をまとめた共有可能なパッケージです。内容として、skills(カスタムコマンドやコンテキスト対応プロンプト)、MCPサーバー(外部APIへの接続)、hooks(特定イベントで実行されるシェルスクリプト)を含められます。プラグインにより、ワークフローをチームで共有したり、複数プロジェクトで再利用できます。
Claude Codeプラグインはどうやってインストールしますか?
マーケットプレイスのプラグインは、claude plugin add <plugin-name>コマンドで追加します。ローカル開発では、インストールせずにテストできるようclaude --plugin-dir ./your-pluginでClaude Codeを起動します。
Claude Codeプラグインの正しいファイル構成は?
プラグインには、ルートにplugin.jsonを含む.claude-plugin/ディレクトリが必要です。Skillsはskills/<skill-name>/SKILL.mdに配置します。マニフェストは.claude-plugin/にのみ置き、他のディレクトリ(skills、hooks、agents)はプラグインルートに配置します。
カスタムのスラッシュコマンドがオートコンプリートに出ないのはなぜ?
プラグインのコマンドは、完全な名前を入力するまでオートコンプリートに表示されません。Claude Codeが認識するとテキストが青に変わります。あわせて、SKILL.mdのフロントマターにdisable-model-invocation: trueが含まれていることを確認し、ユーザーから起動できるようにしてください。
hooksとskillsはいつ使い分けるべきですか?
毎回例外なく実行すべき処理(編集ごとのリンティング、テスト合格までコミットをブロックなど)にはhooksを使ってください。hooksは決定論的でシステム向け、skillsはコンテキスト対応でClaudeが適用可否を判断します。
Claude CodeのskillsとMCPサーバーの違いは何ですか?
Skillsは自然言語の指示ファイルで、オンデマンドで読み込まれ、セッション開始時に各~100トークンを消費します。知識、ワークフロー、チーム標準に最適です。MCPサーバーは外部APIにClaudeを接続し、ツール定義を事前読み込みします(ツールあたり100–300トークン)。ただしAnthropicのTool Search機能により、このオーバーヘッドは現在削減されています。Claudeに判断適用させたい場合はskills、リアルタイムな外部データが必要な場合はMCPサーバーを使ってください。
Claude Codeプラグインをゼロから作るには?
プラグイン名・説明・バージョンを含む.claude-plugin/plugin.jsonマニフェストを持つディレクトリを作成します。YAMLフロントマターと指示を含むskills/<skill-name>/SKILL.mdを追加します。claude --plugin-dir ./your-pluginでローカルテストを行い、GitHubにプッシュしてからclaude plugin add github:username/repo-nameでインストールします。