478a926676be7c82ab546914d5a655f50ae0b5bb
GitLab MCP 服务器
这是一个 Model Context Protocol (MCP) 服务器,专门用于与 GitLab 交互,主要功能包括创建和合并 Merge Request。
功能
create_merge_request: 在指定的 GitLab 项目中创建一个新的 Merge Requestmerge_merge_request: 合并指定的 GitLab Merge Requestget_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)
安装和运行
- 首先,确保你已经安装了 Node.js 和 npm。
- 安装依赖:
npm install - 设置环境变量:
export GITLAB_ACCESS_TOKEN="your_gitlab_access_token" export GITLAB_API_BASE_URL="https://your-gitlab-instance.com/api/v4" # 可选,仅当使用自托管的 GitLab 时 - 运行 GitLab MCP 服务器:
npm run gitlab
架构
该项目使用一个封装的 gitlabApiClient 对象来处理所有与 GitLab API 的交互,这使得代码更模块化和可维护。API 客户端包含以下方法:
createMergeRequest: 创建 Merge RequestmergeMergeRequest: 合并 Merge RequestgetMergeRequest: 获取 Merge Request 详情closeMergeRequest: 关闭 Merge Request
工具详情
create_merge_request
创建一个新的 Merge Request。
参数:
projectId: GitLab 项目的 ID 或 URL 编码的路径sourceBranch: 源分支名称targetBranch: 目标分支名称title: Merge Request 的标题description: (可选) Merge Request 的描述assigneeId: (可选) 负责人 IDreviewerIds: (可选) 审阅者 ID 数组
merge_merge_request
合并一个 Merge Request。
参数:
projectId: GitLab 项目的 ID 或 URL 编码的路径mrIid: Merge Request 的内部 IDmergeCommitMessage: (可选) 合并提交的消息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 服务器
{
"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"
}
}
}
}
Languages
JavaScript
100%