# ai-quality-gate

Проверяет код, который написал ИИ, через ESLint и Prettier, сам правит что может и отдаёт агенту список оставшихся ошибок.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 31
- Автор: mustafacagri
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/mustafacagri/ai-quality-gate
- Обновлён: 2026-10-07
- HTML: https://affpapa.org/nevibecode/mcp/ai-quality-gate

## Что делает

Агент пишет код и вызывает инструмент `quality_fix`. Сервер прогоняет файлы через ESLint с набором из 627 правил и через Prettier, после чего исправляет то, что чинится автоматически, а остальное возвращает модели текстом. Первая фаза укладывается примерно в 2–8 секунд и запускается всегда. Вторая — SonarQube — ждёт до 30–60 секунд и включается только при наличии сервера. Поэтому цикл «написал → проверил → поправил» не растягивается на минуты.

Форматирование берётся из конфига проекта, а правила ESLint задаёт сам сервер. Это значит, что отступы останутся вашими, а планка качества — общей для всех, кто подключил гейт. Чтобы проверка стала обязательной, в редакторе добавляется правило: после каждой правки кода агент обязан вызвать `quality_fix` перед словом «готово». Без такого правила сервер просто ждёт вызова.

Нужен Node.js 20.10+ или 21.1+ в `PATH`. Корень проекта определяется сам: сервер идёт вверх от рабочей директории до `package.json` или `tsconfig.json`, а `PROJECT_ROOT` задают вручную, если раскладка нестандартная. Для второй фазы понадобятся запущенный SonarQube, `sonar-scanner` и три переменные — `SONAR_HOST_URL`, `SONAR_TOKEN`, `SONAR_PROJECT_KEY`. Без них гейт работает в урезанном виде, и это нормальный режим.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `PROJECT_ROOT`, `SONAR_HOST_URL`, `SONAR_TOKEN`, `SONAR_PROJECT_KEY`, `ENABLE_I18N_RULES` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env PROJECT_ROOT=<PROJECT_ROOT> --env SONAR_HOST_URL=<SONAR_HOST_URL> --env SONAR_TOKEN=<SONAR_TOKEN> --env SONAR_PROJECT_KEY=<SONAR_PROJECT_KEY> --env ENABLE_I18N_RULES=<ENABLE_I18N_RULES> --transport stdio ai-quality-gate -- npx -y ai-quality-gate
```
Вместо <…> подставьте свои значения

### Codex

**Командой платформы**
```bash
codex mcp add ai-quality-gate --env PROJECT_ROOT=<PROJECT_ROOT> --env SONAR_HOST_URL=<SONAR_HOST_URL> --env SONAR_TOKEN=<SONAR_TOKEN> --env SONAR_PROJECT_KEY=<SONAR_PROJECT_KEY> --env ENABLE_I18N_RULES=<ENABLE_I18N_RULES> -- npx -y ai-quality-gate
```
Вместо <…> подставьте свои значения

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "ai-quality-gate": {
            "command": "npx",
            "args": [
                "-y",
                "ai-quality-gate"
            ],
            "env": {
                "PROJECT_ROOT": "<PROJECT_ROOT>",
                "SONAR_HOST_URL": "<SONAR_HOST_URL>",
                "SONAR_TOKEN": "<SONAR_TOKEN>",
                "SONAR_PROJECT_KEY": "<SONAR_PROJECT_KEY>",
                "ENABLE_I18N_RULES": "<ENABLE_I18N_RULES>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "ai-quality-gate": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "ai-quality-gate"
            ],
            "env": {
                "PROJECT_ROOT": "<PROJECT_ROOT>",
                "SONAR_HOST_URL": "<SONAR_HOST_URL>",
                "SONAR_TOKEN": "<SONAR_TOKEN>",
                "SONAR_PROJECT_KEY": "<SONAR_PROJECT_KEY>",
                "ENABLE_I18N_RULES": "<ENABLE_I18N_RULES>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e PROJECT_ROOT=<PROJECT_ROOT> -e SONAR_HOST_URL=<SONAR_HOST_URL> -e SONAR_TOKEN=<SONAR_TOKEN> -e SONAR_PROJECT_KEY=<SONAR_PROJECT_KEY> -e ENABLE_I18N_RULES=<ENABLE_I18N_RULES> ai-quality-gate npx -y ai-quality-gate
```
Вместо <…> подставьте свои значения

## Когда брать
- прогнать свежий код агента через ESLint до коммита
- убрать неиспользуемые импорты автоматически
- привести отступы к конфигу проекта через Prettier
- вернуть модели список ошибок, которые она должна доделать
- добавить проверку SonarQube к тому же вызову

## Примеры запросов агенту
- Вызови `quality_fix` после правок и покажи, что осталось.
- Прогони изменённые файлы через гейт и исправь замечания.
- Проверь код перед тем, как сказать, что задача готова.

## Похожие
- [Front-End Checklist](https://affpapa.org/nevibecode/mcp/front-end-checklist.md) — MCP-сервер · ★ 74559
- [Codebase Memory](https://affpapa.org/nevibecode/mcp/codebase-memory.md) — MCP-сервер · ★ 47392
- [Serena MCP: the IDE for your agent](https://affpapa.org/nevibecode/mcp/serena-mcp-the-ide-for-your-agent.md) — MCP-сервер · ★ 30677
- [Repomix](https://affpapa.org/nevibecode/mcp/repomix.md) — MCP-сервер · ★ 29027
- [Repowise](https://affpapa.org/nevibecode/mcp/repowise.md) — MCP-сервер · ★ 7891
- [sem](https://affpapa.org/nevibecode/mcp/sem.md) — MCP-сервер · ★ 3422

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
