Skip to main content
Glama

critique-mcp

CI

MCP-сервер, который даёт агенту инструменты для полноценного ревью pull request: не просто резюмирует diff, а разбирает его по косточкам, прогоняет линтер по изменённому коду, отмечает, когда тесты не были обновлены, и отправляет настоящее ревью обратно на GitHub.

Python · Model Context Protocol · GitHub REST API


Инструменты

Инструмент

Что делает

list_changed_files

Файлы, изменённые в PR, со статистикой diff и текстом патча

check_test_coverage

Помечает PR, в которых меняются исходные файлы, но не затрагивается ни один тестов файла

run_linter

Прогоняет ruff по каждому изменённому Python-файлу в головном коммите PR

post_review

Отправляет настоящее ревью (комментарий / одобрение / запрос изменений) на PR

Каждый инструмент — это тонкая, независимо тестируемая функция: run_linter не знает, как работает check_test_coverage, и ни один из них не обращается к GitHubClient, кроме как обращается GitHubClient. Агент решает, как их комбинировать; этот сервер просто даёт ему в руки инструменты.

check_test_coverage — это эвристика на уровне PR, а не измерение покрытия для каждого файла: она помечает «исходные файлы изменены, но тестовые файлы не затронуты нигде в этом PR» — тот же грубый сигнал, который используют инструменты вроде Danger.js. PR, в котором меняются пять исходных файлов и трогается один тестовый файл, не имеющий отношения к делу, не будет помечен — точная версия требовала бы реальных данных о покрытии, а не имён файлов.

Related MCP server: GitHub PR Reviewer

Почему это существует

Я вручную находил и исправлял в чужих PR именно такие баги, которые ловят эти инструменты: тестовое утверждение, проходившее впустую, в chroma-core/chroma, валидатор, который проверял только один элемент списка, в weaviate-python-client, баг с точностью чисел с плавающей запятой в qdrant-client. Это превращает процесс ревью в инструменты, которые агент может вызывать напрямую, вместо того чтобы человек каждый раз выполнял те же проверки вручную.

Установка

Требуется Python 3.11+, ruff в PATH и персональный токен доступа GitHub с областью repo (права на чтение достаточно, если вы не хотите, чтобы работал post_review).

cp .env.example .env      # then add your token to .env
python -m venv .venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -r requirements.txt

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

Добавьте его в MCP-конфиг Claude Desktop / Claude Code:

{
  "mcpServers": {
    "critique": {
      "command": "python",
      "args": ["-m", "critique_mcp.server"],
      "env": { "GITHUB_TOKEN": "ghp_..." }
    }
  }
}

Затем попросите агента использовать его: «Используй critique для проверки PR #42 в owner/repo — просмотри на проблемы с линтером и отсутствие тестов, а затем оставь общее ревью».

Тесты

pytest

Все вызовы GitHub API в тестах заменены моками — здесь не выполняется живых сети из запросов, если вы не запускаете сам сервер.

Related MCP Connectors

Related MCP Servers