Как мы проверяем MCP
Методология скана целиком, включая то, чего он не делает. Проверка без опубликованной методологии — это не проверка.
Что проверяет скан
Скан детерминированный: никакой модели, никаких оценок «на глаз». Одни и те же входные данные всегда дают один и тот же результат, и вы можете воспроизвести его сами.
- Есть ли публичный исходник. Сервер без открытого репозитория нельзя прочитать — значит, нельзя и доверять ему по умолчанию.
- Какие переменные окружения сервер требует. Мы вытаскиваем их из README опубликованного пакета — из блоков конфигурации, таблиц env и строк вида
export FOO=. - Похожи ли они на секреты. Ключ считается чувствительным, если содержит
TOKEN,KEY,SECRET,PASSWORD,API,AUTH,CREDENTIAL,PRIVATE,ACCESS,CONNECTION,DSN,MNEMONIC,SEED,PASSPHRASEили ссылку на внешний хост. - Когда пакет публиковался в последний раз. Заброшенный сервер помечается как stale — он не получает патчей.
- Кто издатель. Первая сторона или третья (см. Verified ниже).
Как считается уровень риска
«Доверенный» = издатель — первая сторона или код открыт. Дальше формула ровно такая:
- unknown — сервер ещё не сканировался. Мы показываем это честно, а не рисуем зелёный.
- low — секретов не просит и доверенный.
- medium — либо просит секреты, либо недоверенный.
- high — просит секреты и недоверенный.
Чего скан не делает
Это важнее предыдущего раздела. Мы не выдаём эти проверки за сделанные:
- не исполняем код сервера в песочнице и не наблюдаем его поведение в рантайме;
- не проводим SAST и не сканируем зависимости на известные CVE;
- не проверяем подписи артефактов и не строим SBOM;
- не гарантируем, что сервер не отправит ваши данные наружу.
Скан отвечает на вопрос «что этот сервер у меня попросит и можно ли прочитать его код», а не «безопасен ли он». Разница принципиальная.
За что даётся Verified
Бейдж означает ровно одно из двух:
- сервер выпущен первой стороной — компанией, чей продукт он обслуживает (GitHub → GitHub MCP, Notion → Notion MCP);
- сервер прошёл ручную проверку: открытый исходник, отсутствие
eval/execнад пользовательским вводом, отсутствие закоммиченных секретов, понятный список исходящих запросов.
Verified не продаётся и не выдаётся за размещение. Он не означает аудита кода и не является гарантией.
Сообщить об уязвимости
Пишите на [email protected]. Мы отвечаем в течение 72 часов и держим вас в курсе до закрытия.
В скоупе: unyly.org, gateway.unyly.org, публичный API, виджет Connect, CLI.
Вне скоупа: уязвимости в самих MCP-серверах каталога (сообщайте их автору сервера), отчёты автосканеров без подтверждения эксплуатации, DoS.
Safe harbor. Мы не преследуем за добросовестное исследование: не трогайте чужие данные, не деградируйте сервис, дайте нам разумное время на исправление — и претензий не будет.
Машиночитаемая версия — /.well-known/security.txt (RFC 9116).