メインコンテンツへスキップ
見出し画像

AI初心者がClaude Codeを使いこなすまで|第5回:hooksとMCPって何?「お願い」を「ルール」にする仕組み

    はじめに

    こんにちは、lapuです。会社員をしながら、AIを活用した個人開発や副業に挑戦しています。

    この記事は、「Claude Codeを使いこなすために必要な知識」を調べて実践していく連載の第5回です。

    ここまでで、CLAUDE.md(毎回読む説明書)、スキル(必要なときだけ使う手順書)、サブエージェント(仕事を任せる別のAI)を調べてきました。今回は、次の2つがテーマです。

    • hooks(フック):特定のタイミングで、決まった処理を自動で実行する仕組み

    • MCP:Claude Codeを、外部のツールやサービスにつなぐ仕組み

    どちらも名前を聞いたことはあっても、実はよくわかっていませんでした。今回は、公式ドキュメントで調べたうえで、hooksは小さな実験もしてみました。

    なお、Claude Codeは更新が速いツールです。この記事は2026年10月時点で公式ドキュメントを確認してまとめています。最新の情報は公式も確認してください。

    hooks(フック)とは?

    読み方と意味

    hookは英語で「フック(引っかける金具)」という意味です。複数形のhooksは「フックス」と読むのが自然です。

    Claude Codeの動きの途中に、フックを引っかけるように「ここで、この処理を実行して」と登録しておく仕組みなので、この名前がついているようです。

    CLAUDE.mdとの違い:「お願い」と「ルール」

    第2回で、CLAUDE.mdは「強制される設定」ではなく、「参考にする文脈」だと紹介しました。書いても、100%守られるとは限りません。

    hooksは、その反対です。公式ドキュメントでは、hooksは「AIが実行するかどうかを選ぶのではなく、必ず実行されること」を保証するための仕組みと説明されています。

    • CLAUDE.md:AIへの「お願い」。たいてい守られるが、保証はない

    • hooks:決まったタイミングで、プログラムが自動で実行する「ルール」

    どんなことができる?

    公式ドキュメントで紹介されている例は、次のようなものです。

    • Claudeの入力待ちになったら、デスクトップに通知を出す

    • ファイルを編集したあとに、自動で整形する

    • 重要なファイル(.envなど)の編集を、実行前にブロックする

    • 会話の整理(圧縮)のあとに、大事な情報をもう一度読み込ませる

    いつ動く?(主なタイミング)

    「イベント」と呼ばれるタイミングが、たくさん用意されています。主なものは次のとおりです。

    • SessionStart:会話を始めたとき

    • UserPromptSubmit:自分が指示を送信したとき

    • PreToolUse:Claudeがツール(ファイル編集など)を使う直前。ここで止めることもできる

    • PostToolUse:ツールを使った直後

    • Notification:Claudeが通知を出すとき

    • Stop:Claudeが返答を終えたとき

    設定する場所

    設定ファイル(settings.json)の中に、hooks という項目を書きます。

    • 自分用(~/.claude/settings.json):自分のすべてのプロジェクトで有効

    • プロジェクト用(.claude/settings.json):そのプロジェクトで有効

    • 自分だけ・そのプロジェクト用(.claude/settings.local.json)

    設定したあとは、Claude Codeの中で /hooks と入力すると、設定されているhooksの一覧を確認できます。

    実行するものの種類

    基本は、コマンド(プログラム)を実行する形です。そのほかに、次のような種類もあります。

    • http:指定したURLに、イベントの情報を送る

    • prompt:AIに「これは許可してよいか」を判断してもらう(ルールで決められない判断向け)

    • agent:AIが、ツールを使いながら確認する(実験的な機能とされている)

    • mcp_tool:MCPサーバーのツールを呼び出す

    注意点

    hooksは、自分のパソコンでコマンドを自動で実行する仕組みです。中身を理解していないものを、むやみに設定しないほうがよさそうです。

    hooksを試してみた

    「重要なファイルの編集を、実行前にブロックする」例を、小さく試してみました。

    実験の準備

    実験用の一時的なフォルダを作り、次のものを置きました。内容はどちらも、実験用に作ったものです。

    • memo.txt:普通のメモ

    • protected_note.txt:「保護したい」メモ

    • hooksの設定:ファイルを編集する直前(PreToolUse)に、「ファイル名に protected が入っていたら、ブロックする」という小さなプログラム(Python)を実行する

    そして、Claude Codeの非対話モード(claude -p)で、それぞれのファイルに「確認済み」という1行を追記するよう頼みました。

    結果1:公式の例のとおりにやったら、止まらなかった

    公式ドキュメントの例では、プログラムが「終了コード2」で終わると、ブロックされると書かれています。そのとおりに作りました。

    しかし、私の環境(Windows)では、止まりませんでした。

    • hookそのものは動いていました。実行の記録も残っていて、プログラム単体で動かすと、ちゃんと終了コード2を返していました。

    • それでも、Claude Codeは編集を実行してしまい、protected_note.txtに「確認済み」が追記されました。

    • 同じ条件で2回試して、同じ結果でした。

    原因は、特定できていません。

    結果2:「拒否します」とJSONで返す方法では止まった

    そこで、別の方法を試しました。公式ドキュメントには、終了コードを使う代わりに、「拒否する」という内容をJSON(データの書き方のひとつ)で返す方法も紹介されています。

    プログラムを、「保護対象なら、JSONで拒否を返す」ように書き換えたところ、結果は次のとおりになりました。

    • memo.txt:普通に追記された

    • protected_note.txt:追記されず、Claudeが「PreToolUse:Edit hook error: Blocked: protected_note.txt is a protected file」というメッセージを報告した

    ファイルの中身も、保護したほうは変わっていませんでした。

    わかったこと・わからないこと

    • わかったこと:hooksを使えば、AIの判断に関係なく、特定のファイルの編集を止められる。

    • 気をつけたいこと:私の環境では、公式の例にある「終了コード2」では止まらなかった。原因はわからないので、hooksを設定したら、本当に止まるかを必ず試して確かめたほうがよいと感じた。

    • 限界:実験は、非対話モードで、一時フォルダで、少ない回数だけ。普段の画面で使う場合の動きは、確かめていません。

    MCPとは?

    何の略?

    MCPは、Model Context Protocol(モデル・コンテキスト・プロトコル)の略です。

    公式ドキュメントでは、「Claude Codeを、外部のツールやデータにつなぐための、オープンな標準」と説明されています。つなぐ先のことを、MCPサーバーと呼びます。

    何ができる?

    公式ドキュメントで紹介されている例は、次のようなものです。

    • 課題管理ツール(Jiraなど)の内容を読んで、機能を作る

    • GitHubを操作して、レビューを依頼する

    • データベースに問い合わせて、データを集計する

    • Slack、Gmail、Notion、Figmaなどのサービスと連携する

    つなぐことで、チャットに内容を貼り付けなくても、Claude Codeが直接読み書きできるようになる、というイメージです。

    つなぎ方

    claude mcp add というコマンドで、サーバーを追加します。つなぎ方には種類があります。

    • HTTP:インターネット上のサービスにつなぐ(公式がすすめている方法)

    • stdio:自分のパソコンで動くプログラムにつなぐ

    追加したものがどこで有効になるかは、3種類あります。

    • ローカル:このプロジェクトだけ。自分だけが使う

    • プロジェクト:このプロジェクトで、チームと共有する(.mcp.json)

    • ユーザー:自分のすべてのプロジェクトで使う

    つなげたあと、Claude Codeの中で /mcp と入力すると、接続の状態やログインの操作ができます。

    気をつけたいこと

    公式ドキュメントには、信頼できるサーバーだけをつなぐよう、はっきり書かれています。外部の情報を取りにいくサーバーは、そこに仕込まれた悪い指示に、AIが従ってしまう危険(プロンプトインジェクション)があるためです。

    また、MCPのツールがたくさんあると、AIが覚えておく量(コンテキスト)が増えます。Claude Codeには、必要なツールだけを探して使う仕組み(ツール検索)が、標準で入っているそうです。

    自分の環境を確認してみた

    hooksとMCPを、自分は使っているのか、確認してみました。

    hooks

    • 自分用の設定ファイル(~/.claude/settings.json)に、hooksの記載はありませんでした。

    • このプロジェクトの .claude/ フォルダにも、設定ファイルはありませんでした。

    つまり、hooksは、まだ使っていませんでした。

    MCP

    claude mcp list というコマンドで、つながっているMCPサーバーを確認しました。

    • つながっていたのは、「claude.ai Claude Docs」の1件だけでした。

    つまり、MCPも、自分で追加したものはほとんどない状態でした。

    これまでの連載の整理

    ここまでの5つを、あらためて並べてみます。

    • CLAUDE.md:毎回読まれる「説明書」。お願い(保証はない)

    • スキル:必要なときだけ読まれる「手順書」

    • サブエージェント:別の作業スペースで動く「助手」

    • hooks:決まったタイミングで必ず動く「ルール」

    • MCP:外部のツールやサービスとつなぐ「接続口」

    やってみたいこと(まだ試していません)

    今回調べていて、思い出したことがあります。

    以前、YouTubeでClaude Codeの使い方の動画を見たときに、新しいチャットを始めたときに、英語の単語問題を出すようにしている人がいました。そのときは何の機能かわかりませんでしたが、これがhooksの説明だったと、今回思い出しました。会話を始めたときに動くhooks(SessionStart)で、できそうです。

    こんなふうに、自分の好きなことを自動でやらせられるのは、面白そうだと思いました。

    もうひとつ、安全のためのガードを作るのも、hooksでできることだとわかりました。先ほどの実験のように、危ない操作や、触ってほしくないファイルの編集を、AIの判断に関係なく止められます。

    Claude Codeに相談したところ、次のような案も出ました。私が実際に試したことではありません。

    • 重要なファイルの上書きを、hooksで止める:私のCLAUDE.mdには「重要なファイルを勝手に上書きしない」というルールを書いています。これは「お願い」なので、hooksで、CLAUDE.mdそのものの編集を止めることもできそうです。

    • 作業が終わったら通知を出す:長い作業を任せている間、別の作業ができる。

    まとめ

    • hooksは、決まったタイミングで必ず動く仕組み。CLAUDE.mdが「お願い」なら、hooksは「ルール」

    • 実験では、ファイル編集を止められた。ただし私の環境では、公式の例の方法では止まらなかったので、設定したら必ず試して確かめる

    • MCPは、Claude Codeを外部のツールやサービスにつなぐ仕組み。信頼できるサーバーだけをつなぐ

    • 私は、hooksは未使用で、MCPは「claude.ai Claude Docs」だけがつながっていた

    • hooksは、毎回の「お楽しみ」(会話の開始時に何かをさせる)にも、「安全のガード」にも使えそう

    次回は、これまでの仕組みを組み合わせて、開発や業務で回してみる回です。

    連載を通じて、「AIを使ってみたいけれど、何から始めればいいかわからない」という方が、一歩目を踏み出すきっかけになればうれしいです。

    この記事が参考になったら、記事の下にある「チップで応援する」から応援してもらえるとうれしいです。

     
     

    lapu

     
     
    会社員をしながら、AIを活用した個人開発・副業に挑戦しています。プログラミングは専門外ですが、Claude CodeなどのAIツールで小さな作品やサービスを作っています。実際にやってみたこと、うまくいったこと・いかなかったことを発信しています。趣味はバイク、筋トレ、食べ歩きです。

    あなたへのおすすめ