G

GitLab AI代码审查

一个MCP服务器,它将像Claude这样的AI助手与GitLab的合并请求集成在一起,使它们能够通过GitLab API直接审查代码更改、添加评论以及批准/不批准合并请求。

version-controlcode-execution

1.5k 查看 · 2026-07-07 更新

简介

一个MCP服务器,它将像Claude这样的AI助手与GitLab的合并请求集成在一起,使它们能够通过GitLab API直接审查代码更改、添加评论以及批准/不批准合并请求。

简介

一个MCP服务器,它将像Claude这样的AI助手与GitLab的合并请求集成在一起,使它们能够通过GitLab API直接审查代码更改、添加评论以及批准/不批准合并请求。

GitLab MCP for Code Review

Python 3.10+ License: MIT

本项目是从 cayirtepeomer/gerrit-code-review-mcp 分支而来,并针对GitLab集成进行了适配。

一个用于将AI助手(如Claude)与GitLab的合并请求集成的MCP(Model Context Protocol)服务器。这允许AI助手通过GitLab API直接审查代码变更。

功能

  • 完整的合并请求分析:获取合并请求的完整详情,包括差异、提交和评论
  • 特定文件的差异分析:分析合并请求中特定文件的变更
  • 版本比较:比较不同的分支、标签或提交
  • 审查管理:添加评论、批准或取消批准合并请求
  • 项目概览:获取项目中的所有合并请求列表

安装

前提条件

  • Python 3.10+
  • 具有API范围(read_api, api)的GitLab个人访问令牌
  • Cursor IDE 以实现完整的MCP集成

快速开始

  1. 克隆此仓库:

bash git clone https://github.com/yourusername/gitlab-mcp-code-review.git cd gitlab-mcp-code-review

  1. 创建并激活虚拟环境:

bash python -m venv .venv source .venv/bin/activate # 在Windows上使用:.venvScriptsactivate

  1. 安装依赖项:

bash pip install -r requirements.txt

  1. 使用您的GitLab配置创建一个.env文件(请参阅.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_HOSTgitlab.comGitLab实例主机名
GITLAB_API_VERSIONv4要使用的GitLab API版本
LOG_LEVELINFO日志级别 (DEBUG, INFO, WARNING, ERROR, CRITICAL)
DEBUGfalse启用调试模式
REQUEST_TIMEOUT30API请求超时时间(秒)
MAX_RETRIES3失败请求的最大重试次数

Cursor IDE集成

要将此MCP与Cursor IDE一起使用,请在您的~/.cursor/mcp.json文件中添加以下配置:

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服务器提供了以下工具来与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获取项目的合并请求列表

使用示例

获取合并请求

python

获取ID为123的项目中编号为5的合并请求的详细信息

mr = fetch_merge_request("123", "5")### 查看特定文件的更改

python

获取合并请求中特定文件的差异

file_diff = fetch_merge_request_diff("123", "5", "path/to/file.js")

比较分支

python

比较 develop 分支与 master 分支

diff = compare_versions("123", "develop", "master")

向合并请求添加评论

python

向合并请求添加评论

comment = add_merge_request_comment("123", "5", "这段代码看起来不错!")

批准合并请求

python

批准合并请求并将所需批准数设置为 2

approval = approve_merge_request("123", "5", approvals_required=2)

故障排除

如果您遇到问题:

  1. 确认您的 GitLab 令牌具有适当的权限(api, read_api)
  2. 检查您的 .env 文件设置
  3. 确保您的 MCP 配置路径正确
  4. 使用以下命令测试连接:curl -H "Private-Token: your-token" https://gitlab.com/api/v4/projects
  5. 在您的 .env 文件中设置 LOG_LEVEL=DEBUG 以获取更详细的日志记录

贡献

欢迎贡献!请随时提交 Pull Request。

  1. 叉取仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m 'Add some amazing feature')
  4. 推送到该分支 (git push origin feature/amazing-feature)
  5. 打开一个 Pull Request

有关开发过程的更多详细信息,请参阅 CONTRIBUTING.md 文件。

许可证

本项目根据 MIT 许可证发布 - 详情请参阅 LICENSE 文件。

服务配置

[{'mcpServers': {'gitlab-mcp-code-review': {'args': ['/path/to/your/gitlab-mcp-code-review/server.py', '--transport', 'stdio'], 'command': '/path/to/your/gitlab-mcp-code-review/.venv/bin/python', 'cwd': '/path/to/your/gitlab-mcp-code-review', 'env': {'PATH': '/path/to/your/gitlab-mcp-code-review/.venv/bin:/usr/local/bin:/usr/bin:/bin', 'PYTHONPATH': '/path/to/your/gitlab-mcp-code-review', 'VIRTUAL_ENV': '/path/to/your/gitlab-mcp-code-review/.venv'}, 'stdio': True}}}]

来源