mcpField
🤖
🤖 MCP GitHub PR Reviewer

🤖 MCP GitHub PR Reviewer

本地服务
github.com/riomanik版本控制073 周前更新

关于 🤖 MCP GitHub PR Reviewer

MCP GitHub PR Reviewer 是面向开发团队的 Node.js 服务,可自动初审 GitHub 拉取请求。它将 PR 详情交给所选大模型,并保存为 HTML 和 Markdown 格式的评审结果。

主要功能

  1. 01自动检查潜在错误与安全问题
  2. 02获取 PR 文件、差异和描述
  3. 03支持 OpenRouter、Anthropic 和 OpenAI API
  4. 04以 HTML 和 Markdown 保存评审
  5. 05提供 HTML 评审结果链接

适用场景

  1. 01为 GitHub 拉取请求生成初步反馈
  2. 02向团队成员分享 HTML 评审
  3. 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)
步骤
  1. 克隆仓库:

    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。)

  2. 安装依赖:

    npm install
    
  3. 配置环境变量: 在项目根目录(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-20240307
    
  4. 启动服务:

    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 的详细错误信息。

🤝 贡献

欢迎贡献!如果你有任何想法或改进建议,请:

  1. Fork 此仓库。\
  2. 创建一个新的功能分支(git checkout -b feature/AmazingFeature)。
  3. 进行更改并提交(git commit -m 'Add some AmazingFeature')。
  4. 推送到该分支(git push origin feature/AmazingFeature)。
  5. 发起 Pull Request。

📄 许可证

本项目根据 MIT 许可证授权。有关详细信息,请参阅 LICENSE 文件。


评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。