
MCPサーバー向けセキュリティスキャナー。認証、権限、インジェクションリスク、ツールの安全性を評価。エージェントセキュリティの灯台。
エージェントセキュリティの灯台
任意のMCPサーバーをスキャン。セキュリティレポートカードを入手。
あなたのMCPサーバーはAIエージェントにツールを公開しています。そのセキュリティはどの程度ですか?
ほとんどのMCPサーバーは、認証なし、ツールごとの権限なし、入力検証なし、そしてプロンプトインジェクションに対して脆弱なツール説明文を備えて出荷されています。あなたはまだそれを知らないだけです。
AgentsID Scannerが教えてくれます。
npx @agentsid/scanner -- npx @some/mcp-server
これだけです。レターグレードと詳細な結果が得られます。
| カテゴリ | チェック内容 | なぜ重要か |
|---|---|---|
| インジェクション | 11種類のプロンプトインジェクションパターンに対するツール説明文 | 悪意のあるツール説明文はエージェントの動作を乗っ取る可能性あり |
| 権限 | リスク別(破壊的、実行、財務、資格情報)に分類されたツール名 | アクセス制御がない50のツールは50の攻撃対象となる |
| 検証 | 入力スキーマの制約不足、無制限文字列、オプションのみのパラメータ | 検証なし=ツールハンドラへの任意入力 |
| 認証 | ツール表面における認証指標 | 認証なしツール=認証されていないエージェントがツールを呼び出せる |
| シークレット | 出力に資格情報を露出する可能性のあるツール | レスポンスにAPIキー、トークン、パスワードが漏洩 |
| 出力 | フィルタリングされていないファイル/データ出力 | 機密ファイルの内容が編集なしで返される |
╔══════════════════════════════════════════════════════════════╗
║ AgentsID セキュリティスキャナー — レポート ║
╚══════════════════════════════════════════════════════════════╝
サーバー: my-mcp-server v1.0.0
ツール数: 23
スキャン日時: 2026-03-29T12:00:00.000Z
総合評価: D (42/100)
カテゴリ別評価:
インジェクション A
権限 F
検証 D
認証 F
出力 B
ツールリスクプロファイル:
破壊的 ████ 4
実行 ██ 2
資格情報アクセス █ 1
検出結果: 31
CRITICAL: 2
HIGH: 8
MEDIUM: 15
LOW: 6
推奨事項:
1. CRITICALおよびHIGHの検出結果に直ちに対処する
2. ツールごとの権限制御を追加する (agentsid.dev/docs)
3. すべてのツールパラメータに入力検証を実装する
4. サーバーエンドポイントに認証を追加する
# npxでインストール可能な任意のMCPサーバーをスキャン
agentsid-scan -- npx @modelcontextprotocol/server-filesystem ./
# ローカルサーバーファイルをスキャン
agentsid-scan -- node my-server.mjs
# Python MCPサーバーをスキャン
agentsid-scan -- python -m my_mcp_server
agentsid-scan --url https://mcp.example.com/mcp
agentsid-scan --json -- npx @some/mcp-server > report.json
agentsid-scan --env API_KEY=xxx --env DB_URL=postgres://... -- node server.mjs
100点からスタート。検出結果ごとに減点:
MEDIUMおよびLOWの検出結果はツール数で正規化されるため、ツールごとの問題(例:すべての入力にmaxLengthがない)がサーバーサイズに比例して累積しません。50ツールのサーバーで50個のLOWがあった場合、5ツールのサーバーで5個のLOWと同じスコアになります。CRITICALとHIGHは絶対値のままです — 本当の脆弱性はサーバーサイズに関係なく危険です。
スキャナーはツール説明文から11種類のプロンプトインジェクションパターンをチェックします:
すべてのツールは名前パターンで分類されます:
スキャナーが問題を教えてくれます。修正方法は以下の通りです:
npm install @agentsid/guard
AgentsID Guard は、すべてのツール呼び出しを実行前に権限ルールに照らして検証します。50ツール、16カテゴリ、すべて保護されます。
npm install @agentsid/sdk
MCPサーバーに3行のミドルウェアを追加するだけです。詳細なドキュメントは agentsid.dev/docs をご覧ください。
import { scanStdio, scanHttp, scanToolDefinitions } from "@agentsid/scanner";
// ローカルサーバーをスキャン
const report = await scanStdio("npx @some/server", { json: true });
// リモートサーバーをスキャン
const report = await scanHttp("https://mcp.example.com", { json: true });
// ツール定義を直接スキャン(サーバー不要)
const report = scanToolDefinitions(myToolArray, { json: true });
検出できていないパターンを見つけましたか? Issueを開くかPRを送ってください。ルールエンジンは src/rules.mjs にあります — 新しいパターンの追加は1つの正規表現で完了します。
全15,982サーバーのスコア検索可能: agentsid.dev/registry
MIT
| 深刻度 | 減点 | 正規化 | 上限 |
|---|
| CRITICAL | 各-25 | 絶対 — 常にフル適用 | 上限なし |
| HIGH | 各-15 | 絶対 — 常にフル適用 | 最大-45 |
| MEDIUM | 各-8 | ツール数の平方根で除算 | 最大-25 |
| LOW | 各-3 | ツール数の平方根で除算 | 最大-15 |
| INFO | 0 | — | — |
| グレード | スコア | 意味 |
|---|
| A | 90-100 | 優れたセキュリティ体制 |
| B | 75-89 | 良好 — 軽微な問題 |
| C | 60-74 | 許容可能 — 改善が必要 |
| D | 40-59 | 不良 — 重大なリスク |
| F | 0-39 | 不合格 — 致命的な脆弱性 |
| リスクレベル | パターン | ツール例 |
|---|
| Critical | execute, shell, admin, sudo, payment | shell_run, admin_reset, process_payment |
| High | delete, remove, drop, deploy, credential | delete_user, deploy_prod, get_api_key |
| Medium | create, update, send, write | create_issue, send_email, write_file |
| Info | read, get, list, search, describe | get_status, list_users, search_docs |