機密データの保護

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

MCP Elicitationは、通常入力のform modeと、資格情報のURL modeの2つに分けて設計します。
MCP serverに追加情報を尋ねさせたいが、機密が会話に流れないか心配な、情シスや開発責任者の方に向けた記事です。
構造化入力、URL mode、同意、監査をどう分けるかが分かります。

古野光太朗古野光太朗·2026.09.21·最終更新 2026.10.03·一次情報 6件
MCP Elicitationの入力を二つに分ける。資格情報はclientを通さず、serverが直接受け取る

MCP Elicitationでは、機密をどう扱うべきですか?

追加質問も権限境界の一部です。機密を自然言語で尋ねず、入力の種類と経路を実装で分けます。

MCP Elicitationは、serverがclientを通じて利用者へ追加情報を求める仕組みです[1]。便利ですが、問い方を誤ると機密が流れます。

serverが自然言語でAPI keyやpasswordを尋ねる場合を考えます。個人番号も同様です。会話履歴、client log、model contextへ機密が流れます。

何を聞けるかをtool説明に任せません。入力の種類と取得経路を、protocolと実装で分離します。

Elicitationの安全設計は、どんな手順で進めますか?

form modeの限定、URL modeでの資格情報取得、URLの検証、同意と監査の記録の順に進めます。

MCPの追加入力で確認する対象と、拒否または次の工程へ渡す条件を示した設計例です。
TechWorker作成:本文の手順を図にした設計例です。製品の公式画面や導入効果の実測ではありません。画像を押すと拡大できます。

対象workspaceと期間は通常の入力欄へ、APIキーは外部の認証画面へ分ける設計例です。追加質問にacceptしても、送信や削除を承認したことにはしません。個人番号など資格情報以外の機微情報は、取得の必要性と利用目的から別に審査します。

  1. form modeを通常の構造化入力に限定します。form modeは、JSON Schemaに基づくfieldを提示します。利用者は、accept、decline、cancelを選べます[1]。用途名、期間、対象の作業領域など、サーバーの処理に必要な通常項目に限ります。自由記述欄に何でも入れられる設計を避け、文字数、形式、選べる値を指定します。未入力でも安全に終了できるようにします。
  2. 資格情報はURL modeへ逃がします。MCPの2025-11-25 releaseは、URL modeを追加しました[2]。clientへは通しません。browser上の外部認証flowで、serverが直接受け取る仕組みです。対象はAPI keyやpasswordです。clientには認証URLを表示させ、callbackのstate、redirect、sessionを検証します。credentialは、elicitation responseやpromptへ返しません。secret storeへ保存します。短期tokenと最小scopeを使います。
  3. URL自体も信頼しすぎません。外部URLは、phishingとopen redirectの入口になります。clientはdomainと目的を明示し、serverは許可済みoriginだけを発行します。OAuth security best current practiceは、4つを示しています[3]。redirect URIの厳密照合、PKCE、mix-up対策、token leakage防止です。認証後は、MCP server向けのaudienceとscopeを検証します。第三者tokenのpassthroughは拒否します[4]。
  4. 同意と監査を別々に残します。formのaccept、外部認証の完了、tool実行の承認は、それぞれ別の出来事です。request ID、server、field分類、同意結果を記録します。実行されたtool、対象resource、結果も記録します。値そのもの、token、passwordはlogへ残しません。高riskな送信、削除、支払いは、資格情報の取得後も直前確認を要求します。
  5. 公開前に脅威testを行います。失敗を試験して、clientとserverの両方で拒否点を定義します。試す例は次のとおりです。
    • malicious serverがpasswordを通常fieldとして要求する
    • 正規serverが第三者tokenをpromptへ貼るよう指示する
    • 外部URLが似たdomainへredirectする
    • callbackのstateが別sessionと入れ替わる
    • 利用者がcancelした後もtoolが実行される

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は、別のinventoryで管理します。管理する項目は、owner、scope、rotation、失効です。

監査logを使ったincident drill(事故対応の訓練)も必要です。怪しいURLを開いた場合は、次を確認します。

秘密値を調査資料へ転記しません。rotation完了までの責任者を決めます。

Elicitationの設計がうまくいかない例には、どんなものがありますか?

URL modeを万能と考える、schema検証を権限確認と混同する、未対応のclientで取得を続ける、の3つです。

form modeとURL modeは、何がどう違いますか?

form modeは通常の構造化入力、URL modeは資格情報の取得に使い、経路と守るべき点が異なります。

項目form modeURL mode
用途用途名、期間、対象workspaceなどの通常項目API keyやpasswordなどの資格情報
入力の経路clientを通じて利用者へ提示browser上の外部認証flowでserverが直接受け取る
守る点長さ、format、enumの指定と、server側の権限確認redirect、state、audience、scopeの検証
残る限界schema検証は権限確認の代わりにならない悪意あるserverや同意画面の誤認は自動では防げない

よくある質問

MCPのElicitationで、APIキーやパスワードを入力させてよいですか?

form modeでは尋ねません。serverが自然言語や通常のfieldで資格情報を尋ねると、機密が流れます。流れ先は、会話履歴、client log、model contextです。API keyやpasswordはURL modeを使います。browser上の外部認証flowで、serverが直接受け取ります。

Elicitationのform modeでは、どんな項目を聞いてよいですか?

用途名、期間、対象workspaceなど、server処理に必要な通常の項目に限ります。free textを万能欄にせず、長さ、format、enumを指定します。schema検証は入力の妥当性の確認です。access権限の確認は、server側で別に行います。

URL modeを使えば、資格情報の取得は安全といえますか?

安全とまではいえません。URL modeは資格情報の漏えい経路を減らします。ただし、悪意あるserver、同意画面の誤認、過剰なscopeは自動では防ぎません。redirect URIの厳密照合やPKCE、audienceとscopeの検証、直前確認を重ねます。

次の一歩は何から始めればよいですか?

いまのserverが尋ねている項目を洗い出し、資格情報をURL modeへ移すことから始めます。

  1. serverがElicitationで尋ねている項目を洗い出します。
  2. 資格情報をform modeから外し、対応clientではURL modeの認証経路へ移します。個人番号などは取得の必要性を別に審査します。
  3. 公開前の脅威testで、拒否点とログの項目を確認します。

出典(一次情報と確認範囲)

確認日: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セキュリティ・ラボの記事一覧に戻る