Единый сканер безопасности для 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_KEYarn:aws:bedrock: и содержащие llamaarn:aws:bedrock:<region>:<account-id>:inference-profile/us.meta.llama3-2-1b-instruct-v1:0Для анализа инструментов на основе LLM настройте учётные данные API LLM:
export ANTHROPIC_API_KEY=your-api-key
export OPENAI_API_KEY=your-api-key
Каждый провайдер требует свою специфическую переменную окружения. Инструмент автоматически определяет, какого провайдера использовать, на основе имени модели.
Для моделей AWS Bedrock настройте учётные данные AWS, используя один из стандартных методов AWS SDK:
# Вариант 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-роли.
Вклад приветствуется! Пожалуйста, убедитесь, что: