サブエージェント・スキル・MCP・hooks・コマンドの使い分け早見表
Claude Code のサブエージェント、スキル、MCP、hooks、コマンドは「コンテキストを汚さず・確実に・拡張する」の3目的で役割が分かれます。早見表で一発整理します。
- claude-code
- subagents
- skills
- mcp
- hooks
- workflow
- 情報確認
- 参考リンク
- 2件
- 更新性
- 長く使える
- 読了目安
- 約5分
仕様・料金・提供範囲が変わりやすいテーマは、公開日・更新日・情報確認日を分けて管理します。 導入前には必ず記事末尾の一次情報と公式ドキュメントで最新状況を確認してください。
結論
Claude Code の拡張機構は「コンテキストを汚さず」「決定的に確実に」「外部へ拡張する」の3目的で道具が分かれます。別コンテキストで調査・レビューしたいならサブエージェント、必要なときだけ読むドメイン知識ならスキル、外部サービス接続なら MCP、毎回必ず実行したい処理なら hooks、常時の助言や定型手順なら CLAUDE.md とスラッシュコマンドです。迷ったら「目的」から早見表で逆引きしてください。
「skill と subagent の違いは?」「hooks と MCP はどっち?」と迷うのは、5つの機構が似た見た目で並んでいるからです。実際は解決したい問題が違います。まず各機構を一言で押さえ、そのうえで早見表で逆引きできるようにします。
それぞれの機構は一言で何か
5つの機構は、それぞれ別の問題を解くために存在します。役割が重なって見えても、解決対象が違うと考えると整理できます。
サブエージェント: 別コンテキストで調査・レビューする
サブエージェントは、独自のコンテキスト・ツール権限・システムプロンプトを持つ専門エージェントです。親の会話とは別の文脈で動くため、長い調査ログやレビューの試行錯誤を親会話に流し込まずに済みます。
効くのは「大量ファイルの探索」「独立した検証」「コードレビュー」「並行調査」など、本筋とは別軸で頭を使う作業です。結果だけが親に戻るので、親のコンテキストが汚れません。逆に、次の一手が結果待ちで止まる小さな確認は、親が直接読むほうが速いことが多いです。
スキル: 必要なときだけ読むドメイン知識
スキルは、特定領域の手順や知識をまとめたパッケージです。公式ドキュメントでは、関連する作業のときにモデルが自動で読み込む仕組みとして説明されています。要点は「必要なときだけロードされる」ことで、常時コンテキストに乗せないため節約になります。
「この種の画像生成はこの手順」「この社内ライブラリの使い方」のような、毎回は要らないが特定タスクで必ず参照したい知識に向きます。
MCP: 外部サービスへ接続する
MCP(Model Context Protocol)は、Claude Code をファイルとシェルの外にある仕組みへつなぐための接続規格です。データベース、社内 API、課題管理ツール、外部 SaaS などをツールとして公開し、エージェントから呼べるようにします。
判断基準はシンプルで、「ファイル編集とコマンド実行だけでは届かない場所」に用があるときだけ MCP を足します。ローカルで完結する処理に MCP を持ち込むと、起動コストと権限管理が増えるだけです。
hooks: 毎回決定的に実行する
hooks は、ツール実行の前後などの決まったタイミングで必ず走るスクリプトです。モデルの判断に依存せず決定的に実行される点が核心で、「やってくれたらいいな」ではなく「必ずやる」を保証したいときに使います。
# 編集後に必ずフォーマッタを走らせる# モデルへの「整形してね」というお願いではなく、# 決定的に実行されるフックとして登録する[hooks.post_edit]command = "npm run format"整形、Lint、コミット前チェック、ログ記録など「抜けると困る」処理の置き場です。
CLAUDE.md とスラッシュコマンド: 常時の助言と定型手順
CLAUDE.md は毎会話の冒頭でロードされる助言です。プロジェクトの前提やルールを伝えますが、あくまで指示であり、必ず守られる保証はありません。スラッシュコマンドは、定型の手順を一言で呼び出すショートカットです。
CLAUDE.md … 常時ロードの助言(守られるとは限らない)スラッシュコマンド … 定型手順を明示的に呼ぶ(都度の起動)hooks … 決定的に毎回実行(守られる)結局どれを使えばいい?(目的から逆引き)
目的が決まれば道具は一意に近く決まります。下の対比で「汚さない/確実にやる」の軸を押さえてください。
逆引きのコツは「これは助言で足りるのか、保証が要るのか」を最初に問うことです。保証が要るなら hooks、知識の出し入れならスキルとサブエージェント、外部接続なら MCP、という順で切り分けると迷いません。
よくある誤用と直し方
最も多い誤用は「全部 CLAUDE.md に書く」ことです。CLAUDE.md は毎会話ロードされるため、肥大化するとコンテキストを圧迫し、しかも助言なので守られる保証もありません。
もう一つの典型は、hooks でやるべき決定的処理を CLAUDE.md の文章でお願いしてしまうことです。整形やチェックは「お願い」だと確率的に抜けます。決定的に守らせたいものは hooks へ、文脈の共有だけ CLAUDE.md へ、と分けるのが原則です。逆に、ローカルで完結する処理にまで MCP を足すのも過剰で、起動コストと権限管理が無駄に増えます。
よくある質問
スキルとサブエージェントはどう違いますか?
スキルは必要なときだけ読み込まれるドメイン知識のパッケージで、同じ会話のコンテキストに乗ります。サブエージェントは別コンテキストで動く専門エージェントで、調査やレビューを親会話から切り離したいときに使います。
hooks と CLAUDE.md はどちらに書くべきですか?
必ず毎回実行したい処理は hooks に書きます。CLAUDE.md は助言であり守られるとは限らないため、フォーマット強制やコミット前チェックのような決定的な処理を CLAUDE.md に書くのは誤用です。
MCP はいつ必要になりますか?
データベース、社内 API、外部 SaaS など、ファイルとシェルの外にある仕組みへ接続したいときに使います。逆にファイル編集やコマンド実行で済む処理に MCP を足すのは過剰です。
全部 CLAUDE.md に書けばよいのではないですか?
いいえ。CLAUDE.md は毎会話ロードされる助言なので肥大化するとコンテキストを圧迫し、守られる保証もありません。必要時ロードのスキル、決定的な hooks、別コンテキストのサブエージェントに分散させるほうが効きます。
関連記事
一次情報・参考リンク
関連して読む
MCPとhooksを入れる前に決める、AIエージェントの安全境界
MCPで外部ツールを接続し、hooksで自動化する前に決めておきたい権限・ログ・停止条件を整理します。
- · 参考リンク 5件
その条文は「現在」のものです|e-Gov法令API v2の時点指定(asof)と通称検索を実測
e-Gov法令API v2はasofパラメータで過去時点の条文を返し、法令名検索が通称(abbrev)にもマッチします。v1しか叩いていないegov-law-mcp 0.1.0では何が引けないのかを、下請法の改題を題材に実測ログで確認します。
- · 参考リンク 6件
「下請法」で法令検索すると0件になる|通称と現行法令名のズレをMCPで埋める
e-Gov法令MCP(@codeagentjp/egov-law-mcp)のsearch_lawsは法令名マッチのため、下請法・電帳法・景表法といった通称は0件で返ります。実測ログをもとに、通称→正式名称の解決手順と、改題された法令の扱いを整理します。