Log目次

【Claude Code】CLAUDE.md・Hooks・MCP・Skillsの使い方

作成日 2026-06-07更新日 2026-06-07

はじめに

Claude Codeは、Anthropicが提供するAIを活用したCLIツールです。

コードの生成・修正・説明といった基本的な使い方に加え、 プロジェクト固有の設定やカスタム動作を定義することで、より効率的に開発できます。

この記事では以下の機能について紹介します。

CLAUDE.md

CLAUDE.mdはプロジェクトルートに配置するMarkdownファイルです。

Claude Codeが起動するたびに自動で読み込まれ、プロジェクト固有のルール・慣習・コンテキストをAIに伝えることができます。

配置場所

記述例

# プロジェクト概要 Ruby on Rails + React で構築した社内管理ツール。 # 開発ルール - Rubyのバージョンは3.3を使用 - テストはRSpecで書く。FactoryBotを使用すること - コミットメッセージは日本語で書く # よく使うコマンド - テスト実行: `bundle exec rspec` - サーバー起動: `bin/dev` - Lintチェック: `bundle exec rubocop` # 注意事項 - db/schema.rbは直接編集しない - 環境変数は.env.localに記載する(.gitignoreに含まれている)

CLAUDE.mdに記載しておくことで、毎回同じ説明をしなくて済むようになります。

特に「このプロジェクトのテストはどう書くか」「使ってはいけないコマンドは何か」といった、 コードを読むだけではわからない情報を書いておくと効果的です。

Hooks

HooksはClaude Codeの特定のイベントに対してシェルコマンドを自動実行する機能です。

設定は .claude/settings.json に記述します。

設定できるイベント

設定例: ファイル編集後に自動でLintを実行する

{ "hooks": { "PostToolUse": [ { "matcher": "Edit|Write", "hooks": [ { "type": "command", "command": "bundle exec rubocop --autocorrect" } ] } ] } }

matcher にはツール名を正規表現で指定します。 上の例では、Edit または Write ツールが実行された後に RuboCop が走ります。

設定例: 作業完了時にデスクトップ通知を送る

{ "hooks": { "Stop": [ { "hooks": [ { "type": "command", "command": "osascript -e 'display notification \"Claude Codeの作業が完了しました\" with title \"Claude Code\"'" } ] } ] } }

長時間かかる処理を依頼したときに、終わったことをすぐ気づけるので便利です。

設定例: 危険なコマンドをブロックする

{ "hooks": { "PreToolUse": [ { "matcher": "Bash", "hooks": [ { "type": "command", "command": "echo \"$CLAUDE_TOOL_INPUT\" | grep -q 'rm -rf' && echo 'rm -rfは禁止されています' && exit 1 || exit 0" } ] } ] } }

Hookコマンドが終了コード1以外を返した場合、Claudeはツールの実行を中止します。

これにより、意図しない破壊的な操作を防ぐことができます。

MCP (Model Context Protocol)

MCPはClaude Codeに外部ツールやデータソースへのアクセスを追加するプロトコルです。

例えば、以下のような連携が可能になります。

設定方法

MCPサーバーの設定は .claude/settings.json に記述します。

{ "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx" } } } }

npx で起動するタイプのMCPサーバーが多く、初回起動時に自動でパッケージをダウンロードします。

よく使われるMCPサーバー

グローバル設定との使い分け

プロジェクトに関係なく使いたいMCPサーバー(SlackやGitHubなど)は ~/.claude/settings.json に記述することで全プロジェクトで使えるようになります。

{ "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx" } } } }

Skills (スラッシュコマンド)

Skillsは /code-review/run のように、スラッシュで呼び出せるカスタムコマンドです。

よく使う処理をSkillとして定義しておくと、毎回同じプロンプトを書かずに済みます。

Skill ファイルの配置場所

作成方法

Markdownファイルを作成するだけです。ファイル名がコマンド名になります。

# .claude/commands/review.md を作成すると /review で呼び出せる touch .claude/commands/review.md

設定例: コードレビューSkill

# /review 変更されたファイルのコードレビューを行います。 以下の観点でレビューしてください。 - バグや論理的な誤りがないか - セキュリティ上の問題がないか - パフォーマンスに影響する処理がないか - Rubyのベストプラクティスに従っているか レビュー結果はMarkdown形式でまとめてください。

設定例: テスト作成Skill

# /gen-test 選択しているコードに対してRSpecのテストを生成します。 - FactoryBotを使用すること - 正常系・異常系の両方を網羅すること - describeとcontextを適切に使い分けること - itブロックには日本語で説明を書くこと

引数を使う

$ARGUMENTS を使うと、コマンド呼び出し時に引数を渡せます。

# /deploy $ARGUMENTS 環境へのデプロイ手順を確認し、問題なければデプロイを実行してください。 デプロイ前に以下を確認してください。 - テストがすべてパスしていること - マイグレーションが必要な場合は事前に確認すること

上記の場合、/deploy staging のように呼び出すと $ARGUMENTSstaging に置き換わります。

まとめ

これらを組み合わせることで、Claude Codeをプロジェクトに最適化した開発ツールとして活用できます。

参考