返回市场
GitLab-MCP代码审查服务器

GitLab-MCP代码审查服务器

作者:mehmetakinn36 星标更新:2025-05-15

项目介绍

GitLab MCP 用于代码审查

Python 3.10+ License: MIT

此项目是从 cayirtepeomer/gerrit-code-review-mcp 分叉并适应 GitLab 集成。

这是一个 MCP(模型上下文协议)服务器,用于将像 Claude 这样的AI助手与 GitLab 的合并请求集成。这使得AI助手能够通过 GitLab API 直接审查代码更改。

功能

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

安装

先决条件

快速开始

  1. 克隆此仓库:
git clone https://github.com/mehmetakinn/gitlab-mcp-code-review.git
cd gitlab-mcp-code-review
  1. 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate  # 在 Windows 上:.venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 创建一个 .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_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 文件中添加以下配置:

{
  "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获取项目的合并请求列表

使用示例

获取合并请求

# 获取项目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)

故障排除

如果您遇到问题:

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

贡献

欢迎贡献!请随意提交拉取请求。

  1. 分叉仓库
  2. 创建您的功能分支 (git checkout -b feature/amazing-feature)
  3. 提交您的更改 (git commit -m '添加一些很棒的功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求

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

许可证

此项目根据 MIT 许可证发布 - 详情请参阅 LICENSE 文件。 </中文翻译>