使用说明
GitLab MCP服务器
[!注意] 此文档可在 简体中文.
基于模型上下文协议(MCP)构建的GitLab API服务器。该服务器提供了一组工具,允许AI模型与GitLab实例交互,重点是分支管理和合并请求(MR)操作。
项目信息
- 包裹:@jesbrian/gitlab mcp服务器
- 版本: 0.2.4
- 类型:CommonJS
- 主入口:index.js
- 可执行:gitlab mcp服务器
- 配置模块:config/config.js
项目结构
gitlab-mcp-server/
├── index.js # Main entry file
├── config/ # Config directory
│ └── Config.js # Centralized config file
├── lib/ # Library directory
│ └── GitLabClient.js # GitLab API client
├── package.json
└── README.md
模块化设计
- GitLabClient.js:封装GitLab API调用的客户端类(根目录)
- config/config.js:集中管理所有配置项(GitLab连接、客户端选项、MCP服务器配置、工具定义)
- index.js:MCP服务器主逻辑,处理工具调用和请求处理
特性
- 用户管理:获取当前GitLab用户信息。
- 项目管理:搜索项目,获取项目ID映射,并检索项目详细信息。
- 分行管理:
- 列出存储库分支。
- 创建新分支(支持指定源分支/标记)。
- 删除分支。
- 合并请求(MR)管理:
- 创建MR(支持公共存储库的标准创建和快速创建)。
- 获取MR状态(包括合并状态、冲突检测)。
- 执行合并操作。
- 关闭MR。
- 轮询并等待MR可合并(支持超时设置)。
配置
所有配置项都集中在 lib/config/Config.js,可通过环境变量进行自定义:
配置以下环境变量:
| 变量 | 描述 | 必填 | 默认 |
|---|---|---|---|
GITLAB_URL |
GitLab实例URL(例如。, https://gitlab.example.com) |
是 | - |
GITLAB_PRIVATE_TOKEN |
GitLab个人访问令牌(私有令牌) | 是 | - |
TIMEOUT |
请求超时(毫秒) | 否 | 10000 |
WAIT_INTERVAL |
轮询间隔(毫秒) | 否 | 2000 |
用法
作为MCP服务器
添加到Claude Desktop配置文件:
选项1:使用npx(推荐)
{
"mcpServers": {
"gitlab": {
"command": "npx",
"args": ["@jesbrian/gitlab-mcp-server"],
"env": {
"GITLAB_URL": "https://your-gitlab-url.com",
"GITLAB_PRIVATE_TOKEN": "your-private-token"
}
}
}
}
选项2:本地路径
首先在本地启动项目,然后配置Claude代码:
# After cloning the project, enter the directory and install dependencies
cd gitlab-mcp-server
npm install
# Start the service locally (choose one method)
npm start # Option 1: Use npm scripts
node index.js # Option 2: Run directly
gitlab-mcp-server # Option 3: Install globally and use command
添加到克劳德代码MCP配置:
{
"mcpServers": {
"gitlab": {
"command": "node",
"args": ["/path/to/gitlab-mcp-server/index.js"],
"env": {
"GITLAB_URL": "https://your-gitlab-url.com",
"GITLAB_PRIVATE_TOKEN": "your-private-token"
}
}
}
}
可用工具
用户和项目管理
get_current_user:获取当前GitLab用户信息。get_project_ids:按名称搜索项目并获取项目ID映射(返回不同命名空间中的ID)。get_project:获取指定项目的详细信息。
转移操作
get_repository_branches:列出项目的分支。create_branch:创建新分支(可以指定源分支/标记,默认为master)。delete_branch:删除分支。
合并请求(MR)
create_merge_request:创建合并请求(支持自定义标题和描述)。create_merge_request_to_public:自动检测个人和公共存储库的快速工具,从个人分支创建MR到公共存储库。merge_branch:执行合并操作。get_merge_request_status:获取当前MR状态(包括合并状态、冲突等)。close_merge_request:关闭合并请求。wait_for_mergeable_status:轮询并等待MR可合并(支持超时,默认5分钟)。
