Claude Code を自分好みに変える方法は、いくつもあります。Mod、設定ファイルのフック(設定フック)、スキル、MCP サーバーです。どれも「Claude Code に何かを足す」ものなので、初めは違いが分かりにくいはずです。この記事では、公式ドキュメントの比較をもとに、やりたいことから逆引きで選べるように整理します。
先に結論
- 画面に何かを描きたい、独自の
/コマンドを足したい、イベントを書き換えたい:Mod - すでにあるスクリプトで、ツール呼び出しを止める・許可する・記録したい:設定フック
- 毎回同じ指示を貼っている:スキル
- Claude に外部のシステムを触らせたい:MCP サーバー
- 固定のコマンドやパスを許可・拒否するだけ:コードは不要で、権限ルール(例:
Bash(npm test))
4 つの違い
公式ドキュメントの比較表を、日本語にしたものです。
| Mod | 設定フック | スキル | MCP サーバー | |
|---|---|---|---|---|
| 何か | プラグインの中の関数。Claude Code が自分のプロセスの中で呼ぶ | イベントごとに Claude Code が動かす、シェルコマンド・HTTP リクエスト・プロンプト | Claude が読む、指示を書いた SKILL.md | Claude にツールを与える外部のプロセスやサービス |
| 変えられるもの | ツール呼び出し、プロンプト、コマンド、ターン、画面の描画 | ツール呼び出しやプロンプトを通すか、ツール呼び出しの引数と結果、Claude に足す文脈 | Claude の知識と振る舞い | Claude が使えるツール |
| 画面に描けるか | 描ける | 描けない | 描けない | 描けない |
| 何で書くか | JavaScript / TypeScript | スクリプトと settings.json の記述 | Markdown | 任意の言語のサーバー |
| 選ぶとき | ペイン、プロンプト上の帯、独自コマンドが欲しい。またはイベントを書き換えたい | すでにあるスクリプトで、イベントを止める・許可する・記録したい | 同じ指示を何度も貼っている | Claude が外部のシステムに届く必要がある |
表の「フック」の言葉に注意してください。Claude Code は、Mod の関数も、設定ファイルのフックも、どちらも「フック」と呼びます。公式ドキュメントでは、Mod の関数を単に「フック」、設定ファイルの方を「設定フック」と区別しています。
Mod にしかできないこと
設定フック、スキル、MCP サーバーは、Claude Code の外側から働きかけます。スクリプトを動かすか、Claude に文章かツールを渡すかです。Mod は Claude Code の内側で動くので、次のことができます。
- ペインや、プロンプトの上の帯に、タブ、ボタン、入力欄を描く
- ツール呼び出しの行、スピナー、質問ダイアログなど、Claude Code が自分で描く画面を作り替える
- ツール呼び出しを、ユーザーに確認するまで止める、または実行せずに答える
- Claude を介さずに動く
/コマンドを足す - フック同士で変数を共有し、片方の記録をもう片方が表示する
画面に関わることがなければ、設定フックで足りることが多いです。たとえば「危険なコマンドを止める」だけなら、スクリプトと設定ファイルで済みます。Mod を選ぶなら、「止めるついでに、確認ダイアログの形を変えたい」「止めた回数を画面に出したい」といった理由が目安です。
逆引き表
| やりたいこと | 向いている手段 |
|---|---|
| 現在の Git ブランチを画面に出したい | Mod(プロンプトの下の 1 行や帯) |
| 使ったトークンを表示するパネルが欲しい | Mod(ペイン) |
rm -rf を止めて、Claude に別の方法を伝えたい | Mod か設定フック。画面の確認ダイアログを変えたいなら Mod |
決まったコマンド(npm test など)を毎回許可したい | 権限ルール |
| 作業のたびに同じ手順書を貼っている | スキル |
| 課題管理システムのチケットを Claude に読ませたい | MCP サーバー |
| ファイルを編集したら、フォーマッタを自動で動かしたい | 設定フック |
自分用の /standup コマンドを足したい | Mod |
| 会話を始める前に、リポジトリの状態を Claude に伝えたい | Mod(プロンプトに文脈を足す)またはスキル |
迷ったときは、4 つの質問に順に答えてください。画面に描く必要があるなら Mod です。Claude が外のシステムに届く必要があるなら MCP です。手順や知識を伝えたいだけならスキルです。すでにあるスクリプトで足りるなら設定フックです。
権限ルールで足りることもある
固定のコマンドやパスを許可・拒否するなら、コードを書かずに、権限ルールを使えます。たとえば Bash(npm test) のように書きます。判断が「その時点で何が真か」に依存するとき(今の Git ブランチが main のときだけ git push を拒否する、など)に、tool.check を扱う Mod が出番です。この Mod の例は 危険なコマンドを止める Mod で扱います。
組み合わせる
1 つのプラグインに、これらをまとめて入れられます。たとえば、課題管理の MCP サーバーと、使い方を教えるスキルと、状況を画面に出す Mod を、1 つのプラグインとして配ることができます。配る側にとっては、利用者がインストールするものが 1 つで済みます。
組織で使うときの違い
管理者の視点では、4 つの扱いが違います。管理設定に書かれた PreToolUse の設定フックは、どの Mod よりも先に動き、その遮断は最終です。Mod は、allowManagedModsOnly で、ユーザーが持ち込む分だけを止められます。このとき、ユーザーの設定フックやステータスラインは動き続けます。詳しくは 組織で Mods を管理する をご覧ください。
注意:Mod は権限が大きい
どれを選んでも、他人が作ったものを入れるときは、中身を確かめてください。特に Mod は、あなたの権限で動き、サンドボックスもありません。プロンプトもツール呼び出しもすべて見られ、書き換えられます。スキルは文章、MCP サーバーは外部のプロセス、設定フックは自分で書いたスクリプトという性質の違いから、リスクの種類も違います。Mod を入れる前の確認は 安全チェック にまとめました。
まとめ
画面に描く、イベントを書き換える、独自コマンドを足す、のどれかが必要なら Mod を選びます。そうでなければ、軽い手段(権限ルール、スキル、設定フック、MCP)で足ります。全体像は Mods とは に、用語は 用語集 にあります。公式の比較は 概要ページ をご覧ください。