MCP serverが利用者へ追加情報を求めるElicitationで、構造化入力、URL mode、資格情報、同意、監査を分ける安全設計を解説します。
追加質問も権限境界の一部である
MCP Elicitationはserverがclientを通じて利用者へ追加情報を求める仕組みです[1]。便利ですが、serverが自然言語でAPI key、password、個人番号を尋ねると、会話履歴、client log、model contextへ機密が流れます。何を聞けるかをtool説明に任せず、入力種類と取得経路をprotocolと実装で分離します。
form modeは通常の構造化入力に限定する
form modeではJSON Schemaに基づくfieldを提示し、利用者はaccept、decline、cancelを選べます[1]。用途名、期間、対象workspaceなど、server処理に必要な通常項目へ限定します。free textを万能欄にせず、長さ、format、enumを指定し、未入力でも安全に終了できるようにします。schema validationは入力妥当性であり、access権限の確認はserver側で別に行います。
資格情報はURL modeへ逃がす
MCPの2025-11-25 releaseは、API keyやpasswordをclientへ通さず、browser上の外部認証flowでserverが直接受け取るURL modeを追加しました[2]。clientには認証URLを表示させ、callbackのstate、redirect、sessionを検証します。credentialをelicitation responseやpromptへ返さず、secret storeへ保存し、短期tokenと最小scopeを使います。
URL自体も信頼しすぎない
外部URLはphishingとopen redirectの入口になります。clientはdomainと目的を明示し、serverは許可済みoriginだけを発行します。OAuth security best current practiceはredirect URIの厳密照合、PKCE、mix-up対策、token leakage防止を示します[3]。認証後はMCP server向けaudienceとscopeを検証し、第三者tokenのpassthroughを拒否します[4]。
同意と監査を別々に残す
利用者がformをacceptした事実、外部認証が完了した事実、tool実行を承認した事実は同じではありません。request ID、server、field分類、同意結果、実行されたtool、対象resource、結果を記録します。値そのもの、token、passwordはlogへ残しません。高riskな送信、削除、支払いは資格情報取得後も直前確認を要求します。
適用限界
URL modeはcredential漏えいの経路を減らしますが、悪意あるserver、同意画面の誤認、過剰scopeを自動で防ぎません。stdio transportやlocal secret取得は別の脅威modelです。MCP仕様versionとclient実装差を確認し、unsupported clientでは機密取得flowを無理にfallbackさせず停止します。
公開前の脅威test
malicious serverがpasswordを通常fieldとして要求する、正規serverが第三者tokenをpromptへ貼るよう指示する、外部URLが似たdomainへredirectする、callbackのstateが別sessionと入れ替わる、利用者がcancelした後もtoolが実行される、といった失敗をtestします。clientとserverの両方で拒否点を定義します。
form responseへHTMLやscript、極端に長い文字列、別workspace IDを入れ、schema validation後もauthorizationが働くか確認します。入力を表示するUIではescapeし、logとerror messageへ値を出さないようにします。URL modeはHTTPS、allowlisted origin、単回state、短い有効期限を使い、完了後にcredentialをclientへ戻さないことを確認します。
同意画面ではserver名、取得目的、field名、外部遷移先、cancel方法を表示します。acceptが既定になったdark patternを避け、後から接続を解除できる導線を用意します。service tokenのように人の同意がないcredentialは、owner、scope、rotation、失効を別のinventoryで管理します。
監査logを使ったincident drillも必要です。怪しいURLを開いた場合、発行tokenを失効し、該当server接続を止め、同じrequest IDのtool実行と外部送信を追えることを確認します。秘密値を調査資料へ転記せず、rotation完了までの責任者を決めます。
一次情報と確認範囲
確認日:2026年9月21日。海外の制度・製品仕様・研究結果は日本へそのまま適用せず、国内法・契約・対象条件を別途確認してください。

