blog

claude code 拡張機能|2026年版ガイド

Claude Codeの拡張機能は、標準のコーディング支援にとどまらず、外部ツール連携・独自コマンド・自動化フックなどでClaude Codeを自分の開発環境に合わせて広げる仕組みです。本記事ではその全体像と代表的な拡張を実務目線で解説します。

MCP連携の詳細は Claude Code MCPにまとめています。本記事はスラッシュコマンド・CLAUDE.md・フック等の拡張に絞ります。

Claude Code 拡張機能とは——できることと全体像

Claude Codeは、AnthropicのAIアシスタント「Claude」をターミナル上で動かすエージェント型コーディングツールです。その機能をさらに広げる手段として注目されているのが「拡張機能」の仕組みです。具体的には、MCP(Model Context Protocol)サーバーによる外部ツール連携、カスタムスラッシュコマンドCLAUDE.mdによるプロジェクト固有の指示設定、そしてフック(Hooks)によるイベント駆動の自動化という4つの軸で構成されています。

私たちクリスタルメソッドではClaude Codeを実務のメイン開発補助ツールとして日常的に利用しており、これらの拡張機能を組み合わせることで、素のClaude Codeとは一線を画した生産性を実現しています。本記事では、各拡張機能の仕組み・設定方法・実践的な活用例を網羅的に解説します。


拡張機能の全体構造

Claude Codeの拡張機能は大きく4つのレイヤーに整理できます。それぞれが独立しながら相互に組み合わせて使えるのが特徴です。

拡張レイヤー 主な役割 設定ファイル/手段
MCPサーバー 外部ツール・API・DBへの接続 claude_desktop_config.json / .mcp.json
カスタムスラッシュコマンド 繰り返しプロンプトの自動化 .claude/commands/ 配下のMarkdownファイル
CLAUDE.md プロジェクト・ユーザー固有の指示 CLAUDE.md(複数階層に配置可)
フック(Hooks) イベント発火時のスクリプト実行 settings.json の hooks セクション

カスタムスラッシュコマンド——繰り返し作業を一発で呼び出す

カスタムスラッシュコマンドは、よく使うプロンプトをMarkdownファイルとして保存しておき、/コマンド名で呼び出せる機能です。定型的なコードレビュー依頼・テスト生成・ドキュメント作成などを定型化するのに適しています。

作成方法と保存場所

📁 プロジェクト共有
.claude/commands/ 配下
リポジトリにコミット→チーム全員で共有
📁 個人設定
~/.claude/commands/ 配下
全プロジェクトから呼び出せる個人用

ファイル名がそのままコマンド名になります(review.md/review)。サブディレクトリを使うとネームスペース付きのコマンドになります(.claude/commands/git/commit.md/git:commit)。

カスタムスラッシュコマンドの実例

以下はコードレビューを依頼するコマンドの例です。$ARGUMENTSでユーザーが追加入力したテキストをプロンプトに挿入できます。

# ファイル: .claude/commands/review.md

以下のコードをシニアエンジニアの視点でレビューしてください。

## レビュー観点
- バグや論理的な誤りの指摘
- パフォーマンス上の懸念点
- セキュリティリスク(SQLインジェクション、XSS等)
- 可読性・命名規則の改善提案
- テストの網羅性

## 追加指示
$ARGUMENTS

## 出力形式
指摘事項は重要度(🔴高/🟡中/🟢低)を付けて箇条書きにしてください。

使う際はセッションで/review TypeScriptの型安全性も確認してと入力するだけで、定型のレビュー観点+追加指示が一括でClaudeに送られます。

動的コンテキストを活用した高度なコマンド

コマンドファイル内では、Bash実行結果やファイル内容を動的に差し込めます。

# ファイル: .claude/commands/changelog.md
# 最新コミットを参照してCHANGELOGを生成するコマンド

以下のgitログを元に、ユーザー向けのCHANGELOG(日本語)を生成してください。

## 対象コミット
!`git log --oneline -20`

## CHANGELOG形式
- ### Added / Changed / Fixed / Deprecated のセクション分け
- 技術的な詳細ではなく、ユーザーへの影響を中心に記述
- バージョン番号: $ARGUMENTS

!`コマンド`構文でシェルコマンドの実行結果をプロンプトに埋め込めます。これにより、実行時点の最新情報をコンテキストとして渡せます。私たちの現場では、このパターンでリリースノート生成・テストカバレッジレポートのサマリー・依存パッケージの脆弱性チェックを自動化しています。

