Files
gitlab-mcp-server/README.md
T
zhangguoyun b8401520df docs: 更新项目名称并添加MCP服务器配置说明
更新package.json中的项目名称从'my-nodejs-mcp-server'改为'gitlab-mcp-server'以更准确反映项目用途
在README.md中添加MCP服务器的配置示例,包括运行命令、参数和环境变量设置
2025-11-14 18:30:59 +08:00

103 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# GitLab MCP 服务器
这是一个 Model Context Protocol (MCP) 服务器,专门用于与 GitLab 交互,主要功能包括创建和合并 Merge Request。
## 功能
- `create_merge_request`: 在指定的 GitLab 项目中创建一个新的 Merge Request
- `merge_merge_request`: 合并指定的 GitLab Merge Request
- `get_merge_request`: 获取指定 Merge Request 的详细信息
- `close_merge_request`: 关闭指定的 GitLab Merge Request 而不合并
## 环境变量
- `GITLAB_ACCESS_TOKEN`: 用于访问 GitLab API 的访问令牌
- `GITLAB_API_BASE_URL`: GitLab API 的基础 URL(默认为 `https://gitlab.com/api/v4`)
## 安装和运行
1. 首先,确保你已经安装了 Node.js 和 npm。
2. 安装依赖:
```bash
npm install
```
3. 设置环境变量:
```bash
export GITLAB_ACCESS_TOKEN="your_gitlab_access_token"
export GITLAB_API_BASE_URL="https://your-gitlab-instance.com/api/v4" # 可选,仅当使用自托管的 GitLab 时
```
4. 运行 GitLab MCP 服务器:
```bash
npm run gitlab
```
## 架构
该项目使用一个封装的 `gitlabApiClient` 对象来处理所有与 GitLab API 的交互,这使得代码更模块化和可维护。API 客户端包含以下方法:
- `createMergeRequest`: 创建 Merge Request
- `mergeMergeRequest`: 合并 Merge Request
- `getMergeRequest`: 获取 Merge Request 详情
- `closeMergeRequest`: 关闭 Merge Request
## 工具详情
### create_merge_request
创建一个新的 Merge Request。
参数:
- `projectId`: GitLab 项目的 ID 或 URL 编码的路径
- `sourceBranch`: 源分支名称
- `targetBranch`: 目标分支名称
- `title`: Merge Request 的标题
- `description`: (可选) Merge Request 的描述
- `assigneeId`: (可选) 负责人 ID
- `reviewerIds`: (可选) 审阅者 ID 数组
### merge_merge_request
合并一个 Merge Request。
参数:
- `projectId`: GitLab 项目的 ID 或 URL 编码的路径
- `mrIid`: Merge Request 的内部 ID
- `mergeCommitMessage`: (可选) 合并提交的消息
- `shouldRemoveSourceBranch`: (可选) 是否在合并后删除源分支
- `mergeWhenPipelineSucceeds`: (可选) 是否在 CI 管道成功后合并
### get_merge_request
获取 Merge Request 的详细信息。
参数:
- `projectId`: GitLab 项目的 ID 或 URL 编码的路径
- `mrIid`: Merge Request 的内部 ID
### close_merge_request
关闭一个 Merge Request 而不合并。
参数:
- `projectId`: GitLab 项目的 ID 或 URL 编码的路径
- `mrIid`: Merge Request 的内部 ID
## 配置 MCP 服务器
``` json
{
"mcpServers": {
"gitlab-mcp-server": {
"command": "node",
"args": [
"/your/code/path/index-gitlab.js"
],
"env": {
"GITLAB_API_BASE_URL": "https://git.ifengqun.com/api/v4",
"GITLAB_ACCESS_TOKEN": "your_gitlab_token"
}
}
}
}
```