使用说明

项目简介

GitLab MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,专注于为AI助手提供GitLab项目相关的上下文信息。通过集成 GitLab API 和 Git 本地仓库,该服务器能够提取并结构化 GitLab 项目中的 CI/CD 流水线失败信息、合并请求 (MR) 的评论以及代码变更内容,从而使 AI 助手能够更好地理解代码仓库的当前状态和开发流程中的问题,辅助开发者进行代码开发、问题排查和代码审查等工作。

主要功能点

  1. 获取流水线失败信息: 当 GitLab CI/CD 流水线执行失败时,AI 助手可以通过此功能获取失败 Job 的详细日志,帮助开发者快速定位错误原因。
  2. 获取MR评论: AI 助手可以获取指定合并请求中未解决的代码评审评论,帮助开发者关注需要修复的代码问题和改进建议。
  3. 获取MR代码变更: AI 助手可以获取合并请求的代码变更内容,包括新增、修改和删除的文件及其具体diff信息,辅助进行代码审查和理解代码改动。

安装步骤

  1. 安装 uv: 如果你的系统中没有 'uv',首先需要安装它。打开终端并执行以下命令:
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. 下载仓库代码: 将 'gitlab-mcp-server' 仓库克隆到本地:
    git clone https://github.com/owayo/gitlab-mcp-server.git
    cd gitlab-mcp-server
  3. 安装依赖库: 使用 'uv' 安装项目所需的 Python 库:
    uv sync
  4. 准备 GitLab Access Token: 访问你的 GitLab 账号,在 "Settings" -> "Access Tokens" 中创建一个新的 Access Token。创建时,请确保勾选 "read_api" 权限。

服务器配置

为了让 MCP 客户端(如 Claude 或 Cursor)连接到 GitLab MCP Server,你需要配置客户端的 MCP Server 设置。以下是针对 Claude for Desktop 和 Cursor 的配置示例,你需要根据你的实际环境进行调整。

Claude for Desktop 配置 (claude_desktop_config.json):

{
    "mcpServers": {
        "gitlab-mcp": {
            "command": "uv",
            "args": [
                "--directory",
                "/path/to/this-mcp-server",  // 替换为你的 gitlab-mcp-server 仓库的绝对路径
                "run",
                "main.py"
            ],
            "env": {
                "GITLAB_URL": "your_gitlab_url",          // 替换为你的 GitLab 实例 URL,例如 "https://gitlab.example.com"
                "GITLAB_PROJECT_NAME": "gitlab_project_name", // 替换为你的 GitLab 项目名称或项目ID
                "GITLAB_API_KEY": "your_gitlab_api_key",    // 替换为你之前创建的 GitLab Access Token
                "GIT_REPO_PATH": "/path/to/git/repo"      // 替换为你的本地 Git 仓库的绝对路径
            }
        }
    }
}

Cursor 配置 (.cursor/mcp.json):

{
    "mcpServers": {
        "gitlab-mcp": {
            "command": "env",
            "args": [
                "GITLAB_URL=your_gitlab_url",           // 替换为你的 GitLab 实例 URL,例如 "https://gitlab.example.com"
                "GITLAB_PROJECT_NAME=gitlab_project_name",  // 替换为你的 GitLab 项目名称或项目ID
                "GITLAB_API_KEY=your_gitlab_api_key",     // 替换为你之前创建的 GitLab Access Token
                "GIT_REPO_PATH=/path/to/git/repo",       // 替换为你的本地 Git 仓库的绝对路径
                "uv",
                "--directory",
                "/path/to/this-mcp-server",   // 替换为你的 gitlab-mcp-server 仓库的绝对路径
                "run",
                "main.py"
            ]
        }
    }
}

配置参数说明:

  • 'server name': 服务器名称,例如 '"gitlab-mcp"',在客户端中引用此名称。
  • 'command': 启动服务器的命令,这里使用 'uv run main.py',表示使用 'uv' 运行 'main.py' 文件。
  • 'args': 传递给 'command' 的参数,包括 '--directory' 指定工作目录为 'gitlab-mcp-server' 仓库目录,以及 'run main.py' 实际执行的命令。
  • 'env': 设置环境变量,用于配置 GitLab 连接信息和本地 Git 仓库路径。
    • 'GITLAB_URL': 你的 GitLab 实例的 URL。
    • 'GITLAB_PROJECT_NAME': 你想要操作的 GitLab 项目的名称或 ID。
    • 'GITLAB_API_KEY': 你创建的 GitLab Access Token。
    • 'GIT_REPO_PATH': 你本地 Git 仓库的绝对路径,需要与 GitLab 项目对应,并且包含最新的代码。

注意: 请务必将上述配置文件中的占位符替换为你实际的 GitLab URL、项目名称、API Key 以及本地仓库和服务器代码的路径。

基本使用方法

配置完成后,你的 MCP 客户端(如 Claude 或 Cursor)应该能够连接到 GitLab MCP Server。你可以指示 AI 助手调用以下工具函数来获取 GitLab 项目信息:

  • 'get_pipeline_failed_jobs()': 获取当前分支最新流水线中失败 Job 的信息。
  • 'get_review_comments()': 获取当前分支 MR 中未解决的评审评论。
  • 'get_review_changes()': 获取当前分支 MR 的代码变更内容。

例如,你可以向 Claude 提问: "请帮我查看一下当前分支的流水线失败信息" 或 "获取 MR 的评审评论"。 Claude 将会调用相应的工具函数,并利用 GitLab MCP Server 返回的数据来回答你的问题或执行相关操作。

测试服务器:

你可以通过以下命令在终端中测试服务器的功能 (需要在 'gitlab-mcp-server' 目录下执行):

  • 获取当前分支名: 'python main.py test branch'
  • 获取当前分支 MR ID: 'python main.py test mr-id'
  • 获取流水线失败信息: 'python main.py test failed-jobs'
  • 获取 MR 评审评论: 'python main.py test review-comments'
  • 获取 MR 代码变更: 'python main.py test review-changes'

这些测试命令可以帮助你验证服务器是否正确配置并能正常工作。

信息

分类

开发者工具