カスタムスラッシュコマンドの一覧が表示されたターミナル画面のイメージ
カスタムスラッシュコマンドの一覧が表示されたターミナル画面のイメージ

CLAUDE.md——プロジェクトの文脈をClaudeに永続的に記憶させる

CLAUDE.mdは、Claude Codeがセッション開始時に自動的に読み込む指示ファイルです。「毎回同じことを説明するのが煩わしい」という問題を解決する最も基本的な拡張手段です。

読み込まれるCLAUDE.mdの優先順位

~/.claude/CLAUDE.md(グローバル:全プロジェクト共通の個人設定)
↓ 上書き/追記
プロジェクトルートの CLAUDE.md(リポジトリレベルの指示)
↓ 上書き/追記
サブディレクトリの CLAUDE.md(そのフォルダ作業時のみ追加で読み込み)

すべてのCLAUDE.mdが連結されてシステムプロンプトの冒頭に挿入されます。階層構造を使うことで、「全社共通」「プロジェクト共通」「特定モジュール専用」という粒度で指示を管理できます。

実践的なCLAUDE.mdの書き方

# プロジェクト概要
このリポジトリはNext.js 15 + TypeScript + Prismaで構築したSaaSプロダクトです。
ターゲットユーザー: 中小企業の経理担当者

# 技術スタック
- フロントエンド: Next.js 15 (App Router), Tailwind CSS v4, Shadcn/ui
- バックエンド: Next.js API Routes, Prisma ORM
- DB: PostgreSQL 16
- テスト: Vitest + Testing Library
- デプロイ: Vercel

# コーディング規約
- TypeScriptのstrictモードを厳守
- any型の使用禁止(unknownを使うこと)
- コンポーネントはServer Componentを基本とし、インタラクションが必要な場合のみ"use client"
- 関数コンポーネントのみ使用(クラスコンポーネント禁止)
- テストは変更したファイルと同ディレクトリに __tests__/ フォルダを作成して配置

# 重要なディレクトリ構造
/src/app          - App Routerのページ
/src/components   - 共通UIコンポーネント
/src/lib          - ユーティリティ・設定
/src/server       - サーバーサイドロジック

# 注意事項
- 環境変数は必ず /src/env.ts のスキーマを通じて参照
- DBマイグレーションは `npx prisma migrate dev` で実行
- コミット前に `npm run lint && npm run typecheck` を通すこと

# 禁止事項
- console.logをコードに残すこと(デバッグ後は必ず削除)
- _ で始まる未使用変数の放置

私たちは「注意事項」セクションに特に力を入れています。「環境変数の参照方法」「テストの配置ルール」など、新メンバーが最初に間違えやすいことをここに書いておくと、Claudeが自然と正しいパターンで実装してくれます。

CLAUDE.mdに書くべき内容・書かない方が良い内容

書くべき内容 ✅ 書かない方が良い内容 ❌
技術スタック・バージョン APIキー・パスワード等のシークレット
コーディング規約・命名規則 頻繁に変わるバージョン番号(古くなりやすい)
よく使うコマンド・ビルド手順 冗長な説明(Claudeは賢いので省略可能なことが多い)
プロジェクト固有のディレクトリ構造 「丁寧に答えてください」等の汎用的なお願い
明示的に禁止したいパターン ビジネスロジックの詳細(コードを読ませる方が正確)

フック(Hooks)——イベント駆動で処理を自動化する

フックは、Claude Codeが特定のアクションを実行するタイミングで自動的に外部コマンドを走らせる機能です。2025年に追加された比較的新しい機能で、品質チェックの自動化やセキュリティ制御に特に有効です。

利用可能なフックの種類

フック名 発火タイミング 主な用途
PreToolUse ツール実行前 危険なコマンドのブロック・確認
PostToolUse ツール実行後 ファイル保存後のlint・フォーマット自動実行
Notification Claude から通知が来たとき Slack通知・デスクトップ通知の送信
Stop Claudeの応答が完了したとき 完了ログの記録・後処理スクリプト実行
SubagentStop サブエージェントの応答完了時 並列タスクの完了検知

フックの設定方法

