Skip to main content
Glama

safe-audit-fix

npm version license M8ven Score safe-audit-fix MCP server Sponsor

Исправляйте уязвимости npm, не ломая ваше приложение.

npm audit fix --force может незаметно переходить на новые major-версии, понижать версии пакетов и ломать вашу сборку. safe-audit-fix использует противоположный подход — как аккуратный хирург, а не кувалда:

  1. Сначала планирование — каждая правка снабжается уровнем риска (low / moderate / high-breaking) до того, как что-либо изменится.

  2. По одному исправлению за раз — никаких масштабных изменений разом.

  3. Тест после каждого исправления — ваша тестовая команда запускается после каждого шага.

  4. Автооткат — если установка или тесты завершаются ошибкой, это исправление мгновенно откатывается (package.json и lockfile восстанавливаются, node_modules синхронизируется заново).

  5. Разрушающие обновления — только по явному согласию — переходы на новые major-версии пропускаются, пока вы не передадите --include-major; даже в этом случае они защищены тестами.

  6. Полный откат — safe-audit-fix revert возвращает всё к состоянию до запуска.

Работает в двух режимах на едином движке:

                 ┌────────────────────┐
   you ──────────►      CLI            │
                 ├────────────────────┤──► core engine: scan → plan → fix one → test → keep/revert
   AI assistant ─►   MCP server        │
   (Claude Code, └────────────────────┘
    Cursor, ...)

Требования

  • Node.js ≥ 18, npm ≥ 7 (требуется современный формат npm audit --json)

  • В целевом проекте должен быть package-lock.json (если его нет — выполните npm install один раз)

Related MCP server: locklens

Установка

Попробуйте сразу — без установки (выполните в папке проекта):

npx safe-audit-fix scan
npx safe-audit-fix fix

Или установите глобально:

npm install -g safe-audit-fix
safe-audit-fix scan

Или из исходников:

git clone https://github.com/pasindudilshan1/safe-audit-fix.git
cd safe-audit-fix
npm install
npm link        # makes the `safe-audit-fix` command available globally

Использование CLI

safe-audit-fix scan                 # show vulnerabilities + whether each fix is safe or breaking
safe-audit-fix plan                 # show the ordered fix plan (changes nothing)
safe-audit-fix fix                  # apply fixes one at a time, testing after each
safe-audit-fix fix --include-major  # also attempt breaking upgrades (test-protected)
safe-audit-fix fix --dry-run        # preview only
safe-audit-fix fix --test "npm run test:unit"   # custom verify command
safe-audit-fix fix --no-test        # skip test verification (install failures still revert)
safe-audit-fix revert               # undo the entire last fix run

Все команды принимают --dir <path> для указания другого проекта, а scan/plan также принимают --json. Перед применением любых исправлений ваши тесты запускаются один раз как baseline — если они уже падают, инструмент отказывается работать (иначе каждое исправление ошибочно считали бы виновным и откатывали).

MCP-сервер (использование: Claude Code, Cursor и др.)

Зарегистрируйте сервер — и просто попросите вашего ИИ-ассистента: «безопасно исправьте уязвимости в моём проекте».

Claude Code:

claude mcp add safe-audit-fix -- npx -y --package=safe-audit-fix safe-audit-fix-mcp

Или через .mcp.json / конфигурационный файл MCP:

{
  "mcpServers": {
    "safe-audit-fix": {
      "command": "npx",
      "args": ["-y", "--package=safe-audit-fix", "safe-audit-fix-mcp"]
    }
  }
}

(Если вы установили глобально, можете использовать safe-audit-fix-mcp напрямую как команду, вместо npx.)

Доступные инструменты:

Инструмент

Что делает

Изменяет файлы?

scan_vulnerabilities

Структурированный отчёт об аудите

Нет

plan_fixes

Упорядоченный план исправлений с уровнями риска

Нет

apply_fixes_safely

Цикл «исправление → тест → откат» (опции dryRun, includeMajor, testCommand)

Да

revert_last_session

Отмена последнего запуска исправлений

Да

Как это работает в сравнении с аналогами

npm audit fix

npm audit fix --force

Запрос ИИ в чате

safe-audit-fix

Исправляет уязвимости в пределах диапазона

✅

✅

вручную

✅

Исправляет разрушающие (major) уязвимости

❌

✅ молча

вручную

✅ опционально

Запускает ваши тесты после каждого изменения

❌

❌

❌

✅

Автоматически откатывает неудачное исправление

❌

❌

❌

✅

Сначала показывает план с уровнями риска

❌

❌

⚠️

✅

Полный откат одной командой

❌

❌

❌

✅

Доступен ИИ-ассистентам (MCP)

❌

❌

—

✅

Использование библиотеки

Движок можно импортировать напрямую:

import { scan, planFix, fixAll, revertSession } from 'safe-audit-fix';

const result = fixAll('/path/to/project', { includeMajor: false });
console.log(result.applied, result.failed, result.blocked);

Планы

  • --explain: использовать LLM для краткого пересказа журнала изменений/ломающих изменений при планируемом major-обновлении

  • Анализ достижимости: пропускать уязвимости, чей уязвимый путь в коде никогда не вызывается из вашего кода

  • Автоматические подсказки overrides для транзитивных уязвимостей без прямого исправления

  • Поддержка pnpm / yarn

Лицензия

MIT

Related MCP Connectors

Related MCP Servers