Skip to main content
Glama
frangelbarrera

Code Review Agent MCP

Code Review Agent MCP

ИИ-агент для ревью кода, который не приукрашивает. Если ваш код плохой — он скажет это. Прямо.

PyPI version Python 3.10+ License: MIT Code style: ruff

MCP-сервер (Model Context Protocol) на базе ИИ, который ревьюит ваш код так, как опытные мейнтейнеры ревьюят патчи в серьёзных проектах: технично, прямо, без дипломатии.

Что он делает

  • ИИ-ревью кода — ревьюит фрагменты кода, файлы, git-диффы и коммиты

  • Возвращает замечания с метками серьёзности: CRITICAL, MAJOR, MINOR, NIT, CLEAN

  • Указывает конкретные номера строк для каждого замечания

  • Объясняет, почему что-то плохо, а затем — как это исправить

  • Завершает чётким вердиктом: «Ship it.» или «Do not merge until...»

  • Никакой ложной похвалы. Никаких оговорок. Никаких извинений. Никакой воды.

Related MCP server: greybeard

Зачем?

Большинство ИИ-ревьюеров кода обучены быть вежливыми. Они предваряют критику словами «отличная работа, но...», смягчают её фразами «возможно, вам стоит рассмотреть...», разбавляют замечания «это потенциально может быть проблемой».

Так серьёзное ревью кода не работает. В реальных проектах (Linux kernel, PostgreSQL, Redis, SQLite) мейнтейнеры ревьюят патчи напрямую. Они находят проблемы и чётко о них заявляют. Они существуют не для того, чтобы автору было приятно, — они существуют, чтобы код стал лучше.

Этот MCP воплощает эту традицию. Личность и есть продукт.

Anti-RLHF инженерия

LLM обучены с помощью RLHF быть вежливыми. Этот ИИ-агент борется с этим на трёх уровнях:

  1. Системный промпт — 12 ключевых принципов (код, а не кодер; вердикт в первую очередь; метки серьёзности; указание строк; никакой ложной похвалы; никаких оговорок; никаких извинений; никакой воды; второе лицо; никаких упоминаний демографии; никаких отказов; никаких выдуманных багов)

  2. Пост-процессор — удаляет 40+ запрещённых фраз (оговорки, смягчения, извинения, вода) из вывода LLM

  3. Валидатор — проверяет, что в выводе есть метки серьёзности, указания строк и вердикт; помечает расплывчатые формулировки проблем как сигналы галлюцинаций

Инструменты

Инструмент

Описание

review_code

Ревью фрагмента кода

review_file

Ревью файла с диска (в песочнице)

review_diff

Ревью git-диффа

review_commit

Ревью git-коммита (git show <ref>)

list_severities

Список меток серьёзности с определениями

Уровни жёсткости

Уровень

Поведение

gentle

Слегка смягчает формулировки. По-прежнему сообщает обо всех замечаниях.

standard

Стандартное прямое ревью. Прямо, технично, без дипломатии.

brutal

Без смягчений. «Это неправильно», а не «Это стоит изменить».

kernel-maintainer

Максимальная прямота. Короткие предложения. Повелительное наклонение.

Установка

pip install code-review-agent-mcp

Или с помощью uv:

uv pip install code-review-agent-mcp

Конфигурация

Claude Desktop

Добавьте в claude_desktop_config.json:

{
  "mcpServers": {
    "code-review-agent": {
      "command": "python",
      "args": ["-m", "code_review_agent.server"]
    }
  }
}

Или если установлено через pip:

{
  "mcpServers": {
    "code-review-agent": {
      "command": "code-review-agent-mcp"
    }
  }
}

Cursor

Добавьте в .cursor/mcp.json:

{
  "mcpServers": {
    "code-review-agent": {
      "command": "python",
      "args": ["-m", "code_review_agent.server"]
    }
  }
}

Примеры использования

Ревью фрагмента кода

User: Review this code for me

def get_user(username):
    import sqlite3
    conn = sqlite3.connect("users.db")
    cursor = conn.cursor()
    query = f"SELECT * FROM users WHERE username = '{username}'"
    cursor.execute(query)
    return cursor.fetchone()

Ответ MCP:

## Code Review: snippet

### Findings

**CRITICAL** `snippet:7` — SQL injection
The query uses an f-string with user input, allowing SQL injection. Use parameterized queries: `cursor.execute("SELECT * FROM users WHERE username = ?", (username,))`.

### Verdict

Do not merge until CRITICAL is fixed.

Ревью файла

User: Review src/auth.py

MCP calls review_file with file_path="src/auth.py"
Returns blunt review with line citations.

Ревью коммита

User: Review the last commit

MCP calls review_commit with commit_ref="HEAD"
Returns blunt review of the diff.

Метки серьёзности

Метка

Когда использовать

CRITICAL

Уязвимость безопасности, потеря данных, дедлок, RCE, всё, что ломает релиз

MAJOR

Логическая ошибка, гонка, утечка ресурсов, сломанный крайний случай, неверная абстракция

MINOR

Стиль, именование, отсутствующий тест, избыточный код, хрупкое допущение

NIT

Косметика, форматирование, формулировка комментариев

CLEAN

Явно указывайте, когда раздел в порядке. Предотвращает предвзятость к выдуманным багам.

Безопасность

Этот MCP-сервер реализует песочницу безопасности:

  • Доступ к файлам по умолчанию ограничен текущей рабочей директорией

  • Чувствительные пути (.ssh, .aws, .env, /etc/passwd и т.д.) отклоняются

  • Git-ссылки проверяются по строгому белому списку символов для предотвращения инъекции опций

  • Вызовы подпроцессов используют shell=False и отключают глобальную git-конфигурацию

Полную модель угроз см. в SECURITY.md.

Разработка

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest

# Run tests with coverage
pytest --cov=code_review_agent

Бенчмарк-фрагменты

Директория benchmarks/ содержит 5 регрессионных фрагментов, проверяющих ревьюера:

  1. SQL-инъекция — ожидается CRITICAL, указание строки, «Do not merge»

  2. Изменяемый аргумент по умолчанию — ожидается MAJOR

  3. Чистый код (бинарный поиск) — ожидается CLEAN, «Ship it» (тест на анти-галлюцинации)

  4. Проглоченное исключение — ожидается MAJOR

  5. Ошибка на единицу — ожидается MAJOR

Бенчмарк с чистым кодом — самый важный: он ловит галлюцинации. Если ревьюер выдумывает баги в корректном коде, анти-RLHF система сломана.

Лицензия

MIT

Благодарности

Этот проект воплощает традицию ревью кода мейнтейнеров ядра — методологию, применяемую многими старшими инженерами во многих проектах (Linux kernel, PostgreSQL, Redis, SQLite и других). Мы ссылаемся на традицию, а не на какого-либо конкретного практика.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/frangelbarrera/code-review-agent-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server