Skip to main content
Glama
TheNovaNodes

MCP GitHub PR Reviewer

by TheNovaNodes

module_type: MCP Server status: Активен protocol: MCP / JSON-RPC / stdio primary_capability: Автоматизированные проверки безопасности диффов GitHub PR с глубокой резервной избыточностью (fallback) requires: python 3.12+, токен Cloudflare Workers AI, токен Poolside works_with: Google Antigravity, Telegram Agent, Cloudflare, Poolside, OpenRouter last_verified: 2026-08-21

MCP GitHub PR Reviewer

Универсальный резервный (fallback) MCP-сервер, обеспечивающий высокоустойчивые автоматизированные проверки безопасности пул-реквестов GitHub.

Related MCP server: MCP Server PR Pilot

Статус и дата последней проверки

Статус: Активен
Дата последней проверки: 2026-08-21

Что он делает / чего не делает

Что он делает:

  • Реализует MCP-сервер, предоставляющий инструмент audit_pr AI-агентам.

  • Обрабатывает диффы кода и возвращает структурированные данные об уязвимостях безопасности и обратную связь по архитектуре в формате JSON.

  • Автоматически маршрутизирует и каскадирует запросы LLM через 14-уровневый конвейер отказоустойчивого переключения (failover), обеспечивая 100% безотказную работу.

  • Балансирует нагрузку и переключения при сбоях между конечными точками API Cloudflare Workers AI, Poolside Native и OpenRouter.

Чего он не делает:

  • Не объединяет пул-реквесты автоматически и не воздействует на сам код (действует исключительно как аналитический аудитор).

  • Не управляет токенами GitHub API напрямую для получения данных; ожидается, что диффы предоставляет вызывающий агент.

Зачем агенту его использовать

Агенты используют этот MCP-сервер, чтобы передавать вычислительно сложные задачи проверки кода специализированным внешним LLM, не управляя самостоятельно токенами, логикой отката (fallback) или циклами повторных попыток. Агенту достаточно просто предоставить дифф, и MCP-сервер гарантирует высококачественную проверку.

Архитектура и зависимости

Архитектура:

  • Universal Fallback Engine: конечный автомат (engine.py), который перебирает любые настроенные OpenAI-совместимые конечные точки LLM и пулы ключей.

  • Provider Pipeline (Configurable): Вы можете настроить собственный каскадный конвейер провайдеров с помощью переменной окружения FALLBACK_PROVIDERS (JSON-массив).

    • Пример конфигурации: сначала локальный Ollama, затем DeepSeek, затем OpenRouter.

  • Legacy Lab Support: если FALLBACK_PROVIDERS пуст, автоматически переключается на значения по умолчанию лаборатории TheNovaNodes (Cloudflare -> Poolside -> OpenRouter) с использованием устаревшего regex-разбора.

  • MCP Protocol Layer: использует стандартный stdio JSON-RPC для выполнения MCP-сервера (server.py).

Зависимости:

  • mcp (официальный Python SDK)

  • Стандартный Python urllib (сторонние HTTP-клиенты не требуются)

  • pytest (для тестов)

Совместимость

  • Python 3.12+

  • Окружения Linux/Unix

Быстрый старт и проверка работоспособности

Быстрый старт:

git clone https://github.com/TheNovaNodes/mcp-gh-pr-reviewer.git
cd mcp-gh-pr-reviewer
python3 -m venv .venv
source .venv/bin/activate
pip install mcp
# Ensure vault tokens are populated in /dev/shm/agent_vault/
./run_mcp.sh

Проверка работоспособности: Чтобы проверить инициализацию движка и подключения к API, выполните:

python3 test_fallback.py

Это запускает имитационный аудит диффа PR, чтобы протестировать каскад, не подключая сервер к MCP-клиенту.

Конфигурация и переменные окружения

Переменная

Описание

FALLBACK_PROVIDERS

JSON-массив провайдеров. Пример: [{"name": "Local", "url": "http://127.0.0.1:11434/v1/chat/completions", "model": "qwen2.5-coder", "keys_env": "LOCAL_TOKENS"}]

CF_TOKENS

(Устаревший режим) Токены Cloudflare и идентификаторы учетных записей.

PS_TOKENS

(Устаревший режим) Ключи API Poolside.

OR_TOKENS

(Устаревший режим) Ключи API OpenRouter.

Полная таблица инструментов/API MCP с побочными эффектами

Ключ сервера

Имя

Тип

Плоскость

Побочные эффекты / Действия

universal-pr-auditor

PR Auditor (Universal)

audit

data

Читает диффы, запрашивает внешние LLM через HTTP, возвращает JSON.

Модель безопасности и границы доверия

  • Управление секретами: сервер динамически считывает секреты с RAM-диска (/dev/shm/agent_vault/) через обёртку run_mcp.sh. Секреты никогда не захардкожены в исходном коде Python или в истории git.

  • Выполнение: работает как стандартный локальный процесс, взаимодействующий через stdio. Не открывает локально никаких сетевых портов.

Тесты и точные команды

Для запуска тестов с помощью pytest:

python3 -m pytest test_engine.py

Этот набор тестирует логику извлечения ключей, разбора и маршрутизации движка, не расходуя реальные токены LLM.

Эксплуатация, журналы, резервное копирование/восстановление, откат

  • Эксплуатация: сервер контекстно запускается агентом antigravity-telegram-agent с помощью run_mcp.sh.

  • Журналы: журналы движка (откаты, ошибки HTTP) выводятся в stderr и перехватываются MCP-менеджером агента.

  • Резервное копирование/восстановление: этот сервер не хранит постоянного состояния.

  • Откат: git checkout main && git reset --hard <hash>

Общий пример MCP-клиента

Пример JSON-RPC-запроса для запуска проверки:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "callTool",
  "params": {
    "name": "audit_pr",
    "arguments": {
      "diff_content": "+ def bypass_auth():\n+    return True"
    }
  }
}

Ограничения и дорожная карта

Ограничения:

  • Бесплатные модели OpenRouter имеют строгие ограничения частоты запросов (rate limits) и могут часто завершаться ошибкой (движок корректно обрабатывает такие случаи).

  • Диффы размером более 128K токенов могут быть усечены провайдерами LLM.

Дорожная карта:

  • Добавить нативные возможности получения GitHub PR (сейчас сервер полагается на то, что дифф предоставляет вызывающий агент).

Связанные модули TheNovaNodes

  • Antigravity Telegram Agent

  • Модули Google Jules MCP

Лицензия

MIT License

Related MCP Connectors

Related MCP Servers