zanadir — MCP-сервер для аудита безопасности CI: что делает
Проверяет конфигурацию CI и показывает, каких проверок безопасности не хватает и какие из них не могут провалить сборку.
claude mcp add --env GITHUB_TOKEN=<GITHUB_TOKEN> --transport stdio zanadir -- docker run -i --rm -e GITHUB_TOKEN docker.io/mustachecase/zanadir:0.20.0Что делает zanadir
Сервер читает конфиги GitHub Actions, GitLab CI, CircleCI, Bitbucket Pipelines, Azure Pipelines и Jenkins — из локальной копии или прямо с GitHub без клонирования. Двенадцать категорий контроля (сканирование зависимостей, поиск секретов, SBOM, защита workflow и другие) сверяются с инструментами, которые их закрывают, а подсказки подбираются под языки репозитория.
Отдельно считает эффективность: сканер с continue-on-error, --exit-code 0, || true или allow_failure в конфиге есть, но остановить мерж не может. Каждый такой контроль получает оценку enforcing, partial, advisory или unknown, а не просто «покрыт». С флагом --required-checks контроль считается enforcing, только если его требует branch protection или ruleset.
Наружу отдаёт два инструмента только для чтения: scan возвращает JSON-отчёт, fix — готовые куски конфигурации под пробелы, ничего не записывая. Обоим можно передать dir или repo, а также excludedCategories. Запуск идёт в Docker-образе, и для обращения к GitHub нужен GITHUB_TOKEN в переменных окружения — без него приватные репозитории и часть запросов не отработают.
Какие задачи решает
- найти категории проверок безопасности, которых нет в конфиге CI
- понять, какой сканер в пайплайне не может уронить сборку
- получить готовый YAML под недостающие контроли
- оценить CI чужого репозитория без клонирования
- проверить, требуется ли контроль для мержа через branch protection
Примеры запросов агенту
- Просканируй CI этого репозитория через zanadir и покажи, каких проверок не хватает
- Вызови
scanсrepogithub.com/owner/nameи разбери оценки advisory - Дай
fixдля пробелов в CI, файлы не трогай
Как установить zanadir
Командой платформы
claude mcp add --env GITHUB_TOKEN=<GITHUB_TOKEN> --transport stdio zanadir -- docker run -i --rm -e GITHUB_TOKEN docker.io/mustachecase/zanadir:0.20.0Вместо <…> подставьте свои значения
Командой платформы
codex mcp add zanadir --env GITHUB_TOKEN=<GITHUB_TOKEN> -- docker run -i --rm -e GITHUB_TOKEN docker.io/mustachecase/zanadir:0.20.0Вместо <…> подставьте свои значения
Файл настроек
{
"mcpServers": {
"zanadir": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_TOKEN",
"docker.io/mustachecase/zanadir:0.20.0"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>"
}
}
}
}Вместо <…> подставьте свои значения
Файл настроек
{
"servers": {
"zanadir": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"GITHUB_TOKEN",
"docker.io/mustachecase/zanadir:0.20.0"
],
"env": {
"GITHUB_TOKEN": "<GITHUB_TOKEN>"
}
}
}
}Вместо <…> подставьте свои значения
Командой платформы
gemini mcp add -e GITHUB_TOKEN=<GITHUB_TOKEN> zanadir docker run -i --rm -e GITHUB_TOKEN docker.io/mustachecase/zanadir:0.20.0Вместо <…> подставьте свои значения
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о zanadir
Как установить zanadir в Claude Code?
Одной командой: claude mcp add --env GITHUB_TOKEN=<GITHUB_TOKEN> --transport stdio zanadir -- docker run -i --rm -e GITHUB_TOKEN docker.io/mustachecase/zanadir:0.20.0. Подставьте свой токен GitHub вместо плейсхолдера.
Что делает zanadir?
Разбирает конфигурацию CI и показывает пробелы в проверках безопасности. Для найденных контролей ещё и определяет, способны ли они провалить сборку.
Чем zanadir отличается от OpenSSF Scorecard?
Scorecard оценивает зрелость практик проекта целиком, а zanadir смотрит только на CI: каких контролей нет и могут ли имеющиеся остановить мерж. Оба инструмента дополняют друг друга.