代码评审GitLab

huzhiyang2025/CodeReviewGitLab
0 Stars 181 次浏览 更新于 2026-08-23

该项目是一个MCP(模型上下文协议)服务器,用于将像Claude这样的AI助手与GitLab的合并请求集成。它允许AI助手通过GitLab API直接审查代码更改。功能包括完整的合并请求分析、特定文件差异、版本比较和审查管理。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

GitLab MCP 代码审查


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

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

特性

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

安装

前提条件

快速开始

  1. 克隆此仓库:

git clone https://github.com/SimonHu1993/gitlab-mcp-code-review.git

cd gitlab-mcp-code-review

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



python -m venv .venv



# On Mac

source .venv/bin/activate  



# On Windows:

source .venv\Scripts\activate

  1. 安装依赖项:

./.venv/bin/pip install -r requirements.txt

  1. 使用您的 GitLab 配置创建一个 .env 文件(请参阅 .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 版本
LOG_LEVEL INFO 日志级别(DEBUG, INFO, WARNING, ERROR, CRITICAL)
DEBUG false 启用调试模式
REQUEST_TIMEOUT 30 API 请求超时时间(秒)
MAX_RETRIES 3 失败请求的最大重试次数

Cursor 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 桌面应用程序:

  1. 打开 Claude 桌面应用程序
  2. 转到设置 → 高级 → MCP 配置
  3. 添加以下配置:

{

  "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 获取项目的合并请求列表
add_commit_comment 向提交添加评论
search_projects 获取项目信息

使用示例

获取合并请求


# 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)

故障排除

如果您遇到问题:

  1. 确认您的 GitLab 令牌具有适当的权限(api, read_api)2. 检查你的 .env 文件设置
  2. 确保你的 MCP 配置路径正确
  3. 使用以下命令测试连接:curl -H "Private-Token: your-token" https://gitlab.com/api/v4/projects
  4. 在你的 .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 文件。

相关 MCP 服务