Gitlab 服务 MCP 接入
通过 MCP 协议提供 Gitlab 服务调用,支持项目仓库管理、文件操作等功能。
环境变量
- 需要将 GITLAB_PERSONAL_ACCESS_TOKEN 配置为您在 Gitlab 上创建的 Personal access token
使用说明
🗺️ 功能清单
工具标识 | 功能描述 | 核心参数 |
---|---|---|
create_or_update_file | 文件创建/更新 | project_id, file_path, content, branch |
push_files | 批量推送文件 | project_id, branch, files |
search_repositories | 仓库搜索 | search, page |
create_repository | 创建仓库 | name, visibility |
get_file_contents | 获取文件或目录的内容 | project_id, file_path, ref |
create_issue | 创建issue | project_id, title, description |
create_merge_request | 创建合并请求 | project_id, source_branch, target_branch |
fork_repository | 分叉仓库 | project_id, namespace |
create_branch | 创建分支 | project_id, branch, ref |
仓库地址
https://github.com/modelcontextprotocol/servers/tree/main/src/gitlab
使用方式
参数说明
1. create_or_update_file
文件创建/更新
参数名称 | 类型 | 是否可选 | 功能描述 |
---|---|---|---|
project_id | string | 必填 | 项目 ID 或 URL 编码路径 |
file_path | string | 必填 | 文件存储路径(需包含扩展名) |
content | string | 必填 | 文件内容 |
commit_message | string | 必填 | 提交描述 |
branch | string | 必填 | 创建/更新文件的分支 |
previous_path | string | 可选 | 要移动/重命名的文件路径 |
返回: 文件内容和提交详情
2. push_files
批量推送文件
参数名称 | 类型 | 是否可选 | 功能描述 |
---|---|---|---|
project_id | string | 必填 | 项目 ID 或 URL 编码路径 |
branch | string | 必填 | 要推送到的分支 |
files | array | 必填 | 要推送的文件,每个文件包含 file_path 和 content |
commit_message | string | 必填 | 提交信息 |
返回: 更新的分支引用
3. search_repositories
仓库搜索
参数名称 | 类型 | 是否可选 | 功能描述 |
---|---|---|---|
search | string | 必填 | 搜索关键词 |
page | number | 可选 | 分页页码 |
per_page | number | 可选 | 每页结果数(默认20) |
返回: 仓库搜索结果
4. create_repository
创建仓库
参数名称 | 类型 | 是否可选 | 功能描述 |
---|---|---|---|
name | string | 必填 | 仓库名称 |
description | string | 可选 | 项目描述 |
visibility | string | 可选 | 可见性级别:private /internal /public (默认private) |
initialize_with_readme | boolean | 可选 | 是否自动生成README.md |
返回: 创建的项目详细信息
5. get_file_contents
获取文件或目录的内容
参数名称 | 类型 | 是否可选 | 功能描述 |
---|---|---|---|
project_id | string | 必填 | 项目 ID 或 URL 编码路径 |
file_path | string | 必填 | 文件/目录路径 |
ref | string | 可选 | 要获取内容的分支/标签/提交 |
返回: 文件/目录内容
6. create_issue
创建issue
参数名称 | 类型 | 是否可选 | 功能描述 |
---|---|---|---|
project_id | string | 必填 | 项目 ID 或 URL 编码路径 |
title | string | 必填 | issue 标题 |
description | string | 可选 | issue 描述 |
assignee_ids | number[] | 可选 | 被指派人ID数组 |
labels | string[] | 可选 | 标签数组 |
milestone_id | number | 可选 | 里程碑ID |
返回: 创建的 issue 详情
7. create_merge_request
创建合并请求
参数名称 | 类型 | 是否可选 | 功能描述 |
---|---|---|---|
project_id | string | 必填 | 项目 ID 或 URL 编码路径 |
source_branch | string | 必填 | 源分支名称 |
target_branch | string | 必填 | 要合并到的分支 |
draft | boolean | 可选 | 作为草稿合并请求创建 |
allow_collaboration | boolean | 可选 | 允许来自上游成员的提交 |
title | string | 必填 | MR 标题 |
description | string | 可选 | MR 描述 |
返回: 创建的合并请求详情
8. fork_repository
分叉仓库
参数名称 | 类型 | 是否可选 | 功能描述 |
---|---|---|---|
project_id | string | 必填 | 项目 ID 或 URL 编码路径 |
namespace | string | 可选 | 要fork到的目标命名空间 |
返回: 分叉项目的详细信息
9. create_branch
创建分支
参数名称 | 类型 | 是否可选 | 功能描述 |
---|---|---|---|
project_id | string | 必填 | 项目 ID 或 URL 编码路径 |
branch | string | 必填 | 新分支名称 |
ref | string | 可选 | 源分支 |
返回: 创建的分支引用