cyphbt/gitlab-mcp-server
If you are the rightful owner of gitlab-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This is a GitLab Model Context Protocol (MCP) server that provides functionalities for managing GitLab projects.
GitLab MCP 服务器
这是一个 GitLab 的 Model Context Protocol (MCP) 服务器,提供了三个主要功能:
- 查询最新标签 - 获取项目的最新标签列表
- 创建标签 - 创建新的标签(支持描述信息)
- 创建合并请求 - 提交新的合并请求
功能特性
1. 自动检测项目信息 (gitlab_get_project_info
)
- 自动检测当前 Git 仓库的 GitLab 项目信息
- 显示项目名称、描述、可见性等基本信息
- 显示当前分支和 Git 配置信息
- 显示最近的提交历史
2. 查询最新标签 (gitlab_get_latest_tags
)
- 获取项目的最新标签列表
- 支持限制返回数量
- 按版本号排序(降序)
3. 创建标签 (gitlab_create_tag
)
- 创建新的 Git 标签
- 支持标签消息和发布描述
- 可以指向任意分支或提交
4. 创建合并请求 (gitlab_create_merge_request
)
- 创建新的合并请求
- 支持详细的描述信息
- 可配置是否删除源分支和压缩提交
5. 智能自动检测
- 零配置: 只需要设置 GitLab Token 或使用 SSH 模式
- 自动解析: 从 Git 远程仓库自动解析 GitLab URL 和项目路径
- 动态获取: 通过 API 自动获取项目 ID
- 实时状态: 自动获取当前分支和项目状态
6. 双模式支持
- Token 模式: 使用 GitLab API,功能完整
- SSH 模式: 使用 Git 命令和 GitLab CLI,无需 Token
安装和配置
方式 1: npm 安装(推荐)
全局安装
npm install -g @cyphbt/gitlab-mcp-server
本地安装
npm install @cyphbt/gitlab-mcp-server
方式 2: 从源码安装
# 克隆仓库
git clone https://github.com/yourusername/gitlab-mcp-server.git
cd gitlab-mcp-server
# 安装依赖
npm install
# 构建项目
npm run build
配置环境变量
Token 模式
复制 env.example
文件为 .env
并填写你的 GitLab Token:
cp env.example .env
编辑 .env
文件:
# GitLab 配置
GITLAB_TOKEN=your_gitlab_personal_access_token
SSH 模式
如果你选择 SSH 模式,无需设置 Token,但需要安装 GitLab CLI:
# 安装 GitLab CLI
./install-glab.sh
# 验证 SSH 连接
git ls-remote origin
注意: 这个工具会自动检测当前 Git 仓库的 GitLab 项目信息。
配置方式选择
方式 1: Token 模式(推荐)
- 登录你的 GitLab 账户
- 进入 Settings > Access Tokens
- 创建一个新的 Personal Access Token
- 确保勾选以下权限:
api
- 完整的 API 访问权限read_repository
- 读取仓库write_repository
- 写入仓库
方式 2: SSH 模式(无需 Token)
如果你已经有 SSH 密钥配置,可以选择 SSH 模式:
-
安装 GitLab CLI:
./install-glab.sh
-
验证 SSH 连接:
git ls-remote origin
-
不设置
GITLAB_TOKEN
环境变量,工具会自动使用 SSH 模式
4. 自动检测功能
这个 MCP 工具会自动检测:
- GitLab URL: 从 Git 远程仓库 URL 自动解析
- 项目 ID: 通过 GitLab API 自动获取(Token 模式)或使用项目路径(SSH 模式)
- 当前分支: 从 Git 仓库状态自动获取
- 项目信息: 包括项目名称、描述、可见性等
支持以下 Git 远程 URL 格式:
- HTTPS:
https://gitlab.com/group/project.git
- SSH:
git@gitlab.com:group/project.git
5. 构建项目
npm run build
使用方法
启动服务器
npm 安装后
# 全局安装
gitlab-mcp
# 本地安装
npx @cyphbt/gitlab-mcp-server
源码安装后
npm start
在 Cursor 中配置
- 打开 Cursor
- 进入 Settings > Extensions > Model Context Protocol
- 添加新的 MCP 服务器配置:
全局安装后
{
"mcpServers": {
"gitlab": {
"command": "gitlab-mcp",
"env": {
"GITLAB_TOKEN": "your_token"
}
}
}
}
本地安装后
{
"mcpServers": {
"gitlab": {
"command": "npx",
"args": ["@cyphbt/gitlab-mcp-server"],
"env": {
"GITLAB_TOKEN": "your_token"
}
}
}
}
源码安装后
{
"mcpServers": {
"gitlab": {
"command": "node",
"args": ["/path/to/your/gitlab-mcp-server/dist/index.js"],
"env": {
"GITLAB_TOKEN": "your_token"
}
}
}
}
注意: SSH 模式下无需设置 GITLAB_TOKEN
,其他信息会自动从当前 Git 仓库检测。
在其他 MCP 客户端中使用
根据你的 MCP 客户端,配置方式可能略有不同,但基本结构是相同的:
{
"command": "gitlab-mcp",
"env": {
"GITLAB_TOKEN": "your_token"
}
}
API 使用示例
查询最新标签
{
"name": "gitlab_get_latest_tags",
"arguments": {
"limit": 5
}
}
创建标签
{
"name": "gitlab_create_tag",
"arguments": {
"tag_name": "v1.2.0",
"ref": "main",
"message": "Release version 1.2.0",
"release_description": "This release includes bug fixes and performance improvements."
}
}
创建合并请求
{
"name": "gitlab_create_merge_request",
"arguments": {
"source_branch": "feature/new-feature",
"target_branch": "main",
"title": "Add new feature",
"description": "This merge request adds a new feature that improves user experience.",
"remove_source_branch": true,
"squash": false
}
}
开发
开发模式运行
npm run dev
构建项目
npm run build
错误处理
服务器会处理各种错误情况:
- 配置错误(缺少必要的环境变量)
- GitLab API 错误
- 网络连接错误
- 权限错误
所有错误都会以用户友好的中文消息返回。
安全注意事项
- Token 安全: 确保你的 GitLab Personal Access Token 安全存储,不要提交到版本控制系统
- 权限最小化: 只给 Token 必要的权限
- 环境变量: 使用
.env
文件存储敏感信息,确保该文件被.gitignore
忽略
故障排除
常见问题
-
"未设置 GITLAB_TOKEN 环境变量"
- 确保在
.env
文件中设置了GITLAB_TOKEN
- 确保在
-
"未设置 GITLAB_PROJECT_ID 环境变量"
- 确保在
.env
文件中设置了正确的项目 ID
- 确保在
-
"获取标签失败: 401 Unauthorized"
- 检查你的 GitLab Token 是否有效
- 确保 Token 有足够的权限
-
"获取标签失败: 404 Not Found"
- 检查项目 ID 是否正确
- 确保你有访问该项目的权限
许可证
MIT License # gitlab-mcp-server