使用说明
GitLab MCP代码审查
这个项目是从 cayiteromer/gerrit代码审查mcp 并适应GitLab集成。
一个MCP(模型上下文协议)服务器,用于将Claude等人工智能助手与GitLab的合并请求集成在一起。这使得人工智能助手可以通过GitLab API直接查看代码更改。
特性
- 完成合并请求分析:获取合并请求的完整详细信息,包括差异、提交和注释
- 文件特定差异:分析合并请求中特定文件的更改
- 版本比较:比较不同的分支、标签或提交
- 评审管理:添加评论、批准或取消批准合并请求
- 项目概述:获取项目中所有合并请求的列表
安装
先决条件
快速开始
- 克隆此存储库:
git clone https://github.com/mehmetakinn/gitlab-mcp-code-review.git
cd gitlab-mcp-code-review
- 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
- 创建一个
.env包含GitLab配置的文件(请参阅.env.example对于所有选项):
# Required
GITLAB_TOKEN=your_personal_access_token_here
# Optional settings
GITLAB_HOST=gitlab.com
GITLAB_API_VERSION=v4
LOG_LEVEL=INFO
配置选项
以下环境变量可以在您的 .env 文件:
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
| GITLAB_TOKEN | 是 | - | 您的GITLAB个人访问令牌 |
| GITLAB_HOST | 否 | GITLAB.com | GITLAB实例主机名 |
| GITLAB_API_VERSION | 否 | v4 | 要使用的GITLAB API版本 |
| LOGLEVEL | 否 | 信息 | 记录级别(调试、信息、警告、错误、严重) |
| 调试 | 否 | 错误 | 启用调试模式 |
| REQUEST_TIMEOUT | 否 | 30 | API请求超时(以秒为单位) |
| MAX_RETRIES | 否 | 3 | 失败请求的最大重试次数 |
游标IDE集成
要将此MCP与Cursor IDE一起使用,请将此配置添加到您的 ~/.cursor/mcp.json 文件:
{
"mcpServers": {
"gitlab-mcp-code-review": {
"command": "/path/to/your/gitlab-mcp-code-review/.venv/bin/python",
"args": [
"/path/to/your/gitlab-mcp-code-review/server.py",
"--transport",
"stdio"
],
"cwd": "/path/to/your/gitlab-mcp-code-review",
"env": {
"PYTHONPATH": "/path/to/your/gitlab-mcp-code-review",
"VIRTUAL_ENV": "/path/to/your/gitlab-mcp-code-review/.venv",
"PATH": "/path/to/your/gitlab-mcp-code-review/.venv/bin:/usr/local/bin:/usr/bin:/bin"
},
"stdio": true
}
}
}
替换 /path/to/your/gitlab-mcp-code-review 使用克隆存储库的实际路径。
Claude桌面应用程序集成
要将此MCP与Claude桌面应用程序一起使用:
- 打开克劳德桌面应用程序
- 转到“设置”→ 高级→ MCP配置
- 添加以下配置:
{
"mcpServers": {
"gitlab-mcp-code-review": {
"command": "/path/to/your/gitlab-mcp-code-review/.venv/bin/python",
"args": [
"/path/to/your/gitlab-mcp-code-review/server.py",
"--transport",
"stdio"
],
"cwd": "/path/to/your/gitlab-mcp-code-review",
"env": {
"PYTHONPATH": "/path/to/your/gitlab-mcp-code-review",
"VIRTUAL_ENV": "/path/to/your/gitlab-mcp-code-review/.venv",
"PATH": "/path/to/your/gitlab-mcp-code-review/.venv/bin:/usr/local/bin:/usr/bin:/bin"
},
"stdio": true
}
}
}
替换 /path/to/your/gitlab-mcp-code-review 使用克隆存储库的实际路径。
可用工具
MCP服务器提供以下与GitLab交互的工具:
| 工具 | 说明 |
|---|---|
fetch_merge_request |
获取合并请求的完整信息 |
fetch_merge_request_diff |
获取特定合并请求的差异 |
fetch_commit_diff |
获取特定提交的差异信息 |
compare_versions |
比较不同的分支、标签或提交 |
add_merge_request_comment |
向合并请求添加注释 |
approve_merge_request |
批准合并请求 |
unapprove_merge_request |
取消批准合并请求 |
get_project_merge_requests |
获取项目的合并请求列表 |
使用示例
获取合并请求
# Get details of merge request #5 in project with ID 123
mr = fetch_merge_request("123", "5")
查看特定文件更改
# Get diff for a specific file in a merge request
file_diff = fetch_merge_request_diff("123", "5", "path/to/file.js")
比较分支机构
# Compare develop branch with master branch
diff = compare_versions("123", "develop", "master")
向合并请求添加注释
# Add a comment to a merge request
comment = add_merge_request_comment("123", "5", "This code looks good!")
批准合并请求
# Approve a merge request and set required approvals to 2
approval = approve_merge_request("123", "5", approvals_required=2)
故障排除
如果您遇到问题:
- 验证您的GitLab令牌是否具有适当的权限(api、read_api)
- 检查你的
.env文件设置 - 确保MCP配置路径正确
- 测试连接:
curl -H "Private-Token: your-token" https://gitlab.com/api/v4/projects - 在.env文件中设置LOGLEVEL=DEBUG,以获取更详细的日志记录
贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
请参阅 贡献.md 有关开发过程的更多详细信息,请参阅文件。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。