代码审查MCP工具
这是一个Model Context Protocol(MCP)服务器,提供自动代码审查功能,并在支持MCP集成的应用中对GitHub PR进行评论。

功能
- 比较两个git分支之间的代码差异
- 根据GitHub拉取请求URL比较代码差异
- 在GitHub拉取请求中添加总结评论
- 在GitHub拉取请求中添加行特定评论
- 提供详细的代码审查指南
- 支持与Notion集成,从Notion代码块中检索审查指南,默认指南作为备用
- 支持本地markdown文件以获取完整的审查说明
- 包含预配置的样式和代码审查指南
- 从本地目录读取PR模板
- 创建GitHub拉取请求并自动检测仓库信息
- 获取原始git diff输出,不包含审查说明
工具
- CodeReview:在分支和基础分支之间运行git diff。返回diff以及审查和修复问题的说明。
- GetLocalGitDiff:获取两个分支之间的本地git diff。返回原始diff输出,不包含审查说明。
- CodeReviewWithGithubUrl:从GitHub PR URL获取diff。返回diff以及审查和修复问题的说明。
- AddPRSummaryComment:向GitHub PR添加总结评论。
- AddPRLineComment:向GitHub PR中的特定行添加多个评论。支持对PR diff中的特定更改行进行评论。
- GetPRTemplate:从指定的文件夹路径和模板名称读取PR模板,如果未找到,则返回默认模板内容。
- CreatePR:使用指定的标题、正文和分支创建新的GitHub拉取请求。自动检测GitHub URL和当前分支来自本地git配置。
架构
- MCP服务器:监听来自任何MCP兼容客户端应用的代码审查请求。
- Git集成:使用本地git或GitHub PR生成diff。
- Notion集成:如果配置了,从Notion代码块中获取审查指南。
- 本地文件支持:从本地markdown文件中读取完整的审查说明。
- 自动化审查:分析代码diff并生成审查评论和建议。
先决条件
- Node.js(推荐版本18及以上)
- 系统上安装了Git
- 对于GitHub PR审查,您必须提供以下之一:
GITHUB_TOKEN环境变量(用于访问GitHub RESTful API),或者
- 安装并认证了GitHub CLI(
gh)
- (可选)Notion API令牌用于指南集成
MCP配置
要在支持MCP的应用中使用此工具,请遵循以下步骤:
- 打开您的MCP支持应用的配置文件。
- 添加以下配置:
{
"mcpServers": {
"code-review-tool": {
"command": "npx",
"args": ["-y", "code-review-mcp-server"],
"env": {
"GITHUB_TOKEN": "github_token",
"NOTION_API_KEY": "notion_api_key",
"NOTION_CODE_REVIEW_GUIDELINE_CODE_BLOCK_URL": "notion_code_block_url_here",
"NOTION_STYLE_GUIDELINE_CODE_BLOCK_URL": "notion_code_block_url_here",
"LOCAL_INSTRUCTIONS_FILE_PATH": "/path/to/complete-instructions.md",
"IGNORE_PATTERNS": "pattern1,pattern2,pattern3"
}
}
}
}
环境变量描述
<table>
<thead>
<tr>
<th>变量</th>
<th>必需</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>GITHUB_TOKEN</code></td>
<td>可选</td>
<td>用于API访问的GitHub个人访问令牌。如果没有提供,则回退到GitHub CLI。</td>
</tr>
<tr>
<td><code>LOCAL_INSTRUCTIONS_FILE_PATH</code></td>
<td>可选</td>
<td>包含完整审查说明的本地markdown文件路径。当提供时,此文件完全替换组合的Notion/默认指南。优先级:本地 > Notion > 默认。</td>
</tr>
<tr>
<td><code>IGNORE_PATTERNS</code></td>
<td>可选</td>
<td>要排除审查的文件的逗号分隔的glob模式。</td>
</tr>
<tr>
<td colspan="3" align="center"><strong>Notion</strong></td>
</tr>
<tr>
<td><code>NOTION_API_KEY</code></td>
<td>可选</td>
<td>从Notion获取审查指南所需。</td>
</tr>
<tr>
<td><code>NOTION_CODE_REVIEW_GUIDELINE_CODE_BLOCK_URL</code></td>
<td>可选</td>
<td>包含代码审查指南的Notion URL。必须指向一个Notion <code></> Code</code>块,并需要有效的<code>NOTION_API_KEY</code>才能工作。如果没有配置,则回退到默认指南。</td>
</tr>
<tr>
<td><code>NOTION_STYLE_GUIDELINE_CODE_BLOCK_URL</code></td>
<td>可选</td>
<td>包含样式指南的Notion URL。必须指向一个Notion <code></> Code</code>块,并需要有效的<code>_NOTION_API_KEY</code>才能工作。如果没有配置,则回退到默认指南。</td>
</tr>
</tbody>
</table>
审查说明优先级
该工具支持多个来源的审查说明,具有以下优先级顺序(实现):
-
本地Markdown文件(最高优先级)
- 通过
LOCAL_INSTRUCTIONS_FILE_PATH环境变量设置
- 必须是
.md或.markdown文件
- 当可用时,完全替换所有其他说明来源
- 如果无法读取文件,则回退到Notion/默认
-
Notion集成(中等优先级)
- 结合Notion中的样式指南和代码审查指南
- 需要
NOTION_API_KEY和相应的URL环境变量
-
默认指南(最低优先级)
Notion集成设置
1. 请求Notion API令牌
- 访问Notion开发者
- 创建一个新的集成
- 获得API令牌
详细说明,请参阅:Notion API授权指南
2. 配置环境变量
该工具需要以下环境变量:
NOTION_API_KEY=your_token_here
NOTION_CODE_REVIEW_GUIDELINE_CODE_BLOCK_URL=your_notion_code_block_url
NOTION_STYLE_GUIDELINE_CODE_BLOCK_URL=your_notion_style_guideline_url
这些可以在上述MCP配置的env部分中提供。
3. 将集成添加到Notion页面
- 单击Notion页面上的“分享”按钮
- 将您的集成添加到页面的共享列表中
注意:目前仅支持从Notion读取代码块
详细说明,请参阅:Notion API连接指南
使用方法
提示:为了获得更好的审查结果,建议在运行代码审查命令之前切换到正在审查的分支。
本地Git分支审查
在您的MCP兼容应用中发送以下命令:
代码审查
基准分支:branch/任意分支
这将:
- 比较当前分支和指定基准分支之间的差异
- 自动生成git diff
- 根据样式和代码审查指南进行审查
- 提供详细的审查结果和改进建议
获取原始Git diff
仅获取git diff而不包含审查说明:
获取本地git diff
基准分支:main
这将返回当前分支和指定基准分支之间的原始git diff输出,可用于进一步处理或分析。
GitHub PR审查
在您的MCP兼容应用中发送以下命令:
代码审查
https://github.com/owner/repo/pull/123
生成审查报告后,请执行以下操作:
1. 添加PR总结评论
2. 如果个别文件需要建议更改,请使用行评论。
这将获取PR的diff,提供代码审查,并直接在GitHub上留下PR评论。
创建GitHub拉取请求
创建带有自动仓库检测的PR:
基于diff创建PR
基准分支:main
该工具将:
- 自动从git远程检测GitHub仓库URL
- 使用当前分支作为源分支
- 验证当前分支是否已推送到远程
- 使用GitHub CLI或REST API创建PR
- 支持创建草稿PR并分配里程碑
手动覆盖(如果自动检测失败):
创建PR
GitHub URL:https://github.com/user/repo
基准分支:main
读取PR模板
从您的仓库中读取PR模板:
获取PR模板
这将:
- 在指定文件夹中搜索
pull_request_template.md
- 同时检查
.github/子目录
- 返回模板内容或未找到时的默认模板
自定义模板名称:
获取PR模板
文件夹路径:/path/to/your/repo/template
模板名称:custom_template.md
CI集成自动化代码审查
您可以通过触发n8n webhook来在CI管道中自动化代码审查,该webhook将调用此项目的MCP工具进行审查并返回结果或在您的PR上留下评论。
逐步指南和推荐的工作流程图,请参阅:CI集成与n8n和MCP工具
审查指南
此工具提供了多种配置审查指南的方法:
1. 本地Markdown说明(推荐)
创建一个完整的markdown格式指令文件,并设置LOCAL_INSTRUCTIONS_FILE_PATH环境变量。这为您的审查过程提供了最大的灵活性和版本控制。
2. Notion集成
通过Notion代码块配置单独的样式和代码审查指南。
3. 默认指南
该工具包括内置指南,涵盖:
- 样式指南:变量命名、函数命名、常量命名等代码风格标准。
- 代码审查指南:基于SOLID原则、可读性、不可变性等的代码质量标准。