cisco-ai-defense/mcp-scanner

Scan MCP servers for potential threats & security findings.

MCP Scanner とは?

MCP Scanner は、Model Context Protocol(MCP)サーバーと、それらが公開するアセット(ツール、プロンプト、リソース、さらにはサーバーコード自体)を検査する Python ベースのセキュリティツールです。3 つの分析エンジンを組み合わせています:

  1. Cisco AI Defense inspect API – MCP ペイロードを評価できる独自サービス。
  2. YARA – 既知の悪意のあるコードに対する古典的なパターンマッチングルール。
  3. LLM ベースの分析 – プロンプト、ツール、コードの安全性を推論する大規模言語モデルのプロンプト。

結果は詳細なセキュリティレポートで、ローカル、CI/CD パイプライン、または REST API 経由で使用できます。


主な機能(README に記載)

機能 説明
複数の操作モード スタンドアロン CLI(mcp-scanner)として実行するか、スキャナーを REST API(mcp-scanner-api)として公開します。
3 エンジン分析 YARA、Cisco AI Defense API、LLM を組み合わせて、または個別に使用します。
脆弱性パッケージスキャン pip-audit を統合し、Python 依存関係の既知の CVE をフラグします。
準備性スキャン タイムアウトやエラーハンドリングの欠如など、本番環境向けの懸念事項を静的にチェックします。
動作コードスキャン Docker サンドボックスで実行するか、MCP サーバーのソースコードを静的に分析して悪意のある動作を検出します。
VirusTotal バイナリスキャン バンドルされたファイル(画像、PDF、実行可能ファイル、アーカイブ)の SHA-256 ハッシュを VirusTotal で検索します。
PyPI および npm サプライチェーンスキャン パッケージをダウンロードし、隔離された Docker コンテナで実行し、その動作を分析します。
静的/オフラインスキャン 事前生成された MCP JSON ファイルを受け入れます – CI/CD やエアギャップ環境に最適です。
きめ細かい認証 OAuth、ベアラートークン、カスタム HTTP ヘッダー、および Cisco AI Defense、LLM プロバイダー、VirusTotal の明示的な API キー設定をサポートします。
MCP 2.0 プロトコルサポート 今後の 2026-07-28 プロトコルバージョンをネゴシエートし、レガシーハンドシェイクに自動的にフォールバックします。
カスタム YARA ルール ユーザーは独自のルールセットを追加して、組織固有のパターンを検出できます。
包括的なレポート 複数の出力形式(要約、表、生 JSON、ツール別)と、より深い洞察のための --detailed フラグ。

実行方法

  1. 前提条件 – Python 3.11+、uv パッケージマネージャー、およびオプションの API キー(Cisco AI Defense、LLM プロバイダー、VirusTotal)。MCP Python SDK(mcp>=2.0.0)がバンドルされています。
  2. インストール – グローバルツールとして:
    uv tool install --python 3.13 cisco-ai-mcp-scanner
    
    またはソースから uv sync を使用。
  3. 設定 – 使用するサービスの環境変数をエクスポートします。例:
    export MCP_SCANNER_API_KEY=…          # Cisco AI Defense
    export MCP_SCANNER_LLM_API_KEY=…      # OpenAI / Bedrock など
    export VIRUSTOTAL_API_KEY=…           # VirusTotal
    
  4. クイックスキャンを実行 – YARA のみでリモートサーバーをスキャンする CLI コマンドの例:
    mcp-scanner --server-url https://mcp.example.com/mcp \
                --analyzers yara --format summary
    
    または REST API を起動:
    mcp-scanner-api --host 0.0.0.0 --port 8080
    

典型的なユースケース

シナリオ MCP Scanner が役立つ理由
内部 LLM サービスのセキュリティ監査 MCP プロトコル実装とプロンプト/ツールの内容の両方をチェックし、隠れた悪意のある動作を検出します。
サードパーティパッケージのサプライチェーンレビュー pypi-scan / npm-scan がパッケージをダウンロードし、サンドボックス化し、動作分析と YARA チェックを実行します。
CI/CD ゲート 生成された MCP JSON ファイルに対して static サブコマンドを使用して、コードが昇格される前に安全性を強制します。
インシデント対応 疑わしい MCP サーバーにバンドルされたバイナリに対して virustotal をすばやく実行します。
コンプライアンス vulnerable-package は Python 依存関係の既知の CVE をフラグし、LLM/YARA の調査結果を補完します。

制限と考慮事項(README より)

  • LLM アナライザーには有料の API キー(OpenAI、Bedrock、Azure など)が必要です – ツールはモデルにプロンプトを送信するだけで、モデルをローカルでホストすることはありません。
  • VirusTotal ルックアップには API キーが必要です。ファイルのアップロードはオプションで、プライバシーのためデフォルトで無効になっています。
  • PyPI/npm パッケージの動作分析はデフォルトで Docker 内で実行されます。Docker を無効にすると(--no-docker)、コードはプロセス内で実行され、分離性が低くなる可能性があります。
  • stdio ベースの MCP サーバーのスキャンでは、サーバーが重い起動作業を実行する場合、より長いタイムアウト(MCP_SCANNER_STDIO_TIMEOUT)が必要になる場合があります。
  • このツールはセキュリティ調査結果に焦点を当てており、問題を自動的に修正または是正しようとはしません。

誰にとって役立つか?

  • セキュリティエンジニア – MCP エンドポイントを公開する内部 LLM ベースのサービスを保護します。
  • DevOps / CI チーム – MCP サーバーが使用する Python または JavaScript パッケージのサプライチェーン安全性の自動ゲートを希望します。
  • MCP ベースのアプリケーション開発者 – ツール、プロンプト、リソースが意図せず悪意を持たないことを確認する必要があります。
  • レッドチーム / 監査コンサルタント – YARA シグネチャ、LLM 推論、Cisco の AI-Defense API をターゲットの MCP デプロイメントに組み合わせる簡単な方法を探しています。

結論

cisco-ai-mcp-scanner は、新興の Model Context Protocol エコシステムに特化した、フル機能の Python ネイティブセキュリティスキャナーです。YARA、商用 AI 防御サービス、LLM 推論を組み合わせることで、実務者に MCP サーバー、そのコード、および依存パッケージの安全性を評価するための単一のコマンドライン(または API)インターフェースを提供します。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト