
MCPサーバーのための統合セキュリティスキャナーで、config、pentest、repo-scanモードを備えています。CI/CD統合用にSARIFレポートを生成し、トークンおよびLLMアナライザーを介してシークレット、脆弱性、誤設定を検出します。
MCP X-Ray は、Model Context Protocol (MCP) サーバー向けの統合型オープンソースセキュリティスキャニングおよびペネトレーションテストソリューションです。本番環境対応の SARIF レポート を生成し、セキュリティツールや CI/CD パイプラインとのシームレスな統合を実現します。スキャン結果はオプションで Traceforce Atlas にアップロードし、集中管理および追跡が可能です。Atlas はレジストリに 600 以上の MCP を保有しており、MCP エコシステム向けの包括的なセキュリティ評価データベースを提供します。

# リポジトリのクローン
git clone https://github.com/traceforce/mcp-xray
cd mcp-xray
# 必要な依存関係をインストール (buf など)
make install-dependencies
# すべてをビルド (protobuf コードの生成とバイナリのビルド)
# バイナリはカレントディレクトリに `mcpxray` として作成されます
make all
MCP 設定のセキュリティ問題をスキャンします。ペネトレーションテストの前にベースラインを確認するために実行します。
# 特定の MCP 設定ファイルをスキャン (デフォルトではトークンアナライザを使用)
./mcpxray config-scan /path/to/mcp/config.json
# Cursor、Claude、Windsurf 向けの既知の MCP 設定パスを自動的にスキャン
# 既知の設定場所 (ホームディレクトリからの相対パス):
# ~/.cursor/mcp.json (Cursor)
# ~/Library/Application Support/Claude/claude_desktop_config.json (Claude Desktop)
# ~/.codeium/windsurf/mcp_config.json (Windsurf)
./mcpxray config-scan --scan-known-configs
# より広範かつ深い分析のために LLM アナライザを使用
./mcpxray config-scan /path/to/mcp/config.json --analyzer-type llm --llm-model claude-3-5-sonnet-20241022
# カスタム出力ファイルを指定
./mcpxray config-scan /path/to/mcp/config.json --output custom-report.sarif.json
検出機能:
MCP サーバーに対して実際のツール呼び出しを行い、セキュリティテスト計画を実行します。本番環境にデプロイする前に実行してください。ペネトレーションテストには LLM が必要です。
# 自動生成されたテスト計画でペネトレーションテストを実行 (LLM モデルが必要)
./mcpxray pentest /path/to/mcp/config.json --llm-model claude-sonnet-4-5
# カスタムテスト計画 YAML ファイルを使用
./mcpxray pentest /path/to/mcp/config.json --test-plan /path/to/test-plan.yaml --llm-model claude-sonnet-4-5
検出機能: コード実行、SSRF、パストラバーサル、認可バイパス、入力インジェクション、情報漏洩、DoS 脆弱性
コードベースの脆弱性をスキャンします。コードを所有している、または変更可能な場合に使用します。
# カレントディレクトリをスキャン
./mcpxray repo-scan
# 特定のリポジトリをスキャン
./mcpxray repo-scan /path/to/repository
# カスタム出力ファイルを指定
./mcpxray repo-scan --output custom-report.sarif.json
検出機能:
MCP X-Ray は SARIF (Static Analysis Results Interchange Format) 形式でレポートを生成します。この形式はセキュリティツールや CI/CD プラットフォームで広くサポートされています。
スキャン結果を Traceforce Atlas にアップロードし、集中管理、レポート作成、経時的な追跡を行います。任意のスキャンコマンドに --upload フラグを追加してください。--clean-up を使用すると、アップロード成功後に生成されたファイルを削除できます。
必要な環境変数:
TRACEFORCE_CLIENT_IDTRACEFORCE_CLIENT_SECRETこれらの認証情報は Atlas UI の設定ページからダウンロードできます。
# 設定スキャン結果のアップロード
./mcpxray config-scan /path/to/mcp/config.json --upload
# クリーンアップ付きアップロード
./mcpxray config-scan /path/xia-add-registry-imageto/mcp/config.json --upload --clean-up
# ペネトレーションテスト結果のアップロード
./mcpxray pentest /path/to/mcp/config.json --llm-model claude-sonnet-4-5 --upload

スキャン出力例は examples/findings/ にあります。
MCP 設定ファイルの例は examples/mcp_configs/ ディレクトリにあります。
MCP サーバーの例は examples/mcp_server/ ディレクトリにあります:
mcp_server.py: FastMCP サーバー (streamable-http トランスポート使用)mcp.json: サーバー接続用の設定ファイルREADME.md: サーバーのセットアップおよびスキャン手順MCP X-Ray はツールのセキュリティ分析に2つの方法を提供します。
トークンアナライザはルールベースのパターンマッチングを使用して、ツールの説明文のセキュリティ問題を迅速に検出します。高速で、API キーが不要で、オフラインでも動作します。トークンアナライザは2種類のルールを使用します:
internal/configscan/tokenanalyzer/token_rules.yaml で定義されています。各ルールは以下を指定します:
internal/yararules/unsafe_patterns.yar で定義されています。これらのルールは安全でないシステムコマンドパターンを検出します。使い方:
mcpxray config-scan --analyzer-type token
LLM アナライザは大規模言語モデルを使用してツールの説明文を深く意味解析し、より包括的なセキュリティインサイトを提供します。
使い方:
mcpxray config-scan --analyzer-type llm --llm-model <model-name>
デフォルトでは、ペネトレーションテストツールは LLM を使用して、MCP サーバーが利用可能なツールに基づいてテスト計画を自動生成します。テスト計画は YAML ファイルとしてカスタマイズして提供することもできます。テスト計画は、入力引数と期待される出力を含むテストケースからなる YAML ファイルです。
デフォルトの動作 (LLM 生成テスト計画):
./mcpxray pentest /path/to/mcp/config.json --llm-model claude-sonnet-4-5
カスタムテスト計画:
./mcpxray pentest /path/to/mcp/config.json --test-plan /path/to/test-plan.yaml --llm-model claude-sonnet-4-5
MCP X-Ray はツール分析に以下の LLM プロバイダーをサポートしています。
claude-sonnet-4-5ANTHROPIC_API_KEY 環境変数gpt-5OPENAI_API_KEY 環境変数arn:aws:bedrock: で始まり llama を含む Meta Llama 推論プロファイル ARNarn:aws:bedrock:<region>:<account-id>:inference-profile/us.meta.llama3-2-1b-instruct-v1:0LLM ベースのツール分析のために、LLM API 認証情報を設定します。
export ANTHROPIC_API_KEY=your-api-key
export OPENAI_API_KEY=your-api-key
各プロバイダーにはそれぞれ固有の環境変数が必要です。ツールはモデル名に基づいて使用するプロバイダーを自動的に検出します。
AWS Bedrock モデルでは、標準の AWS SDK 方式のいずれかを使用して AWS 認証情報を設定します。
# オプション1: 環境変数
export AWS_ACCESS_KEY_ID=your-access-key
export AWS_SECRET_ACCESS_KEY=your-secret-key
export AWS_REGION=us-east-1
# オプション2: AWS 認証情報ファイル (~/.aws/credentials)
# オプション3: IAM ロール (EC2/ECS/Lambda 上で実行時)
MCP X-Ray は AWS SDK を使用して、環境変数、認証情報ファイル、または IAM ロールから自動的に認証情報を読み込みます。
コントリビューションは歓迎します!以下の点にご注意ください: