Better GitLab MCP Server 使用说明
项目简介
Better GitLab MCP Server 是一个改进的 GitLab MCP 服务器实现,它扩展了原始 GitLab MCP 服务器的功能,并修复了一些已知的问题。该服务器允许 LLM 客户端通过 Model Context Protocol (MCP) 标准协议与 GitLab 进行交互,从而实现代码仓库管理、问题跟踪、合并请求处理等多种 DevOps 功能。
主要功能点
- 代码仓库操作: 支持创建、更新文件,推送文件到仓库,获取文件内容,搜索仓库,fork 仓库,创建分支等功能。
- 问题 (Issue) 管理: 支持创建 GitLab Issues。
- 合并请求 (Merge Request) 管理: 支持创建、更新、获取合并请求及其差异,以及为合并请求或 issue 添加评论。
- 项目管理: 支持创建 GitLab 项目。
所有功能均通过工具 (Tools) 的形式暴露给 MCP 客户端,客户端可以通过调用这些工具来完成与 GitLab 的交互。
安装步骤
- 安装 Node.js 和 npm: 确保你的系统已安装 Node.js 和 npm。你可以从 nodejs.org 下载并安装。
- 全局安装 npm 包: 打开终端或命令提示符,运行以下命令全局安装 '@zereight/mcp-gitlab' 包:
npm install -g @zereight/mcp-gitlab
服务器配置
MCP 服务器是为 MCP 客户端设计的,客户端需要配置服务器的启动命令才能连接。以下是使用不同 MCP 客户端时需要配置的 JSON 格式服务器信息示例。
对于 Claude App, Cline, Roo Code:
{ "mcpServers": { "GitLab communication server": { "command": "npx", "args": ["-y", "@zereight/mcp-gitlab"], "env": { "GITLAB_PERSONAL_ACCESS_TOKEN": "你的 GitLab 私人访问令牌", "GITLAB_API_URL": "你的 GitLab API URL (默认为 https://gitlab.com/api/v4)" } } } }
配置参数说明:
- '"GitLab communication server"': 服务器名称,可以自定义。
- '"command": "npx"': 启动服务器的命令,这里使用 'npx' 来运行 npm 包。
- '"args": ["-y", "@zereight/mcp-gitlab"]': 'npx' 命令的参数,'-y' 表示自动确认安装包,'@zereight/mcp-gitlab' 是要运行的 npm 包名。
- '"env"': 环境变量配置。
- '"GITLAB_PERSONAL_ACCESS_TOKEN"': 必须配置。你的 GitLab 私人访问令牌,用于服务器访问 GitLab API。你需要在 GitLab 中生成一个具有 'api' 权限的私人访问令牌。
- '"GITLAB_API_URL"': 可选配置。你的 GitLab API 的 URL。如果你的 GitLab 实例不是在 'gitlab.com' 上,你需要修改此项。默认为 'https://gitlab.com/api/v4'。
对于 Cursor:
在 Cursor 中,你可以直接设置环境变量并在终端中运行服务器:
env GITLAB_PERSONAL_ACCESS_TOKEN=你的GitLab私人访问令牌 GITLAB_API_URL=你的GitLab API URL npx @zereight/mcp-gitlab
环境变量说明:
- 'GITLAB_PERSONAL_ACCESS_TOKEN': 你的 GitLab 私人访问令牌,必须设置。
- 'GITLAB_API_URL': 你的 GitLab API URL,可选设置,默认为 'https://gitlab.com/api/v4'。
基本使用方法
- 启动服务器: 根据你使用的 MCP 客户端配置并启动服务器。对于 Claude App 等客户端,服务器会在客户端连接时自动启动。对于 Cursor,你需要在终端手动运行启动命令。
- 在 MCP 客户端中使用: 在支持 MCP 协议的 LLM 客户端(如 Claude, Cursor, Roo Code 等)中,配置并连接到你启动的 GitLab MCP 服务器。连接成功后,你就可以在客户端中通过自然语言指令调用 GitLab 的各种功能,例如:
- "创建一个名为 'bug fix' 的 issue,标题为 '修复登录错误',描述为 '用户无法正常登录系统'。"
- "在项目 'my-project' 的 'main' 分支下创建一个名为 'new_feature.py' 的文件,内容为 'print("Hello, world!")'。"
- "搜索名为 'test' 的 GitLab 项目。"
客户端会根据你的指令,调用服务器提供的工具,并返回 GitLab 的操作结果。
信息
分类
开发者工具