Skip to content

拡張機能(Hooks & MCP)

Hooks(自動処理)と MCP(外部ツール連携)で Claude Code の機能を拡張します。


Hooks: 自動化

Hooks は、Claude Code のツール実行前後に自動処理を追加する仕組みです。.claude/settings.json に設定します。

Hookタイミング用途
PreToolUseツール実行前実行の許可/拒否
PostToolUseツール実行後自動フォーマット、検証
Notification通知送信時カスタム通知

例: ファイル保存時の自動フォーマット

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "command": "prettier --write \"$CLAUDE_FILE_PATH\""
      }
    ]
  }
}

環境変数 $CLAUDE_FILE_PATH(操作対象ファイル)と $CLAUDE_TOOL_NAME(ツール名)が利用可能です。

Hooks のその他の例

ESLint の自動修正

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "command": "eslint --fix \"$CLAUDE_FILE_PATH\" 2>/dev/null || true"
      }
    ]
  }
}

特定ファイルの編集防止(PreToolUse)

PreToolUse の終了コードで動作が変わります:

  • 0: 自動承認 / 2: ブロック / その他: 通常フロー

MCP: 外部ツール連携

MCP(Model Context Protocol)は、Claude Code を外部サービスと連携させるプロトコルです。.claude/settings.json に設定します。

json
{
  "mcpServers": {
    "slack": {
      "command": "npx",
      "args": ["-y", "@anthropic/mcp-server-slack"],
      "env": { "SLACK_BOT_TOKEN": "xoxb-your-token" }
    }
  }
}

主要なサーバー: Slack, GitHub, Filesystem 等。/mcp で接続状態を確認できます。

セキュリティ上の注意

  • 最小権限の原則に従い、必要な権限だけを付与する
  • API トークンは ~/.claude/settings.json に記載(.gitignore で除外)
  • 読み取り専用トークンの利用を検討する

カスタムコマンド

.claude/commands/ にマークダウンファイルを配置すると、スラッシュコマンドとして呼び出せます。

my-project/.claude/commands/review.md → /project:review

最終更新:

Anthropic公式ドキュメントを基に作成