GitLab MCP Server

GitLab MCP Server

site icon
2025.04.28 0
GoGitLab 集成自动化工具API 交互开发效率交流协作
GitLab MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,提供与 GitLab API 的无缝集成,使开发者和 AI 工具能够在 GitLab 生态系统中实现高级自动化和交互功能。
View on GitHub

Overview

产品定位

GitLab MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器,提供与 GitLab API 的无缝集成,使开发者和 AI 工具能够在 GitLab 生态系统中实现高级自动化和交互功能。

核心功能

  • 自动化 GitLab 工作流和流程(如管理问题、合并请求)。
  • 从 GitLab 项目和组中提取和分析数据。
  • 构建与 GitLab 交互的 AI 驱动工具和应用程序。

适用场景

  • 自动化 GitLab 工作流和流程(如管理问题、合并请求)。
  • 从 GitLab 项目和组中提取和分析数据。
  • 构建与 GitLab 交互的 AI 驱动工具和应用程序。

工具列表

工具集 描述
projects 项目详情、仓库操作(文件、分支、提交、标签)。
issues 问题管理(增删改查、评论、标签、里程碑)。
merge_requests 合并请求操作(增删改查、评论、审批、差异、状态检查)。
security 访问安全扫描结果(SAST、Secret Detection 等)。
users 用户信息查找,可能包括当前用户详情。
search 利用 GitLab 的范围搜索功能(项目、问题、合并请求、代码)。

常见问题解答

  • 如何连接到自托管的 GitLab 实例? 使用 --gitlab-host 标志或 GITLAB_HOST 环境变量,提供实例的基本 URL(例如 https://gitlab.example.com)。

  • 如何自定义工具名称和描述? 创建一个 gitlab-mcp-server-config.json 文件,包含一个 JSON 对象,映射内部翻译键到所需的字符串。

使用依赖

  1. Docker: 需要在容器中轻松运行服务器,安装并运行 Docker
  2. GitLab 访问令牌: 需要一个 GitLab 访问令牌来与 API 进行身份验证。可以创建个人访问令牌、项目访问令牌或组访问令牌。

安装教程

使用 VS Code(代理模式)

将以下 JSON 块添加到用户设置(JSON)文件中(Preferences: Open User Settings (JSON)Ctrl+Shift+P)。

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "gitlab_token",
        "description": "GitLab Access Token (PAT, Project, or Group)",
        "password": true
      },
      {
        "type": "promptString",
        "id": "gitlab_host",
        "description": "GitLab Host (e.g., gitlab.com or self-managed URL, leave empty for gitlab.com)",
        "password": false
      }
    ],
    "servers": {
      "gitlab": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e", "GITLAB_TOKEN",
          "-e", "GITLAB_HOST",
          "your-docker-registry/gitlab-mcp-server:latest" 
        ],
        "env": {
          "GITLAB_TOKEN": "${input:gitlab_token}",
          "GITLAB_HOST": "${input:gitlab_host}"
        }
      }
    }
  }
}

从源代码构建

  1. 克隆仓库。
  2. 导航到仓库根目录。
  3. 构建服务器:go build -o gitlab-mcp-server ./cmd/gitlab-mcp-server
  4. 配置 MCP 客户端(如 VS Code 用户设置 JSON)以使用构建的可执行文件。
{
  "mcp": {
    "servers": {
      "gitlab": {
        "command": "/path/to/your/gitlab-mcp-server",
        "args": ["stdio"],
        "env": {
          "GITLAB_TOKEN": "<YOUR_TOKEN>",
          "GITLAB_HOST": "<YOUR_GITLAB_URL_OR_EMPTY>" 
        }
      }
    }
  }
}

调试方式

指定工具集

  1. 使用命令行参数(直接运行二进制文件时): bash ./gitlab-mcp-server stdio --toolsets issues,merge_requests,projects

  2. 使用环境变量: bash export GITLAB_TOOLSETS="issues,merge_requests,projects" ./gitlab-mcp-server stdio

使用 Docker 运行

docker run -i --rm \
  -e GITLAB_TOKEN=<your-token> \
  -e GITLAB_HOST=<your-gitlab-url_or_empty> \
  -e GITLAB_TOOLSETS="issues,merge_requests,projects" \
  your-docker-registry/gitlab-mcp-server:latest

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。