MCP Elicitation

MCP Elicitationの安全設計|資格情報と機密入力をAI会話から分離する

MCP serverが利用者へ追加情報を求めるElicitationで、構造化入力、URL mode、資格情報、同意、監査を分ける安全設計を解説します。

古野光太朗古野光太朗·2026.09.21·一次情報 6件
MCP serverの追加入力要求を通常項目、機密項目、資格情報に分類し、inline formと外部URLへ分ける判断フロー

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日。海外の制度・製品仕様・研究結果は日本へそのまま適用せず、国内法・契約・対象条件を別途確認してください。

  1. S-1 MCP Elicitation specification
  2. S-2 MCP 2025-11-25 release
  3. S-3 RFC 9700 OAuth 2.0 Security BCP
  4. S-4 MCP Security Best Practices
  5. S-5 MCP Authorization
  6. S-6 OWASP Secrets Management Cheat Sheet
古野光太朗
古野光太朗 / 株式会社TechWorker 代表取締役 CEO兼CTO

上場企業を含む37社・2,500名の生成AI導入・研修支援で得た実務知をもとに、導入・運用・顧客理解を扱っています。この実績はTechWorkerの生成AI支援実績であり、個別製品の導入実績を示すものではありません。

MCPの安全な入力導線を設計する

構造化入力と資格情報取得を分離し、機密情報を会話へ流さない境界を作ります。

AIセキュリティを相談する
← AIセキュリティ・ラボの記事一覧に戻る