Единый сканер безопасности для MCP-серверов с режимами конфигурации, пентеста и сканирования репозиториев. Генерирует отчеты SARIF для интеграции с CI/CD, обнаруживает секреты, уязвимости и неверные конфигурации с помощью токенов и 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
# Автоматическое сканирование всех известных путей конфигурации MCP для Cursor, Claude и Windsurf.
# Известные расположения конфигов (относительно домашнего каталога):
# ~/.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, path traversal, обход авторизации, внедрение данных, раскрытие информации и уязвимости 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.
# Загрузка результатов сканирования конфигурации
./mcpxray config-scan /path/to/mcp/config.json --upload
# Загрузка с очисткой
./mcpxray config-scan /path/to/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-httpmcp.json: файл конфигурации для подключения к серверуREADME.md: инструкции по настройке и сканированию сервераMCP X-Ray предоставляет два метода анализа безопасности инструментов:
Токен-анализатор использует сопоставление на основе правил для быстрого обнаружения проблем безопасности в описаниях инструментов. Он быстр, не требует ключей API и работает офлайн. Токен-анализатор использует два типа правил:
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_KEYgpt-5OPENAI_API_KEY