原文(日本語に翻訳)
フックから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"(シェルコマンド実行)との混在も可能です