PR Review MCP Server

PR Review MCP Server

Connects Claude to GitHub Pull Requests to fetch and filter code diffs for AI-assisted reviews. It enables listing open PRs and analyzing changes while automatically excluding binary and asset files to focus on relevant code.

Category
访问服务器

README

PR Review MCP Server

AI-assisted code review tool for developers/AQA engineers

A Python MCP (Model Context Protocol) server that connects Claude Desktop to GitHub Pull Requests. It fetches PR diffs, filters out binary and asset files (Unity .meta, images, audio, shaders, etc.), and gives Claude only the actual code to review.

Built as a QA automation tool to speed up pull request reviews using AI.

Requirements

  • Python 3.11+
  • Claude Desktop

Installation

git clone https://github.com/<your-username>/pr-review-mcp.git
cd pr-review-mcp
pip install -r requirements.txt

Authentication

The server looks for credentials in this order:

  1. Environment variables (GITHUB_TOKEN, GITHUB_REPO) — for Claude Desktop
  2. OS keychain (via keyring) — for Claude Code and local development
  3. Interactive prompt — fallback from the terminal

Option A — Keychain (recommended for Claude Code)

Run the server once manually to store your credentials in the OS keychain:

python server.py

You will be prompted for:

  1. GITHUB_TOKEN — A GitHub Personal Access Token (classic) with repo scope. Generate one at github.com/settings/tokens.
  2. GITHUB_REPO — The repository in owner/repo format (e.g. octocat/Hello-World).

Both values are stored securely in your OS keychain and will not be prompted again.

Option B — Environment variables (recommended for Claude Desktop)

Pass credentials directly in the MCP config (see examples below). This avoids the interactive prompt, which does not work in Claude Desktop's background processes.

Claude Desktop Configuration

Add the following to your Claude Desktop config file:

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "pr-review": {
      "command": "python",
      "args": ["C:\\path\\to\\pr-review-mcp\\server.py"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here",
        "GITHUB_REPO": "owner/repo"
      }
    }
  }
}

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "pr-review": {
      "command": "python",
      "args": ["/path/to/pr-review-mcp/server.py"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here",
        "GITHUB_REPO": "owner/repo"
      }
    }
  }
}

Note: If you already stored credentials in the keychain (Option A), you can omit the env block — the server will find them automatically.

After editing the config, restart Claude Desktop.

Claude Code Configuration

Option A — CLI command:

claude mcp add pr-review -- python /path/to/pr-review-mcp/server.py

Option B — create .mcp.json in your project root:

{
  "mcpServers": {
    "pr-review": {
      "command": "python",
      "args": ["/path/to/pr-review-mcp/server.py"]
    }
  }
}

Then restart Claude Code.

Usage

Once configured, Claude Desktop will have two new tools:

  • list_open_prs — Lists open PRs in the configured repository.
  • get_pr_diff — Fetches the code diff for a specific PR number, filtering out binary/asset files.

Example prompts in Claude Desktop:

  • "List open PRs"
  • "Review PR #42"
  • "What changed in PR #15?"

Reset Tokens

To clear stored credentials and re-enter them:

python server.py --reset

Then run python server.py again to enter new values.

Troubleshooting

Errors are automatically logged to error_report.log in the project directory.

To enable verbose debug logging, add MCP_DEBUG to your config:

"env": {
  "GITHUB_TOKEN": "ghp_your_token_here",
  "GITHUB_REPO": "owner/repo",
  "MCP_DEBUG": "1"
}

Or set it in your terminal before running manually:

MCP_DEBUG=1 python server.py

Common issues:

  • latin-1 codec error — Your GITHUB_TOKEN contains non-ASCII characters. Make sure you copied the real token, not a placeholder.
  • Server hangs on startup — Credentials are missing and the server is waiting for interactive input. Use environment variables (Option B) or run python server.py manually first to save them to keychain.
  • 401 Unauthorized — Token is invalid or expired. Run python server.py --reset and enter a new token.

Architecture

Claude Desktop  ──MCP──▶  server.py  ──REST API──▶  GitHub
                              │
                         keyring (OS)
                         secure token storage

Описание

MCP-сервер для автоматизации код-ревью пулл-реквестов с помощью Claude AI.

Что это?

Это инструмент для QA-инженеров, который подключает Claude Desktop к GitHub и позволяет ИИ анализировать изменения в пулл-реквестах. Сервер автоматически фильтрует бинарные файлы и ассеты (Unity .meta, текстуры, аудио, шейдеры и т.д.), передавая Claude только код для ревью.

Что умеет?

  • list_open_prs — показать список открытых PR в репозитории
  • get_pr_diff — получить diff конкретного PR с фильтрацией бинарных файлов

