项目简介

'GitLab MCP' 是一个实现了Model Context Protocol (MCP) 的后端服务,旨在将GitLab的功能无缝集成到LLM(大型语言模型)应用中。通过提供一系列标准化的“工具”,LLM客户端可以请求和执行GitLab操作,例如管理议题、合并请求、标签以及项目描述和话题。它通过JSON-RPC协议与LLM客户端通信,尤其兼容Claude Code。

主要功能点

  • 议题管理: 列出、创建和更新GitLab项目的议题,支持添加标题、描述、标签和指派人。
  • 标签管理: 列出项目所有标签,支持按名称过滤并显示相关计数。
  • 评论与通知: 为现有议题添加评论或说明。
  • 合并请求管理: 创建新的合并请求,可配置源/目标分支、标题、描述、指派人、评审人、标签和里程碑。
  • 项目信息管理: 获取和更新项目描述及话题(标签)。
  • 路径访问: 直接通过项目路径(例如 'namespace/project-name')进行操作,无需项目ID。
  • 标签验证: 创建议题时可选择验证标签是否存在,避免无效操作。

安装步骤

方法一:使用Homebrew (macOS/Linux推荐)

# 添加tap源并安装
brew tap sgaunet/homebrew-tools
brew install sgaunet/tools/gitlab-mcp

方法二:从GitHub Releases下载

访问 最新发布页面,下载适用于您操作系统的预编译二进制文件,并将其放置到系统PATH中(例如 '/usr/local/bin/gitlab-mcp'),确保其可执行。

方法三:从源代码构建

  1. 克隆仓库:
    git clone https://github.com/sgaunet/gitlab-mcp.git
    cd gitlab-mcp
  2. 构建项目:
    task build # 如果您安装了Task工具
    # 或者手动构建
    go build -o gitlab-mcp
  3. 安装到PATH:
    sudo mv gitlab-mcp /usr/local/bin/ # 将二进制文件移动到PATH中

服务器配置

MCP服务器需要通过环境变量配置GitLab访问凭据。请确保在启动MCP服务器进程的环境中设置以下变量:

  • 'GITLAB_TOKEN': 必填,您的GitLab个人访问令牌,需要 'api', 'read_api', 'write_api' 等适当的权限。
  • 'GITLAB_URI': 可选,您的自托管GitLab实例URI,默认为 'https://gitlab.com'。
  • 'GITLAB_VALIDATE_LABELS': 可选,是否在创建议题时验证标签是否存在(默认为 'true')。设置为 'false' 可禁用验证。

这些环境变量通常需要添加到您的shell配置文件(如 '~/.bashrc' 或 '~/.zshrc')中,以确保当Claude Code启动MCP服务器时它们可用。

在MCP客户端中配置此MCP服务器的示例(JSON格式): (请注意,MCP客户端只需要提供服务器的启动命令和参数,无需了解Go代码或详细的内部实现。)

{
  "server_name": "gitlab-mcp",
  "command": "/usr/local/bin/gitlab-mcp", // 替换为gitlab-mcp可执行文件的实际路径,请根据您的安装位置调整
  "args": [], // 此服务器不接受额外的命令行参数,主要通过环境变量进行配置
  "description": "提供GitLab项目管理功能的MCP服务器,可用于列出、创建和更新GitLab议题、合并请求、标签和项目描述。",
  "tools": [
    "list_issues",
    "create_issues",
    "update_issues",
    "list_labels",
    "add_issue_note",
    "create_merge_request",
    "get_project_description",
    "update_project_description",
    "get_project_topics",
    "update_project_topics"
  ]
}

基本使用方法

安装并配置好环境变量后,使用MCP客户端(如Claude Code CLI)添加此服务器。例如,如果 'gitlab-mcp' 可执行文件在 '/usr/local/bin/':

claude mcp add gitlab-mcp -s user -- /usr/local/bin/gitlab-mcp

一旦添加到Claude Code,您就可以通过自然语言提示来调用GitLab工具。例如:

  • “列出'my-org/my-project'项目中所有已打开的议题。”
  • “在'my-org/my-project'中创建一个名为‘修复登录bug’的新议题,描述为‘用户无法登录’。”
  • “关闭'my-org/my-project'项目中的议题'#123'。”
  • “为'my-org/my-project'项目从'feature-branch'分支创建到'main'分支的合并请求,标题为‘实现新功能A’。”

信息

分类

开发者工具