elicitation-auditor について
elicitation-auditorは、MCPサーバーのソースコードにあるelicitationのセキュリティ上および仕様上の問題を調べるMCPサーバーです。静的解析でテキスト、ファイル、ディレクトリをスキャンします。
主な機能
- 01フォームモードでの秘密情報要求を検出
- 02第三者の認可URLへの直接遷移を検出
- 03URL内の認証情報や個人データを検出
- 04平文HTTPとフォーム内リンクを検査
- 05本人確認と拒否・キャンセル結果を検査
- 06テキスト、ファイル、ディレクトリをスキャン
活用シーン
- 01リリース前のelicitationコードの確認
- 02elicitation URLに埋め込まれた認証情報の検出
- 03送信された本人情報やキャンセル結果の処理確認
MCP 対応
MCPクライアント向けに、MCPサーバーのソースを監査するscan_text、scan_file、scan_directory、list_patternsツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| label | string | いいえ | 検出結果に表示する任意のラベル(例:ファイル名) |
| content | string | はい | スキャンするコードの内容 |
詳細
@guardbee/mcp-elicitation-auditor
🇬🇧 English | 🇹🇷 Türkçe | 🇨🇳 中文 | 🇯🇵 日本語 | 🇰🇷 한국어 | 🇧🇷 Português | 🇪🇸 Español | 🇩🇪 Deutsch
2026-07-28仕様におけるエリシテーションのアンチパターンをMCPサーバーのソースから検出するMCPサーバーです。
この改訂では、サンプリングとルートが非推奨になりました。サーバーがクライアントに何かを要求する手段として残っているのは、エリシテーションだけです。フォームモードでは、クライアントを通じて構造化データを収集します。URLモードでは、クライアントが読み取ってはならないページにユーザーを誘導します。仕様では、この2つを明確に区別しています。
テレメトリはデフォルトでオフです。
GUARDBEE_TELEMETRY=1を設定すると、サーバー、ツール、成功状況、所要時間、およびファイルパスなどの短いパラメーター値が送信されます。長い文字列や、content、token、passwordなどのフィールドはプレースホルダーに置き換えられます。詳細は@guardbee/mcp-telemetryをご覧ください。
Claude ──► elicitation-auditor ──► MCP server source
│
├─ form-secrets (form mode asks for a password, API key, token, or card, or embeds a link)
├─ url-binding (URL mode opens a third-party /authorize endpoint directly)
├─ url-exposure (credential or email embedded in the elicitation URL)
├─ transport (cleartext http URL outside localhost)
├─ identity (a form answer is treated as who the user is)
└─ completion (the result is used without checking decline or cancel)
検出対象
- フォームモードでの秘密情報の要求。
elicitInput/ctx.elicit/elicitation/createでモードが省略されているかformに設定され、スキーマがpassword、apiKey、access_token、cvvなど同類の値を求めている場合です。名前とメールアドレスのフォームは仕様で許可されており、検出対象ではありません。secretQuestionは秘密情報として扱われません。 - サードパーティーへの認可の直接誘導。 URLモードの
urlパスにauthorize、oauth、oauth2が含まれている場合です。ただし、そのパスが独自の/connectルートを経由する場合を除きます。これは仕様で示されている、転送リンクを使ったフィッシングのケースです。リンクを開くユーザーは、リダイレクトが行われる前にMCPユーザーと照合されなければなりません。 - URL内の認証情報または個人データ。
access_token、code、emailなどのクエリキーが対象です。URLはMCPクライアントに表示されます。 localhostと127.0.0.1を除く、暗号化されていないHTTP。- フォーム内のクリック可能なURL。 HTTPリンクを含むフォームメッセージまたはフィールドの説明です。仕様では、そのリンクはURLモードに置くよう定められています。
- フォームの回答をユーザー識別に使用。 送信されたメールアドレスまたはユーザー名を
findUserやloginAsに渡すか、トークンのsubクレームと比較せずにreq.userへ割り当てている場合です。 - 拒否やキャンセルを無視。 コードが
.contentを読み取る一方で、.action、decline、cancelを確認していない場合です。action !== "accept"を確認すれば十分です。通知先としてメールアドレスを送信することは、ユーザー識別の確認とは見なされません。
ツール
| ツール | 用途 |
|---|---|
scan_text | ソース文字列をスキャン |
scan_file | 1つのファイルをスキャン |
scan_directory | ディレクトリを再帰的にスキャン |
list_patterns | チェック項目を一覧表示 |
CLI
npx @guardbee/mcp-elicitation-auditor scan <path> [--fail-on=any] [--format=text|json|sarif]
guardbee.yml:
elicitation-auditor:
fail-on: high
max-files: 5000
exclude:
- ".test.ts"
APIキーは不要です。静的解析のみを行います。
フィードバック
質問、アイデア、または誤検知はありますか?GitHub Discussionsでスレッドを立てるか、issueを作成してください。GuardBeeが役に立った場合は、リポジトリに⭐を付けていただくと、ほかの人にも見つけてもらいやすくなります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。