使用说明
GitHub PR评论MCP服务器
MCP(模型上下文协议)服务器,用于全面的GitHub Pull Request审查、代码分析和安全问题检测。
特性
- 🔍 综合公关分析:分析代码质量、安全漏洞和最佳实践的拉取请求
- 🛡️ 安全扫描:检测多种编程语言中的常见安全问题和漏洞
- 📊 代码质量评估:评估代码的可维护性、复杂性和对最佳实践的遵守情况
- 🚨 风险评估:提供总体风险评级和可操作的建议
- 🔧 多语言支持:支持JavaScript、TypeScript、Python、Java、C#、PHP等
- 📋 详细报告:生成具有文件级分析的全面审查报告
安装
先决条件
- Node.js 18.0.0或更高版本
- 具有存储库访问权限的GitHub个人访问令牌
设置
- 克隆存储库:
git clone https://github.com/doraemon0905/github-review.git
cd github-review
- 安装依赖项:
npm install
- 构建项目:
npm run build
- 设置环境变量:
export GITHUB_TOKEN=your_github_personal_access_token
用法
运行MCP服务器
npm start
服务器将启动并监听stdio上的MCP连接。
Cursor/Claude中的配置
将以下配置添加到MCP设置中:
{
"github-pr-review": {
"command": "node",
"args": ["/path/to/github-review/dist/index.js"],
"env": {
"GITHUB_TOKEN": "your_github_token_here"
}
}
}
可用工具
1. get_pull_request
获取拉取请求详细信息,包括元数据和文件更改。
参数:
owner(string):存储库所有者(用户名或组织)repo(string):存储库名称pull_number(number):拉取请求编号
例子:
Get pull request microsoft/vscode #12345
2. review_pull_request
对拉取请求进行全面审查,包括代码分析、问题检测和安全检查。
参数:
owner(string):存储库所有者repo(string):存储库名称pull_number(number):拉取请求编号include_security(布尔值,可选):包括安全分析(默认值:true)include_best_practices(布尔值,可选):包括最佳实践建议(默认值:true)severity_threshold(字符串,可选):要报告的最低严重性级别-“低”、“中”、“高”或“严重”(默认值:“中”)
例子:
Review pull request microsoft/vscode #12345 with high severity threshold
3. analyze_code_diff
分析特定代码更改的问题和安全漏洞。
参数:
diff_content(string):要分析的Git差异内容file_path(string):正在分析的文件的路径language(字符串,可选):编程语言(如果未提供,则自动检测)include_security(布尔值,可选):包括安全分析(默认值:true)
例子:
Analyze this diff for security issues:
```diff
+function validateUser(input) {
+ return eval(input.code);
+}
4. get_repository_prs
列出具有筛选选项的存储库拉取请求。
参数:
owner(string):存储库所有者repo(string):存储库名称state(字符串,可选):PR状态过滤器-“打开”、“关闭”或“全部”(默认值:“打开”)limit(数字,可选):要返回的最大PR数(默认值:10,最大值:100)sort(字符串,可选):排序条件-“已创建”、“已更新”、“流行度”或“长时间运行”(默认值:“已创建的”)
例子:
List open pull requests for microsoft/vscode
证券分析
服务器检测到各种安全问题,包括:
JavaScript/TypeScript
- 使用
eval()以及类似的危险功能 - XSS漏洞通过
innerHTML - 不安全的
setTimeout用法 - TypeScript
any类型用法 - 硬编码机密和API密钥
python
- 使用
exec()和eval() - 不安全的
pickle用法 - 裸露的
except条款 - 输入验证问题
PHP程序
- SQL注入模式
- 危险功能的使用
- 未经验证的超全球使用
将军
- 硬编码密码和API密钥
- 注释掉的代码
- TODO/FIXME标记
- 长线和代码复杂性
代码质量评估
分析仪评估:
- 复杂性:基于决策点的圈复杂度
- 可维护性:基于行数、复杂性和可读性的评分
- 重复代码:重复代码模式的检测
- 最佳实践:特定语言的编码标准
- 文件风险:基于文件类型和模式的评估
风险评估
每个PR都会收到一个总体风险评级:
- 低:小问题,可以安全合并
- 中等:存在一些问题,建议审查
- 高:安全问题或多个问题
- 关键的:阻碍合并的严重问题
发展
项目结构
src/
├── index.ts # Main MCP server
├── services/
│ ├── GitHubService.ts # GitHub API interactions
│ ├── CodeAnalyzer.ts # Code analysis engine
│ └── PRReviewer.ts # PR review orchestrator
建筑
npm run build
发展模式
npm run dev
代码检查
npm run lint
测试
npm test
贡献
- 分叉存储库
- 创建要素分支:
git checkout -b feature-name - 进行更改并添加测试
- 运行测试套件:
npm test - 运行门楣:
npm run lint - 提交您的更改:
git commit -am 'Add feature' - 推到分支:
git push origin feature-name - 创建拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
安全
如果您发现安全漏洞,请发送电子邮件至 nguyentruonggiang91@gmail.com。所有安全漏洞都将得到及时解决。
更新日志
版本1.0.0
- 初始版本
- GitHub公关分析
- 多语言安全扫描
- 代码质量评估
- 风险评估和建议
