Snyk API & Web MCP Server
Подключите вашего AI‑помощника по кодированию к Snyk API & Web, чтобы он мог регистрировать цели сканирования, настраивать аутентификацию, выполнять DAST‑сканы и сортировать вывод — всё это на естественном языке.
Основан на FastMCP 2.0, совместим с Cursor, Claude Code, Devin и любым MCP‑совместимым клиентом.
Примечание по именованию: Snyk API & Web ранее назывался Probely. API‑эндпойнты (
api.probely.com), веб‑консоль (plus.probely.app) и имена инструментов MCP (probely_*) по‑прежнему используют устаревший домен и префикс. Переменные окружения и разделы конфигурации используют новое именованиеSAW/saw.
См. USER_GUIDE.md для примеров использования, примеров и справки по инструментам.
Этот репозиторий закрыт для публичного вклада. Мы ценим интерес сообщества, но на данный момент не принимаем пулл‑запросы, задачи или другой вклад от внешних контрибьюторов. Если вы нашли уязвимость, ознакомьтесь с SECURITY.md.
Требования
-
Python 3.10+
-
Node.js 18+ и npm (для записи логина веб‑таргета через
playwright-cli; необязательно, если используете Playwright MCP) -
API‑ключ Snyk API & Web
Быстрый старт
1. Получите свой API‑ключ
Перейдите на https://plus.probely.app/api-keys и создайте API‑ключ.
Важно
Используйте кастомную роль, ключ API с ограниченной областью для сервера MCP Snyk API & Web.
Создавайте ключ только с необходимыми разрешениями для предполагаемых действий.
Не используйте ключ с высокой степенью привилегий или глобальный ключ API — это может повлиять на всю вашу учетную запись и ресурсы.
2. Установите
Cursor Marketplace (рекомендуется для пользователей Cursor)
Устанавливайте напрямую из Cursor Marketplace:
-
Откройте страницу плагина Snyk API & Web и нажмите Install, или перейдите в Settings → Plugins и найдите Snyk API & Web
-
Установите переменную окружения с вашим API‑ключом перед запуском Cursor:
export MCP_SAW_API_KEY="your-api-key"
Плагин автоматически устанавливает MCP сервер, правила и навыки.
Devin MCP Marketplace (пользователи Devin)
Устанавливайте напрямую из MCP Marketplace Devin:
-
Откройте Devin и перейдите в Settings → Configuration.
-
В разделе MCP servers нажмите Open MCP Marketplace.
-
Найдите Snyk API & Web и нажмите Install.
-
По запросу введите ваш API‑ключ.
manual configuration не требуется — Devin выполнит настройку автоматически.
Установка одной командой (для любого MCP‑клиента)
uvx --from git+https://github.com/snyk/saw-mcp.git saw-mcp
Или добавьте в конфигурацию вашего MCP‑клиента:
{
"mcpServers": {
"SAW": {
"command": "uvx",
"args": ["--from", "git+https://github.com/snyk/saw-mcp.git", "saw-mcp"],
"env": {
"MCP_SAW_API_KEY": "your-api-key"
}
}
}
}
Альтернативные способы установки Установить из релизного tarball
.tgz cd SnykAPIWeb python -m venv venv source venv/bin/activate # На Windows: venv\Scripts\activate pip install -r requirements.txt
tar -xzvf SnykAPIWeb-<version>.tgz cd SnykAPIWeb python -m venv venv source venv/bin/activate # На Windows: venv\Scripts\activate pip install -r requirements.txt
Скачайте с Releases и замените <version> на фактический номер версии (например 1.0.0).
Клонирование из исходников
git clone https://github.com/snyk/saw-mcp.git
cd saw-mcp
python -m venv venv
source venv/bin/activate # На Windows: venv\Scripts\activate
pip install -r requirements.txt
3. Хранение вашего API‑ключа
Сервер читает ключ API в порядке приоритета: переменная окружения MCP_SAW_API_KEY → файл .env → config/config.yaml.
Вариант А: Переменная окружения (рекомендуется для установок через Marketplace / uvx)
export MCP_SAW_API_KEY="your-api-key"
Вариант B: Файл .env (рекомендуется для установки из исходников)
Запустите скрипт настройки (интерактивно, безопасно, ключ не попадает в историю оболочки):
./scripts/setup-env.sh
Или считайте секрет из менеджера секретов: op read 'op://vault/item/key' | ./scripts/setup-env.sh
Это создаёт файл .env в корне проекта (gitignore). Сервер подхватит его автоматически при запуске.
Вариант C: Ссылка на секрет (избегает хранения ключа в открытом виде)
MCP_SAW_API_KEY и поле конфигурации api_key также принимают ссылку, которая разрешается во время выполнения, чтобы сам ключ никогда не сохранялся в файле:
export MCP_SAW_API_KEY="op://vault/saw-mcp/api-key" # разрешается через CLI 1Password (`op`)
export MCP_SAW_API_KEY="env:MY_SAW_KEY" # читается из другой переменной окружения
Не публикуйте открытый ключ.
config/config.yamlgitignore, и ключ, считанный оттуда, вызывает предупреждение при запуске.
4. Установите браузерную автоматизацию (web‑таргеты с входом)
Onboarding веб‑таргетов записывает последовательности входа в реальном браузере. Предпочтительно для кодирующих агентов: playwright-cli через Shell:
npm install -g @playwright/cli@latest
playwright-cli install-browser chromium
Или запустите ./scripts/setup-playwright.sh из клонированного репозитория.
Альтернатива: установите Playwright MCP как второй MCP‑сервер (лучше для клиентов MCP без Shell). См. раздел Web target prerequisites.
5. Настройте ваш IDE
Если вы устанавливались через Cursor или Devin Marketplace, конфигурация выполнена автоматически. Для других клиентов добавьте в конфигурацию вашего MCP‑клиента:
{
"mcpServers": {
"SAW": {
"command": "uvx",
"args": ["--from", "git+https://github.com/snyk/saw-mcp.git", "saw-mcp"],
"env": {
"MCP_SAW_API_KEY": "your-api-key"
}
}
}
}
Для локальной настройки см. Installation Guides.
Дополнительные параметры конфигурации
-
Переопределить базовый URL: добавьте
MCP_SAW_BASE_URLв блокenv, например"MCP_SAW_BASE_URL": "https://your-instance-url". -
Использовать файл конфигурации: укажите путь к конфигурации через
"MCP_SAW_CONFIG_PATH": "/path/to/config.yaml". -
Установить уровень логирования: добавьте
"MCP_SAW_LOG_LEVEL": "DEBUG"(значения: DEBUG, INFO, WARNING, ERROR, CRITICAL; по умолчанию: INFO).
6. Начинайте использовать
Попросите вашего AI‑ассистента:
-
«Настроить Snyk API & Web API таргет на основе этой схемы OpenAPI / Swagger документа / Postman коллекции.»
-
«Настроить веб‑таргет Snyk API & Web для этого аутентифицированного приложения.»
См. prompts.md для полного каталога примеров prompts — от простых однострочников до сложных много‑таргетных рабочих процессов.
Предпосылки для веб‑таргета
SAW MCP сервер обращается к платформе Snyk API & Web — у него нет браузера. Чтобы onboardить веб‑таргеты с последовательностями входа, ИИ нуждается в автоматизации браузера через одну из следующих опций:
| Путь | Лучшее применение | Установка |
|---|---|---|
| playwright-cli (предпочтительно) | Cursor, Devin, Claude Code, Cloud Agents with Shell | npm install -g @playwright/cli@latest && playwright-cli install-browser chromium |
| Playwright MCP (резерв) | Клиенты только MCP без Shell (например, Claude Desktop) | Добавьте Playwright MCP в конфигурацию MCP вашего IDE |
Рабочий процесс:
-
Запросите URL‑адрес цели и учетные данные — например: «Добавить цель example.com с учётными данными user@example.com / password123».
-
ИИ записывает вход в браузере (через
playwright-cliили Playwright MCP). -
Инструменты SAW MCP создают цель и загружают последовательность в формат Probely sequence-recorder.
Без автоматизации браузера ИИ перейдёт к форме входа в ручном режиме — простая вход‑форма на одной странице; без многошаговых сценариев и 2FA.
См. руководство по установке Cursor для подробностей.
Интеграция с IDE
Подробные руководства по каждому хосту находятся в docs/installation-guides/:
| Хост | Руководство |
|---|---|
| Cursor | install-cursor.md |
| Claude Desktop | install-claude.md |
| Devin / Другие IDE | install-devin.md |
Упаковка
bash scripts/package.sh
Создает dist/SnykAPIWeb-<version>.tgz (версия берётся из snyk_apiweb/__init__.py).
Разработка и тестирование
Запуск сервера ( standalone )
Запуск сервера напрямую — запустит и будет ждать подключения MCP‑клиента. Это в основном полезно для разработки и отладки:
./venv/bin/python -m snyk_apiweb.server
Режим разработки (горячая перезагрузка)
Для активной разработки с автоматической перезагрузкой при изменении файлов:
./scripts/dev.sh
Лицензия
Проект распространяется под Apache License 2.0.