Files
gitlab-mcp-server/README.md
T

87 lines
2.6 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 服务器,你需要在支持 Model Context Protocol 的客户端中运行它。服务器将通过标准输入/输出与客户端通信。