AI Agents

MCP Server npm v12 Compatibility Checker

Проверить, не сломается ли MCP-сервер через npx из-за блокировки install-скриптов в npm v12.

Как это работает

MCP-сервер, который вчера прекрасно стартовал через npx, сегодня после обновления до npm v12 вдруг падает на установке зависимости или просто не находит нужный нативный модуль. Причина почти всегда одна и та же: npx под капотом тянет пакет и выполняет его install-скрипты, а npm v12 блокирует их по умолчанию без явного allowlist — просто теперь это ломается не в вашем собственном проекте, а где-то внутри временной установки MCP-сервера, и диагностировать это заметно неудобнее. MCP Server npm v12 Compatibility Checker online смотрит на команду запуска сервера из mcp.json и предупреждает о потенциальном риске.

Особенность именно этого сценария в том, что npx по умолчанию устанавливает пакет во временную директорию при каждом запуске (если версия не закэширована), а значит allowScripts из вашего собственного package.json тут попросту не поможет — временная установка MCP-сервера происходит вне контекста вашего проекта и его allowlist.

Инструмент разбирает записи mcpServers из вашего mcp.json, находит те, что запускаются через npx (а не через прямой node или предустановленный бинарник), и явно предупреждает: такие серверы стоит либо предварительно установить глобально с явным ревью install-скриптов, либо свериться с обновлением самого сервера на предмет уже адаптированной под npm v12 версии.

Частые вопросы

Почему именно серверы через npx уязвимы к этой проблеме больше остальных?

Npx по умолчанию устанавливает пакет заново во временную директорию при каждом запуске, если подходящая версия не закэширована локально, и эта временная установка не попадает под allowScripts вашего собственного проекта, потому что происходит вне его контекста.

Как обойти проблему для конкретного MCP-сервера без ожидания его обновления?

Один из практичных вариантов — установить сервер глобально заранее, явно одобрив нужные install-скрипты через npm approve-scripts, и затем указать в mcp.json уже установленный бинарник напрямую, а не команду npx с автоматической установкой при каждом запуске.

Проверяет ли инструмент, действительно ли конкретный сервер использует install-скрипты?

Нет, инструмент лишь помечает риск по самому факту запуска через npx как таковому, потому что заранее неизвестно, есть ли install-скрипт у конкретной версии конкретного пакета без реальной попытки установки, это скорее сигнал для дальнейшей проверки, чем окончательный вердикт.

Затрагивает ли эта проблема серверы, запускаемые через uvx или pipx для Python?

Механика Python-инструментов для установки при каждом запуске принципиально другая и не связана с npm v12 напрямую, эта конкретная проблема касается именно экосистемы Node.js и команды npx.