Skip to content

原文(日本語に翻訳)

フックからtype: "mcp_tool"を使用してMCPツールを直接呼び出せるようになった。

原文(英語)

Hooks can now invoke MCP tools directly via type: "mcp_tool"

概要

Claude CodeのHooks機能がMCPツールを直接呼び出せるようになりました。これまでHooksはシェルコマンドを実行するのみでしたが、type: "mcp_tool"を指定することで、設定済みのMCPサーバーのツールをHooksから直接実行できます。これにより、特定のイベント(ファイル編集後、コマンド実行前など)にMCPツールを自動実行する強力な自動化が実現できます。

基本的な使い方

~/.claude/settings.jsonのHooks設定にtype: "mcp_tool"を追加します:

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write",
        "hooks": [
          {
            "type": "mcp_tool",
            "server": "my-mcp-server",
            "tool": "notify",
            "input": {
              "message": "ファイルが書き込まれました"
            }
          }
        ]
      }
    ]
  }
}

実践例

ファイル保存後にMCPツールで通知を送る

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Write|Edit",
        "hooks": [
          {
            "type": "mcp_tool",
            "server": "slack-mcp",
            "tool": "send_message",
            "input": {
              "channel": "#dev-notifications",
              "text": "Claude Codeがファイルを更新しました"
            }
          }
        ]
      }
    ]
  }
}

コマンド実行後にデータベースにログを記録する

json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "mcp_tool",
            "server": "database-mcp",
            "tool": "insert_log",
            "input": {
              "table": "command_history",
              "data": {
                "timestamp": "{{timestamp}}",
                "event": "bash_executed"
              }
            }
          }
        ]
      }
    ]
  }
}

セッション終了時にMCPでバックアップを実行する

json
{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "mcp_tool",
            "server": "backup-mcp",
            "tool": "create_snapshot",
            "input": {
              "directory": "{{cwd}}",
              "label": "claude-session-end"
            }
          }
        ]
      }
    ]
  }
}

注意点

  • serverには設定済みのMCPサーバー名を指定します
  • toolにはそのMCPサーバーが提供するツール名を指定します
  • inputはツールに渡すパラメータをオブジェクトで指定します
  • MCPサーバーが起動していない場合、Hookは失敗します
  • 既存のtype: "command"(シェルコマンド実行)との混在も可能です

関連情報