Skill Sentry
mamabearmehmi-hub/skill-sentryИнструмент для проверки Claude MCP-скиллов на угрозы безопасности до установки. Анализирует код без его выполнения, выявляет вредоносные скрипты, утечки токенов и тайпсквоттинг. Бесплатен, с открытым исходным кодом.
Установка
npx skill-sentry https://github.com/owner/repoREADME
Зачем я это создал
Каждый день я нахожу новые скиллы и MCP-серверы, которые делают разработку с Claude невероятно мощной. Сообщество потрясающее. Люди создают инструменты, превращающие Claude в дизайн-партнёра, менеджера баз данных, движок деплоя.
Но вот что не давало мне покоя: каждый из этих скиллов просит запустить npx или npm install.
Это значит, что вы доверяете чужому коду выполнение на вашей машине. С доступом к вашим файлам. Переменным окружения. SSH-ключам. Токенам.
Я не эксперт по безопасности. Я разработчик, такой же, как вы. Но я достаточно знаю, чтобы бояться postinstall-скрипта, запускающего curl | bash ещё до того, как вы увидите содержимое. Я читал истории об атаках на цепочку поставок. Я видел, что может сделать один вредоносный пакет.
Поэтому я создал себе часового.
Skill Sentry сканирует код вместо вас. Читает каждый файл, проверяет опасные паттерны и выдаёт оценку риска. Без выполнения единой строки проверяемого кода.
Пользуйтесь. Надеюсь, это поможет нам оставаться в безопасности и продолжать создавать прекрасные вещи с Claude.
V | Просто разработчик, который хотел чувствовать себя в безопасности, нажимая «установить»
Что он делает
Skill Sentry — бесплатный сканер безопасности с открытым исходным кодом для экосистемы Claude MCP.
Неважно, называется ли это «Скиллом» или «MCP-сервером». Если есть package.json, Skill Sentry его просканирует.
Сканер проверяет:
| Уровень угрозы | Что ищем | Почему важно |
|---|---|---|
| КРИТИЧЕСКИЙ | Скрипты postinstall / preinstall с shell-командами | Код выполняется автоматически до того, как вы успеете его проверить |
| ВЫСОКИЙ | eval(), child_process, exec(), доступ к SSH-ключам | Даёт пакету контроль над всей системой |
| ВЫСОКИЙ | Чтение process.env.GITHUB_TOKEN и аналогичных секретов | Ваши учётные данные могут быть похищены незаметно |
| СРЕДНИЙ | Обфусцированные Base64-блоки, незакреплённые зависимости "*" | Скрытые полезные нагрузки и риски цепочки поставок |
| СРЕДНИЙ | Сетевые запросы к paste-сайтам и raw GitHub URL | Загрузка полезных нагрузок во время выполнения |
Оценка риска
Каждый скилл получает оценку от 0 (рисков не обнаружено) до 100 (максимальная угроза).
Оценка риска = min(100, сумма всех найденных баллов)
- 0 = Известные паттерны риска не обнаружены
- 1–19 = Низкий риск
- 20–49 = Средний риск (изучите находки)
- 50–79 = Высокий риск (действуйте с осторожностью)
- 80–100 = Критический (не устанавливайте)
Верифицированные издатели и обнаружение тайпсквоттинга
Известные легитимные организации (Anthropic, Stripe, GitHub, Supabase и др.) распознаются как верифицированные издатели. Их находки отображаются, но объясняются как ожидаемое поведение. Тулкит Stripe должен читать STRIPE_API_KEY. Это нормально.
Если имя владельца репозитория подозрительно похоже на верифицированного издателя (например, stripee вместо stripe), сканер помечает это как потенциальный тайпсквоттинг: попытку выдать себя за доверенный бренд, чтобы обманом заставить вас установить вредоносный код.
Возможности
- npm CLI:
npx skill-sentry <url>— сканирование из любого терминала без установки - Веб-дашборд: таблица всех проверенных скиллов с интерактивными фильтрами и поиском
- Мгновенное сканирование: вставьте URL — результаты за 5–15 секунд (сканирование на стороне сервера)
- Простой язык: каждая находка объясняется по-человечески, без жаргона безопасности
- Вердикт: чёткая рекомендация по каждому сканированию («Рисков не обнаружено» / «Проверьте внимательно» / «Не устанавливайте»)
- Флаги для CI:
--strictи--thresholdдля автоматической блокировки в пайплайне - Автообнаружение: ежедневный скрапер находит новые MCP-репозитории через GitHub API
- Бесплатно: работает полностью на бесплатном тарифе Vercel + GitHub Actions
Начало работы
Сканирование из терминала (установка не нужна)
npx skill-sentry https://github.com/owner/repo
Вы увидите цветной отчёт с понятным вердиктом:
┌─────────────────────────────────────┐
│ SKILL SENTRY v0.2 │
│ Security scanner for Claude skills │
└─────────────────────────────────────┘
Scanning: https://github.com/owner/repo
Cloning and analyzing...
════════════════════════════════════════
NO KNOWN RISK PATTERNS DETECTED
════════════════════════════════════════
Risk Score: 0/100
Files: 42 scanned
Findings: 0 issues
✓ No known risk patterns detected
All 42 files passed 11 security checks.
Флаги:
--json— вывод в формате JSON (для передачи в другие инструменты или CI)--strict— завершение с кодом 1 при любой находке уровня HIGH или CRITICAL--threshold <N>— завершение с кодом 1, если оценка риска >= N (0–100)--help— справка по использованию
Коды завершения (полезно для CI/CD):
0= находок нет1= находки обнаружены (или превышен порог)2= ошибка (неверный URL, проблема с сетью)
Использование в CI:
# Блокировать PR, добавляющие опасные MCP-зависимости
npx skill-sentry https://github.com/owner/new-skill --strict || exit 1
# Пользовательский порог: завершить с ошибкой при оценке риска 50 и выше
npx skill-sentry https://github.com/owner/new-skill --threshold 50Использование дашборда
Откройте живой дашборд и вставьте любой GitHub URL в форму. Результаты появляются прямо на странице за 5–15 секунд — без переходов и ожидания фоновых задач.
Локальный запуск
git clone https://github.com/mamabearmehmi-hub/skill-sentry.git
cd skill-sentry
npm install