フックは~/.claude/settings.json(ユーザー設定)または.claude/settings.json(プロジェクト設定)に記述します。

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit|MultiEdit",
        "hooks": [
          {
            "type": "command",
            "command": "npx eslint --fix ${file} && npx prettier --write ${file}"
          }
        ]
      }
    ],
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "python3 ~/.claude/hooks/check_dangerous_command.py"
          }
        ]
      }
    ],
    "Notification": [
      {
        "matcher": ".*",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Codeが待機中です\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

危険なコマンドをブロックするPreToolUseフックの実装例

PreToolUseフックはスクリプトの終了コードでClaudeの動作を制御できます。終了コード2を返すとClaudeがそのツールの実行を中止します

#!/usr/bin/env python3
# ~/.claude/hooks/check_dangerous_command.py

import json
import sys

# stdin からツール情報を受け取る
tool_input = json.loads(sys.stdin.read())
command = tool_input.get("command", "")

# 危険なパターンのリスト
dangerous_patterns = [
    "rm -rf /",
    "DROP TABLE",
    "DELETE FROM",
    "> /dev/sda",
    "chmod 777 /",
]

for pattern in dangerous_patterns:
    if pattern.lower() in command.lower():
        print(f"[セキュリティフック] 危険なコマンドをブロックしました: {pattern}", file=sys.stderr)
        sys.exit(2)  # 終了コード2でClaude Codeが実行を中止

sys.exit(0)  # 通常終了でそのまま実行を許可

このパターンは本番環境での事故防止に非常に効果的です。私たちの環境では、`DROP TABLE`系のSQL・本番環境のリセットコマンド・機密ディレクトリへの書き込みをブロックリストに入れており、Claudeが意図せず危険な操作を提案してきた場合の安全弁として機能しています。

イベント駆動のフックによる自動化パイプラインの概念図
イベント駆動のフックによる自動化パイプラインの概念図

Claude Code・AIエージェントの業務導入をご検討の方は、自社での開発実例を公開しているクリスタルメソッドの無料相談をご利用ください。

拡張機能を組み合わせた実践的なワークフロー例

各拡張機能は単独でも有用ですが、組み合わせることで真価を発揮します。以下は私たちが実際に運用しているワークフローのパターンです。

パターン1:PR作成の全自動化

CLAUDE.md
ブランチ命名規則・PRテンプレートを定義
/pr コマンド
gitlogを読み込んでPR文面を生成するスラッシュコマンド
GitHub MCP
生成した文面でGitHub PRを実際に作成

パターン2:コード変更の品質ゲート自動化

Claudeがファイル編集
PostToolUseフック
ESLint + Prettierを自動実行
Vitest自動実行
変更ファイルに関連するテストのみ実行
Notificationフック
完了をデスクトップ通知

パターン3:DBスキーマ変更の安全な補助

PostgreSQL MCP
現在のスキーマをコンテキストとして取得
Claudeがマイグレーション生成
既存スキーマを把握した上で安全なマイグレーション作成
PreToolUseフック
DROP系操作は実行前に強制確認

拡張機能の設定時によくあるトラブルと対処法

症状 原因 対処法
MCPサーバーが認識されない パスの誤り・パッケージ未インストール claude mcp listで確認後、claude mcp get <名前>でエラー詳細を確認
スラッシュコマンドが表示されない ファイル拡張子が.md以外・ディレクトリ名の誤り .claude/commands/配下に.mdで保存し直す。セッションを再起動
フックが発火しない JSONの構文エラー・matcherの誤り settings.jsonをJSONバリデーターで確認。claude doctorコマンドで診断
CLAUDE.mdの内容が反映されない ファイルが大きすぎてコンテキスト制限に当たっている 不要な記述を削除。サブディレクトリのCLAUDE.mdに分割
環境変数がMCPに渡らない シェルのスコープ問題 .envファイルやdirenvで環境変数を管理し、セッション前にexportする
MCPサーバーが頻繁にタイムアウト ネットワーク遅延・サーバーの起動時間 npx の代わりにグローバルインストール済みのバイナリを直接指定

拡張は「数」より「運用」(一次情報)

監修者・河合継はClaude Codeを3.5の時代から1年以上、拡張機能を取り入れながら実務で運用してきた。拡張は揃えること自体が目的になりがちだが、効くのは選び方と運用だ。

  • 効果の中心は派手な拡張より日々の土台。MCPやフックより先に、CLAUDE.mdで文脈を共有し、よく使う操作を整えるほうが、体感の生産性に効いた。拡張はその上に必要な分だけ足すもの、と捉えると迷わない。
  • 入れたら「効いているか」を確かめてから次へ。拡張を増やすほど、何がどう作用しているか見えにくくなる。一つ入れて効果を確認し、要らなければ外す。この回し方が、結局いちばん安定した。
  • 権限とセキュリティは拡張ごとに見る。外部と繋ぐ拡張ほど、できることが増える分リスクも乗る。便利さだけでなく、何を許すのかを拡張単位で確認しておくと安全だった。

拡張機能を使う際のセキュリティ上の注意点

拡張機能はClaude Codeの能力を大幅に拡張しますが、同時にリスクも持ち込みます。実運用で徹底すべき点をまとめます。

  • MCPサーバーはソースを確認してから使う:コミュニティ製MCPサーバーは悪意あるパッケージが存在するリスクがあります。npmパッケージのダウンロード数・メンテナー・コードを確認してください。
  • .mcp.jsonをコミットする前に環境変数を参照しているか確認:APIキーが直書きされていないか、git diffで必ず確認します。
  • フックで実行するスクリプトへの権限を最小化:フックスクリプト自体が意図せぬ操作をしないよう、読み書き権限を絞ります。
  • CLAUDE.mdに機密情報を書かない:リポジトリにコミットされるため、本番DBのURLや認証情報は絶対に記載しないでください。
  • プロジェクトスコープの設定は信頼できるリポジトリのみ.mcp.json.claude/settings.jsonを含む外部リポジトリをcloneする際は、それらのファイルを確認してからclaudeコマンドを実行してください。

利用できるモデルも進化を続けており、現在はClaude 5世代(最上位のFable 5、速度と知能のバランスに優れたSonnet 5)とOpus 4.8・Haiku 4.5が使えます。

まとめ

Claude Codeの拡張機能は、MCPサーバー(外部ツール連携)カスタムスラッシュコマンド(プロンプトの定型化)CLAUDE.md(プロジェクト文脈の永続化)フック(イベント駆動の自動化)という4つの柱で構成されています。

それぞれ単独でも生産性を向上させますが、組み合わせることで「PR作成の全自動化」「コード変更ごとの品質チェック自動実行」「DBスキーマを把握した安全なマイグレーション生成」といった、単なるコード補完を超えたエージェント的なワークフローが実現します。

設定の難易度はCLAUDE.md→カスタムスラッシュコマンド→MCPサーバー→フックの順に上がります。まずはCLAUDE.mdにプロジェクト情報を書き込むところから始め、繰り返し使うプロンプトをスラッシュコマンド化し、徐々に外部ツール連携と自動化へ発展させていくのが現実的な導入ステップです。拡張機能を使いこなすことで、Claude Codeはプロジェクト固有の文脈を理解した「チームの一員」として機能するようになります。

関連記事

監修

河合 継(クリスタルメソッド株式会社 代表取締役)

AI・ディープラーニングに関する特許16件の発明者。過去、国立がん研究センターとの共同研究や、テレビ番組でのAI解説実績を持つAI研究者として、AIの研究開発を主導している。
運営会社について編集方針

Claude Code・AIエージェントの業務活用をご検討の方へ

クリスタルメソッドは、Claude Codeを実務投入している開発会社として、AIエージェント・社員AIの導入と開発効率化を支援しています。自社サイトの表示速度をAI社員(Claude Code)で12.89秒→2.03秒に短縮した実例も事例記事として公開しています。「自社の開発・業務にAIをどう組み込むか」といったご相談を承っています。

AIブログ購読

 
クリスタルメソッドがお届けする
AIブログの更新通知を受け取る

Study about AI

AIについて学ぶ

  • 教育 AI 活用 事例から学ぶ企業研修のDXとAnthropic無償提供が示すプロンプトの重要性

    教育 AI 活用 事例から学ぶ企業研修のDXとAnthropic無償提供が示すプロンプトの重要性

    ## 1. Anthropicによる教育者向けClaude無償提供ニュースの要点 2026年1月、AIスタートアップのAnthropicは、国際NGO「Teac...

  • AI人事評価のリスクと違法性の境界線とは?Meta社リストラ訴訟から学ぶ防衛策

    AI人事評価のリスクと違法性の境界線とは?Meta社リストラ訴訟から学ぶ防衛策

    近年、企業の意思決定プロセスにおいてAI(人工知能)の活用が急速に進んでいます。特に人事評価や採用、人員整理といった領域でのAI導入は、業務効率化や客観性の担保...

  • AIエージェントの相互運用性と規制がもたらす経営インパクト—米上院法案から紐解く日本企業の針路

    AIエージェントの相互運用性と規制がもたらす経営インパクト—米上院法案から紐解く日本企業の針路

    自律的にタスクを遂行するAIエージェントの台頭に伴い、異なるシステムやプラットフォーム間でこれらを安全に連携させる「相互運用性」と、それを支える「規制」のあり方...

View more