Skip to content

原文(日本語に翻訳)

MCPエリシテーションのサポートを追加 — MCPサーバーがタスク実行中にインタラクティブなダイアログ(フォームフィールドまたはブラウザURL)を通じて構造化入力を要求できるようになりました

原文(英語)

Added MCP elicitation support — MCP servers can now request structured input mid-task via an interactive dialog (form fields or browser URL)

概要

MCP(Model Context Protocol)のエリシテーション機能により、MCPサーバーがタスク実行中にユーザーへ構造化入力を要求できるようになりました。フォームフィールドへの入力やブラウザでの認証など、MCPサーバーが必要な情報をインタラクティブに収集できます。設定は不要で、対応するMCPサーバーが要求を送ると自動的にダイアログが表示されます。

基本的な使い方

エリシテーションはMCPサーバー側の機能であり、Claude Code側で特別な設定は必要ありません。MCPサーバーがエリシテーションリクエストを送信すると、Claude Codeは自動的にダイアログを表示します。

フォームモード: MCPサーバーが定義したフォームフィールドが表示される

┌─────────────────────────────────────────┐
│ データベース接続情報を入力してください     │
│                                         │
│ ホスト名: [________________]            │
│ ユーザー名: [________________]          │
│ パスワード: [________________]          │
│                                         │
│      [キャンセル]  [送信]               │
└─────────────────────────────────────────┘

URLモード: ブラウザが自動的に開き、OAuth認証などのフローを実行

MCPサーバーが認証を要求しています。
ブラウザで認証を完了してください...
URL: https://auth.example.com/oauth/authorize?...

実践例

GitHubなどのOAuth認証が必要なサービスへの接続

bash
# GitHubのMCPサーバーを追加
claude mcp add --transport http github https://api.githubcopilot.com/mcp/

# Claude Code内でMCPを起動
# /mcp と入力すると認証フローが始まる

セッション中にGitHub関連のタスクを依頼すると、MCPサーバーが認証を要求するエリシテーションダイアログが表示されます。

Claudeへの依頼: "PRのレビューをして"
→ MCPサーバーがGitHub認証を要求
→ ブラウザが開きOAuth認証フローが実行される
→ 認証完了後、タスクが続行される

フォームフィールドによる設定情報の入力

カスタムMCPサーバーがデータベース接続情報などを要求する場面:

Claudeへの依頼: "本番DBのユーザー一覧を確認して"
→ MCPサーバーが接続情報を要求するフォームを表示
→ ホスト名、ユーザー名、パスワードを入力
→ MCPサーバーが接続してデータを取得

Elicitationフックで自動応答する

繰り返し同じ入力が必要な場合は Elicitation フックで自動化できます。

json
// .claude/settings.json
{
  "hooks": {
    "Elicitation": [
      {
        "matcher": "my-db-server",
        "hooks": [
          {
            "type": "command",
            "command": ".claude/hooks/auto-respond-elicitation.sh"
          }
        ]
      }
    ]
  }
}
bash
# auto-respond-elicitation.sh
#!/bin/bash
# 標準入力からエリシテーションデータを読み込む
INPUT=$(cat)
# 事前定義された値で自動応答
echo '{
  "hookSpecificOutput": {
    "hookEventName": "Elicitation",
    "action": "accept",
    "content": {
      "host": "db.internal.company.com",
      "username": "readonly_user"
    }
  }
}'

注意点

  • セキュリティ: フォームに入力した情報はMCPサーバーに送信されます。信頼できるMCPサーバーのみに接続してください
  • アクション: エリシテーションへの応答として accept(承認)、decline(拒否)、cancel(キャンセル)が選択できます
  • URLモード: ブラウザが自動的に開かない場合は、表示されたURLを手動でブラウザに貼り付けてください
  • MCP仕様: MCP 1.1以降のエリシテーション仕様に対応したサーバーが必要です

関連情報