MCP サーバーからの入力要求をフックしたい
11. フックコマンド / 機能
Elicitation / ElicitationResultMCP インタラクティブ入力フック
概要
Elicitation は MCP サーバーがユーザーへのインタラクティブな入力を要求した時に発火します。ElicitationResult は入力が完了した後に発火します。MCP サーバーが対話的にデータを収集する際のカスタマイズに使います。
設定例
// .claude/settings.json
{
"hooks": {
"Elicitation": [
{
"type": "command",
"command": ".claude/hooks/handle-elicitation.sh"
}
],
"ElicitationResult": [
{
"type": "command",
"command": ".claude/hooks/on-elicitation-done.sh"
}
]
}
}
// Elicitation フック例:要求内容をログ
#!/bin/bash
prompt=$(echo "$CLAUDE_HOOK_DATA" | jq -r '.prompt')
echo "[Elicitation] MCP requested: $prompt" >> .claude/mcp.logこんな時に使う
- MCP サーバーからのユーザー入力要求をカスタマイズしたい時
- MCP の入力・出力をログに記録したい時
- セキュリティ上 MCP の対話的操作を監視したい時
使い方
- 1hooks.Elicitation で入力要求時の処理を定義
- 2hooks.ElicitationResult で入力完了後の処理を定義
- 3MCP サーバーが elicitation をサポートしている必要あり
Tips
- Elicitation は MCP サーバーが対話的データ収集をする機能
- 終了コード 2 で入力をブロック・拒否できる
- ElicitationResult でユーザーが提供した値を受け取れる