Зачем?

  • Ускоряет процесс код-ревью в QA
  • ИИ проверяет код на типичные ошибки, проблемы безопасности, читаемость
  • Фильтрует шум — бинарники, ассеты Unity, изображения не попадают в ревью
  • Токен GitHub хранится безопасно в системном keychain (не в открытом виде)

Требования

  • Python 3.11+
  • Claude Desktop

Установка

git clone https://github.com/<your-username>/pr-review-mcp.git
cd pr-review-mcp
pip install -r requirements.txt

Аутентификация

Сервер ищет учётные данные в следующем порядке:

  1. Переменные окружения (GITHUB_TOKEN, GITHUB_REPO) - для Claude Desktop
  2. Системный keychain (через keyring) - для Claude Code и локальной разработки
  3. Интерактивный ввод — при ручном запуске из терминала

Вариант A — Keychain (рекомендуется для Claude Code)

Запустите сервер вручную, чтобы сохранить токен и репозиторий в системный keychain:

python server.py

Вам будет предложено ввести:

  1. GITHUB_TOKEN — Personal Access Token (classic) с правами repo. Создать можно здесь: github.com/settings/tokens.
  2. GITHUB_REPO — Репозиторий в формате owner/repo (например octocat/Hello-World).

Оба значения сохраняются в системном keychain и больше запрашиваться не будут.

Вариант B — Переменные окружения (рекомендуется для Claude Desktop)

Передайте учётные данные прямо в конфиге MCP (см. примеры ниже). Это позволяет обойти интерактивный ввод, который не работает в фоновых процессах Claude Desktop.

Настройка Claude Desktop

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

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "pr-review": {
      "command": "python",
      "args": ["C:\\path\\to\\pr-review-mcp\\server.py"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here",
        "GITHUB_REPO": "owner/repo"
      }
    }
  }
}

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "pr-review": {
      "command": "python",
      "args": ["/path/to/pr-review-mcp/server.py"],
      "env": {
        "GITHUB_TOKEN": "ghp_your_token_here",
        "GITHUB_REPO": "owner/repo"
      }
    }
  }
}

Примечание: Если вы уже сохранили токен в keychain (Вариант A), блок env можно не указывать — сервер найдёт данные автоматически.

После изменения конфига перезапустите Claude Desktop.

Настройка Claude Code

Вариант A — через CLI:

claude mcp add pr-review -- python /path/to/pr-review-mcp/server.py

Вариант B — создайте .mcp.json в корне проекта:

{
  "mcpServers": {
    "pr-review": {
      "command": "python",
      "args": ["/path/to/pr-review-mcp/server.py"]
    }
  }
}

Затем перезапустите Claude Code.

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

После настройки в Claude Desktop появятся два инструмента:

  • list_open_prs — список открытых PR в репозитории
  • get_pr_diff — diff конкретного PR с фильтрацией бинарных файлов

Примеры промптов:

  • «Покажи открытые PR»
  • «Сделай ревью PR #42»
  • «Что изменилось в PR #15?»

Сброс токенов

Чтобы удалить сохранённые данные и ввести заново:

python server.py --reset

Затем запустите python server.py снова для ввода новых значений.

Диагностика ошибок

Ошибки автоматически записываются в error_report.log в папке проекта.

Для включения подробного дебаг-логирования добавьте MCP_DEBUG в конфиг:

"env": {
  "GITHUB_TOKEN": "ghp_your_token_here",
  "GITHUB_REPO": "owner/repo",
  "MCP_DEBUG": "1"
}

Или при ручном запуске из терминала:

MCP_DEBUG=1 python server.py

Частые проблемы:

  • Ошибка latin-1 codec — В GITHUB_TOKEN попали не-ASCII символы. Убедитесь, что скопировали настоящий токен, а не плейсхолдер.
  • Сервер зависает при запуске — Нет сохранённых учётных данных и сервер ждёт ввода. Используйте переменные окружения (Вариант B) или запустите python server.py вручную для сохранения в keychain.
  • 401 Unauthorized — Токен невалиден или истёк. Выполните python server.py --reset и введите новый токен.

Структура проекта

pr-review-mcp/
├── server.py          — MCP-инструменты и точка входа
├── github_client.py   — авторизация и работа с GitHub API
├── file_filter.py     — правила фильтрации файлов по расширениям
├── logger.py          — логирование ошибок и дебаг-режим
├── launcher.py        — обёртка для запуска из Claude Desktop (UTF-8)
├── requirements.txt   — зависимости
└── README.md

Поддерживаемые расширения для ревью

.cs, .json, .xml, .yaml, .yml, .md, .txt, .gradle, .java, .kt, .sh, .py

Игнорируемые файлы

.meta, .prefab, .unity, .asset, .mat, .fbx, .png, .jpg, .shader, .dll, .mp3, .wav, .anim и другие бинарные форматы.


License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选