スキル・サブエージェント・フック・MCPの使い分け:Claude Codeの拡張を「何をしたいか」から選ぶ

Claudeスキル・MCP のアイキャッチ

Claude Codeには「CLAUDE.md」「スキル」「サブエージェント」「フック」「MCP」と、拡張の道具がいくつもあります。似て見えて、動くタイミングも、コンテキストの食い方も、失敗の仕方も違います。この記事では「何をしたいか」から逆引きして、どれを選ぶかを整理します。

AIエージェントと拡張ツールのイラスト

まず結論:5つの道具の役割

公式ドキュメント「Extend Claude Code」は、各機能を「いつ読み込まれ、どれだけコンテキストを使うか」で比べています。要点を自分の言葉でまとめると次の表です。

道具 一言でいうと 動くタイミング 向いている用途
CLAUDE.md 常に読まれるルール 毎セッション テスト実行コマンド、命名規則、禁止事項
スキル 必要なときだけ読む手順書 関連しそうなとき//で呼び出し レビュー手順、リリース作業など繰り返す作業
サブエージェント 別の作業机を持つ助手 タスクを任せたとき 大量のファイル調査など、本流を汚したくない作業
フック 必ず走る自動処理 ライフサイクルのイベント時 保存後の整形、危険コマンドのブロック
MCP 外部サービスへの接続口 ツールとして呼ばれたとき 課題管理、DB、ブラウザなど外部システムの操作

迷ったときの3つの判断軸

1. 「必ずやらせたい」ならフック

CLAUDE.mdもスキルも、Claudeが読んで解釈する指示です。守られる確率は高いものの、100%ではありません。一方フックは、イベントが起きれば確実にスクリプトが走ります。解説記事(Skills vs Subagents vs Hooks)も、毎回成立させたいルールはフックに置くべきだと整理しています。フックはシェルコマンドのほか、HTTPリクエスト、MCPツール呼び出し、プロンプト、サブエージェントも起動できます。

2. 「常に知っていてほしい」ならCLAUDE.md、「たまに使う」ならスキル

常時読まれる情報が長くなると、毎回コンテキストを消費します。たまにしか使わない手順は、スキルに切り出すのが基本です。スキルは、最初に名前と説明だけが読まれ、本文や同梱ファイルは必要になってから読み込まれる「段階的開示」の仕組みです。書き方は当サイトの「Claudeスキルの書き方入門」も参考にしてください。

3. 「途中経過が多くなりそう」ならサブエージェント

広いコードベースの調査やログ解析は、途中の出力が会話を埋め尽くしがちです。サブエージェントは独立したコンテキストで作業し、要約だけを返します。なおサブエージェントはskillsフィールドで指定したスキルを起動時に全文読み込みます。通常のスキルの読み込み方とは違う点に注意してください。

具体例:タイムアウト修正を例に育てる

全部を最初から作る必要はありません。Medium記事「Stop Repeating Yourself: Set Up Claude Code for Your Team」は、次の順に足していくやり方を勧めています。

  1. 単位(秒)やテストコマンドなど、繰り返し間違える点をCLAUDE.mdに書く。
  2. 同じレビュー手順を何度も説明するようになったら、スキルにする。
  3. レビューだけ別視点で見せたいなら、読み取り専用のサブエージェントを作る。
  4. チケット管理など外部の情報が必要になったらMCPを足す。
  5. 整形など「毎回必ず」の処理が出てきたら、フックを足す。

道具が増えるほど、保守するスクリプトや依存も増えます。繰り返しが実際に発生してから足すのが無難です。

MCPは「手」、スキルは「やり方」

MCPはClaudeに外部システムを操作する手段(ツール)を与えます。スキルは、その手でどう作業するかという手順を与えます。たとえばGitHub連携のMCPがあっても、「PRはこの観点でレビューし、この書式で報告する」という手順はスキルに書くほうが再利用しやすくなります。

大工の道具箱
Photo: chimpwithcan / CC BY 2.0(Openverse経由)

道具箱と同じで、全部を持ち歩くより、用途に合う道具を選ぶほうが効率的です。MCPは接続先が増えるほどツール定義の分だけコンテキストを使うので、使わないサーバーは外しておきましょう。また、公式のコネクタ掲載ページにもあるとおり、信頼できる開発元のコネクタだけを使うのが前提です。

名前が重なったときの優先順位

種類 同名の場合の扱い
スキル managed > user > project の順で優先
サブエージェント managed > CLIフラグ > project > user > plugin
MCPサーバー local > project > user
フック 上書きされず、該当するものがすべて実行される

フックだけは「全部走る」ため、個人設定とプロジェクト設定で同じ処理を二重に書くと2回実行されます。チームで共有する場合は気をつけてください。

まとめ:今日やること

  • Claudeが同じミスを繰り返しているなら、まずCLAUDE.mdに1行足す。
  • 同じ説明を3回したら、スキルにする。
  • 「毎回必ず」ならフック、「外部につなぐ」ならMCP、「本流を汚したくない」ならサブエージェント。

主な情報源

各ツールは提供元の規約に従ってご利用ください。情報は各情報源の公開時点のものです。収集・要約はAI、公開判断は人。