Зачем это MCP-серверу
MCP-сервер ставят из публичного каталога одной командой, и запускается он на машине пользователя с его правами. Подменённый по дороге пакет обходит любую защиту, написанную внутри кода, поэтому публикация входит в контур безопасности наравне с двухфазным подтверждением денежных операций. Перед установкой всё знание о сервере сводится к трём вещам: архив пакета, страница в реестре и подписи, которые проверяются программой.
Как публикуют с провенансом
Публикация с провенансом в npm работает только из сборочной среды публичного репозитория у поддерживаемых провайдеров. Порядок такой: открыть репозиторий с исходниками, перенести выпуск в сборочный конвейер и публиковать оттуда с флагом провенанса — ручная публикация такой записи не оставляет. Так выпускается MCP-сервер Инвойсбокс: у пакета есть открытое зеркало под лицензией MIT, а по записи провенанса любой желающий машинно проверит, из какого коммита собран архив.
Интересные факты
- Пакет postmark-mcp в реестре npm копировал известную библиотеку и пятнадцать версий подряд ничего лишнего не делал. В шестнадцатой появилась одна строка: скрытая копия всех отправленных писем уходила постороннему. Полторы тысячи установок в неделю, утечка шла восемь дней, пока её не поймал поведенческий анализ.
- Инциденты в цепочке поставок npm 2018–2025 — event-stream, colors и faker, color и chalk, Shai-Hulud — объединяет одно: ни один не требовал ошибки в чужом коде, достаточно было обновить зависимость. Два из четырёх целились в деньги.
- Официальные рекомендации MCP приравнивают локальный сервер к исполнению произвольного кода: клиент обязан показать точную команду запуска и получить явное согласие человека.
- Правило, к которому пришли: версию пакета указывают всегда — у платёжного инструмента «latest» означает, что набор инструментов может измениться между двумя запусками одного диалога. Подробнее — в статье «Пятнадцать честных версий и одна шестнадцатая».
Коротко
- Провенанс — машинно проверяемая запись о том, из чего собран пакет.
- Публикуется только из сборочного конвейера публичного репозитория.
- Подпись реестра и провенанс — разные механизмы; нужны оба.
- Инциденты npm показывают: атака на зависимость не требует ошибки в вашем коде.
Полезно
AI-инвойсинг: счета через ассистента — подробнее →
