PR审查MCP服务器
面向开发人员/AQA工程师的AI辅助代码审查工具
一个Python MCP(模型上下文协议)服务器,将Claude Desktop连接到GitHub Pull Requests。它获取PR差异,过滤出二进制文件和资产文件(Unity .meta、图像、音频、着色器等),并仅向Claude提供实际代码以供查看。
作为QA自动化工具构建,使用AI加速拉取请求审查。
需求
- Python 3.11+
- 克劳德桌面
安装
git clone https://github.com//pr-review-mcp.git
cd pr-review-mcp
pip install -r requirements.txt认证
服务器按以下顺序查找凭据:
- 环境变量 (
GITHUB_TOKEN,GITHUB_REPO)--适用于克劳德桌面 - 操作系统钥匙链 (通过
keyring)--用于克劳德代码和本地开发 - 交互式提示 --从终端回退
选项A——钥匙扣(建议用于Claude Code)
手动运行服务器一次,将您的凭据存储在操作系统密钥链中:
python server.py系统将提示您:
- GITHUB令牌 --GitHub个人访问令牌(经典)
repo范围。生成一个 . - GITHUB \_博客 --存储库位于
owner/repo格式(例如。octocat/Hello-World).
这两个值都安全地存储在您的操作系统密钥链中,不会再次提示。
选项B——环境变量(建议用于Claude Desktop)
直接在MCP配置中传递凭据(见下面的示例)。这避免了交互式提示,这在Claude Desktop的后台进程中不起作用。
Claude桌面配置
将以下内容添加到您的Claude Desktop配置文件中:
窗户: %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"
}
}
}
}注: 如果您已经将凭据存储在密钥链中(选项A),则可以省略 env block——服务器会自动找到它们。在编辑配置之后, 重新启动克劳德桌面.
Claude代码配置
选项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 --获取特定PR编号的代码差异,过滤出二进制/资产文件。
Claude Desktop中的示例提示:
- “列出打开的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编解码器错误 --你的GITHUB_TOKEN包含非ASCII字符。确保你复制的是真实的令牌,而不是占位符。- 服务器启动时挂起 --缺少凭据,服务器正在等待交互式输入。使用环境变量(选项B)或运行
python server.py首先手动将它们保存到钥匙扣中。 - 401未经授权 --令牌无效或已过期。跑
python server.py --reset并输入新令牌。
建筑
Claude Desktop ──MCP──▶ server.py ──REST API──▶ GitHub
│
keyring (OS)
secure token storage______________________________________________________________________
描述
MCP服务器,用于使用Claude AI自动更新池请求代码。
这是什么?
这是一个QA工程师的工具,它将Claude Desktop连接到GitHub,并允许AI分析池需求的变化。服务器自动过滤二进制文件和属性(Unity) .meta,纹理,音频,着色器等。D.其他事项)只向Claude发送评论代码。
他能做什么?
- list_open_prs -在存储库中显示开放公关列表
- get_pr_diff -使用二进制文件过滤获取特定PR的差异
为什么?
- 加速QA代码评论过程
- AI检查代码是否存在常见错误、安全问题、可读性
- 过滤噪声-二进制,Unity Assets,图像不进入评论
- GitHub代币安全存储在系统密钥链中(非公开)
要求
- Python 3.11+
- 克劳德桌面
安装
git clone https://github.com//pr-review-mcp.git
cd pr-review-mcp
pip install -r requirements.txt认证
服务器按以下顺序搜索帐户:
- 环境变量 (
GITHUB_TOKEN,GITHUB_REPO)--克劳德桌面 - 系统Keychain (通过)
keyringClaude Code和本地开发 - 交互式输入 -从终端手动启动
A-Keychain选项(建议Claude Code)
手动启动服务器将令牌和存储库保存到系统密钥链:
python server.py您将被要求输入:
- GITHUB令牌 --个人访问令牌(经典)справами
repo您可以在这里创建: . - GITHUB \_博客 -格式存储库
owner/repo(例如octocat/Hello-World).
这两个值都存储在系统密钥链中,不再请求。
选项B-环境变量(建议Claude Desktop)
直接在MCP配置中传输凭据(见下面的示例)。这允许您绕过在Claude桌面后台进程中不起作用的交互式输入。
Claude Desktop的配置
添加到Claude Desktop配置:
窗户: %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 -通过过滤二进制文件来区分特定的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编解码器 -在GITHUB_TOKEN有非ASCII字符。确保您复制了真正的代币,而不是playholder。 - 服务器在启动时挂起 -没有保存的帐户,服务器正在等待输入。使用环境变量(选项B)或运行
python server.py手动保存到Keychain。 - 401未经授权 - 令牌无效或已过期。执行
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 和其他二进制格式。
______________________________________________________________________
许可证
麻省理工学院
