项目简介

GitLab MCP Server 是一个基于 Model Context Protocol (MCP) 构建的后端应用,旨在为大型语言模型 (LLM) 客户端提供与 GitLab 交互的能力。它通过标准化的 MCP 协议,将 GitLab 的各项功能封装成易于 LLM 调用的工具,帮助 LLM 应用更好地理解和操作 GitLab 平台上的资源。

主要功能点

  • GitLab API 工具集: 内置多种预定义的工具,涵盖了 GitLab 常见的操作,例如:
    • 搜索用户和项目信息
    • 获取用户待办任务
    • 查询项目详情
    • 创建、更新和接受合并请求 (Merge Request)
    • 添加合并请求评论
    • 自定义调用 GitLab API
  • 灵活的工具参数: 每个工具都提供结构化的参数定义,方便 LLM 客户端准确调用,并支持字段过滤,减少数据传输量。
  • 易于集成: 遵循 MCP 协议标准,可以与任何支持 MCP 协议的 LLM 客户端集成,例如 Claude、Smithery 等。
  • 多种传输协议支持: 目前通过标准输入输出 (stdio) 传输协议与客户端通信。

安装步骤

  1. 安装依赖: 确保已安装 bun 包管理器,然后克隆仓库并在项目根目录下运行:

    bun install
  2. 构建项目: 运行构建命令编译 TypeScript 代码:

    bun run build
  3. 启动服务: 构建成功后,即可启动 MCP 服务器:

    bun run start

服务器配置

为了让 MCP 客户端(如 Claude 桌面客户端)连接到 GitLab MCP Server,您需要在客户端的配置文件中添加服务器配置信息。以下是 Claude 客户端的配置示例,其他 MCP 客户端的配置方式类似:

{
  "mcpServers": {
    "@zephyr-mcp/gitlab": {
      "command": "bun",
      "args": ["run", "start"],
      "serverName": "GitLab MCP Server"
    }
  }
}

参数说明:

  • 'serverName': 服务器名称,可以自定义,用于在客户端中标识该服务器,例如 "GitLab MCP Server"。
  • 'command': 启动服务器的命令,这里使用 'bun' 运行 'start' 脚本。
  • 'args': 传递给 'command' 的参数,'["run", "start"]' 表示执行 'package.json' 中定义的 'start' 脚本。

环境变量配置:

GitLab MCP Server 依赖以下环境变量进行 GitLab API 的访问配置,请在启动服务器前设置:

  • 'GITLAB_API_URL': 您的 GitLab 实例 API 地址,例如 'https://your-gitlab.com'。
  • 'GITLAB_TOKEN': 用于访问 GitLab API 的私有令牌 (Private Token)。您需要在 GitLab 中生成一个具有 API 权限的私有令牌。

您可以通过 '.env' 文件或系统环境变量来设置这些变量。例如,在 '.env' 文件中添加:

GITLAB_API_URL=https://your-gitlab-instance.com
GITLAB_TOKEN=your_personal_access_token

基本使用方法

  1. 启动 MCP 服务器: 按照上述步骤启动 GitLab MCP Server。

  2. 配置 MCP 客户端: 在您的 MCP 客户端中配置 GitLab MCP Server 的连接信息(如 Claude 客户端配置示例)。

  3. 在 LLM 中调用工具: 在支持 MCP 协议的 LLM 应用中,您可以使用自然语言指令来调用 GitLab MCP Server 提供的工具,例如:

    • "搜索用户名为 'john.doe' 的 GitLab 用户及其项目" (对应 'GitlabSearchUserProjectsTool' 工具)
    • "获取我今天创建的合并请求" (对应 'GitlabGetUserTasksTool' 工具)
    • "为项目 ID 为 '123' 的合并请求 '456' 添加评论 '代码已更新,请再次审核'" (对应 'GitlabCreateMRCommentTool' 工具)

    具体的工具使用方法和参数示例,请参考仓库中的 'USAGE.md' 文件。

信息

分类

开发者工具