此项目是从 cayirtepeomer/gerrit-code-review-mcp 分叉并适应 GitLab 集成。
这是一个 MCP(模型上下文协议)服务器,用于将像 Claude 这样的AI助手与 GitLab 的合并请求集成。这使得AI助手能够通过 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 # 在 Windows 上:.venv\Scripts\activate
pip install -r requirements.txt
.env 文件以配置您的 GitLab 设置(参见 .env.example 中的所有选项):# 必需
GITLAB_TOKEN=your_personal_access_token_here
# 可选设置
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 版本 |
| LOG_LEVEL | 否 | INFO | 日志级别(DEBUG, INFO, WARNING, ERROR, CRITICAL) |
| DEBUG | 否 | false | 启用调试模式 |
| REQUEST_TIMEOUT | 否 | 30 | API 请求超时时间(秒) |
| MAX_RETRIES | 否 | 3 | 失败请求的最大重试次数 |
要将此 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 替换为您克隆的仓库的实际路径。
要将此 MCP 与 Claude 桌面应用结合使用:
{
"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 | 获取项目的合并请求列表 |
# 获取项目ID为123的合并请求#5的详情
mr = fetch_merge_request("123", "5")
# 获取合并请求中特定文件的差异
file_diff = fetch_merge_request_diff("123", "5", "path/to/file.js")
# 比较 develop 分支与 master 分支
diff = compare_versions("123", "develop", "master")
# 向合并请求添加评论
comment = add_merge_request_comment("123", "5", "这段代码看起来不错!")
# 批准合并请求并将所需审批数设为2
approval = approve_merge_request("123", "5", approvals_required=2)
如果您遇到问题:
.env 文件设置curl -H "Private-Token: your-token" https://gitlab.com/api/v4/projects欢迎贡献!请随意提交拉取请求。
git checkout -b feature/amazing-feature)git commit -m '添加一些很棒的功能')git push origin feature/amazing-feature)有关开发过程的更多详细信息,请参阅 CONTRIBUTING.md 文件。
此项目根据 MIT 许可证发布 - 详情请参阅 LICENSE 文件。 </中文翻译>