关于 🤖 MCP GitHub PR Reviewer
MCP GitHub PR Reviewer 是面向开发团队的 Node.js 服务,可自动初审 GitHub 拉取请求。它将 PR 详情交给所选大模型,并保存为 HTML 和 Markdown 格式的评审结果。
主要功能
- 01自动检查潜在错误与安全问题
- 02获取 PR 文件、差异和描述
- 03支持 OpenRouter、Anthropic 和 OpenAI API
- 04以 HTML 和 Markdown 保存评审
- 05提供 HTML 评审结果链接
适用场景
- 01为 GitHub 拉取请求生成初步反馈
- 02向团队成员分享 HTML 评审
- 03保存评审结果以供后续查阅
MCP 相关
该服务实现了部分 MCP 功能,并通过 HTTP 端点接收评审请求。README 将其描述为可集成到 MCP 客户端及其他应用中的后端。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
🤖 MCP GitHub PR Reviewer
📄 项目介绍
MCP GitHub PR Reviewer 是一个 Node.js 服务,实现了 Model Context Protocol (MCP) 的部分功能,用于自动化 GitHub Pull Request(PR)的代码审查流程。该服务充当桥梁,从 GitHub 获取 PR 详情,将其发送给选定的大语言模型(通过 OpenRouter.ai,或直接调用 Anthropic/OpenAI API)进行审查,然后将结果以整洁的 HTML 和 Markdown 格式保存下来。
该项目的主要目标是加快代码审查流程,提供一致的初步反馈,并让开发团队能够专注于更复杂的讨论和架构设计。
✨ 主要功能
- 自动代码审查: 从大模型获取有关潜在错误、安全漏洞、代码质量和最佳实践的详细反馈。
- GitHub 集成: 直接通过 GitHub API 获取 Pull Request 详情(已更改的文件、差异、描述)。
- 大模型灵活接入: 支持通过 OpenRouter.ai 集成各种热门大模型(如 Claude、GPT、Mixtral),也支持直接调用 Anthropic/OpenAI API。
- 信息丰富的输出: 审查结果以美观的 HTML 格式呈现(含基础 CSS),并另存为 Markdown 文件。
- 自动生成公开链接: 可通过服务生成的公开 URL 访问 HTML 审查文件(便于分享或记录日志)。
- 模块化项目结构: 设计为可与任何客户端集成的后端服务(例如 Discord 机器人、Web 应用或其他 AI Agent)。
🚀 安装
按照以下步骤在本地配置并运行项目。
先决条件
- Node.js(推荐使用 18.x 或更高版本)
- Git
- GitHub 账户(用于获取 Personal Access Token)
- OpenRouter.ai 账户(如果使用 OpenRouter,则用于获取 API Key),或者 Anthropic/OpenAI 账户(如果直接使用服务提供商的 API,则用于获取 API Key)
步骤
-
克隆仓库:
git clone https://github.com/username/mcp-github-pr-reviewer.git cd mcp-github-pr-reviewer(如果这是你的项目,请将
https://github.com/username/mcp-github-pr-reviewer.git替换为你的仓库 URL。) -
安装依赖:
npm install -
配置环境变量: 在项目根目录(
mcp-github-pr-reviewer/)中创建.env文件,并添加以下变量:PORT=3000 GITHUB_TOKEN=YOUR_GITHUB_PERSONAL_ACCESS_TOKEN_HERE # --- 在下方选择一种 AI API 选项 --- # 选项 1:适用于 OpenRouter.ai(灵活性方面推荐) OPENROUTER_API_KEY=YOUR_OPENROUTER_API_KEY OPENROUTER_MODEL=anthropic/claude-3-sonnet # 模型示例:anthropic/claude-3-opus, openai/gpt-4o, mistralai/mistral-7b-instruct-v0.2 # 选项 2:适用于 Anthropic 直连(选择此选项时,请取消注释下方的行) # ANTHROPIC_API_KEY=YOUR_ANTHROPIC_API_KEY_HERE # ANTHROPIC_MODEL=claude-3-sonnet-20240229 # 模型示例:claude-3-opus-20240229, claude-3-haiku-20240307GITHUB_TOKEN:创建一个 GitHub Personal Access Token,并授予repo范围,以便读取 Pull Request 详情。OPENROUTER_API_KEY:从 OpenRouter.ai 控制面板获取。ANTHROPIC_API_KEY:从 Anthropic 控制面板获取。
-
启动服务:
npm start服务将在
http://localhost:3000上运行。
💻 使用方法
此服务会公开一个主要的 POST 端点,用于启动 代码审查。
端点
- URL:
http://localhost:3000/review-pull-request - 方法:
POST - 标头:
Content-Type: application/json
请求正文(JSON)
{
"prLink": "https://github.com/owner/repo/pull/123"
}
prLink:要审查的 GitHub Pull Request 的完整 URL。
curl 请求示例
服务启动后,打开一个新终端并运行以下 curl 命令:
curl -X POST \
http://localhost:3000/review-pull-request \
-H 'Content-Type: application/json' \
-d '{
"prLink": "https://github.com/octocat/Spoon-Knife/pull/1"
}'
(请将 https://github.com/octocat/Spoon-Knife/pull/1 替换为你想要审查的有效 GitHub PR 链接。)
响应示例(JSON)
{
"status": "success",
"pull_request_url": "https://github.com/octocat/Spoon-Knife/pull/1",
"ai_review_markdown": "# Code Review: Feat/pusat resolusi PR PR#167\n\n...",
"ai_review_html_url": "http://localhost:3000/reviews/pr-review-octocat-Spoon-Knife-1-2025-06-03T10-15-00-000Z.html",
"output_files": {
"html": "./reviews/pr-review-octocat-Spoon-Knife-1-2025-06-03T10-15-00-000Z.html",
"markdown": "./reviews/pr-review-octocat-Spoon-Knife-1-2025-06-03T10-15-00-000Z.md"
}
}
ai_review_html_url:复制此 URL 并粘贴到你的 浏览器 中,即可查看格式精美的 HTML 代码审查结果。- HTML 和 Markdown 文件也会保存在项目根目录下的
reviews/目录中。
⚙️ 高级配置
自定义 AI 模型
你可以通过更改 .env 文件中的 OPENROUTER_MODEL(如果使用 Anthropic 直连,则更改 ANTHROPIC_MODEL)的值,轻松切换所使用的 AI 模型。请确保所选模型与你使用的 API 兼容。
自定义 AI 提示词
如果你想更改 AI 审查的重点或格式,请修改 server.js 中 getAIReview 函数里的 systemPrompt 和 userPrompt 变量。这是进行 提示词工程的主要位置。
HTML 输出样式
你可以通过修改 server.js 中 finalHtmlOutput 变量里的 <style> 块,自定义 HTML 输出文件的外观。
⚠️ 常见错误处理
ERR_REQUIRE_ESM:确保server.js和package.json已配置为 ES Module(参见安装部分)。fs is not defined:确保server.js顶部有import fs from 'fs/promises';。Pull Request atau repositori tidak ditemukan(404):重新检查你提供的 PR 链接,确保链接有效,且仓库为公开仓库,或你拥有正确的访问权限。Akses GitHub API ditolak(403):确保你的GITHUB_TOKEN有效,并且拥有足够的repo权限(scope)来读取仓库。Gagal mendapatkan review dari AI(500):检查OPENROUTER_API_KEY(或ANTHROPIC_API_KEY)、OPENROUTER_MODEL(或ANTHROPIC_MODEL),并确保你在所用的 AI API 提供商处有足够余额。查看服务端日志,了解 AI API 的详细错误信息。
🤝 贡献
欢迎贡献!如果你有任何想法或改进建议,请:
- Fork 此仓库。\
- 创建一个新的功能分支(
git checkout -b feature/AmazingFeature)。 - 进行更改并提交(
git commit -m 'Add some AmazingFeature')。 - 推送到该分支(
git push origin feature/AmazingFeature)。 - 发起 Pull Request。
📄 许可证
本项目根据 MIT 许可证授权。有关详细信息,请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。