remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Integrations
Allows interaction with GitLab repositories including creating/updating files, pushing multiple files, searching repositories, creating repositories, getting file contents, creating issues, creating merge requests, forking repositories, creating branches, getting merge request details and diffs, updating merge requests, and creating notes/comments.
更好的 GitLab MCP 服务器
@zereight/mcp-gitlab
GitLab MCP(模型上下文协议)服务器。包含对原始 GitLab MCP 服务器的错误修复和改进。
用法
与 Claude App、Cline、Roo Code、Cursor 一起使用
当使用 Claude App 时,您需要直接设置您的 API 密钥和 URL。
Copy
环境变量
GITLAB_PERSONAL_ACCESS_TOKEN
:您的 GitLab 个人访问令牌。GITLAB_API_URL
:您的 GitLab API URL。(默认值:https://gitlab.com/api/v4
)GITLAB_READ_ONLY_MODE
:设置为“true”时,限制服务器仅公开只读操作。适用于增强安全性或不需要写入权限的情况。也适用于与 Cursor 配合使用,并限制其 40 个工具的使用数量。
工具🛠️
create_or_update_file
- 在 GitLab 项目中创建或更新单个文件。📝
- 输入:
project_id
(字符串):项目 ID 或命名空间/project_pathfile_path
(字符串):创建/更新文件的路径content
(字符串):文件内容commit_message
(字符串):提交消息branch
(字符串):创建/更新文件的分支previous_path
(可选字符串):重命名文件时的先前文件路径
- 返回:文件内容和提交详细信息
push_files
- 在一次提交中推送多个文件。📤
- 输入:
project_id
(字符串):项目 ID 或命名空间/project_pathbranch
(字符串):要推送到的分支files
(数组):要推送的文件数组,每个文件都具有file_path
和content
属性commit_message
(字符串):提交消息
- 返回:更新的分支参考
search_repositories
- 搜索 GitLab 项目。🔍
- 输入:
search
(字符串):搜索查询page
(可选数字):页码(默认值:1)per_page
(可选数字):每页结果数(默认值:20,最大值:100)
- 返回:项目搜索结果
create_repository
- 创建一个新的 GitLab 项目。➕
- 输入:
name
(字符串):项目名称description
(可选字符串):项目描述visibility
(可选字符串):项目可见性级别(公共、私有、内部)initialize_with_readme
(可选布尔值): 使用 README 初始化
- 返回:创建项目的详细信息
get_file_contents
- 获取文件或目录的内容。📂
- 输入:
project_id
(字符串):项目 ID 或命名空间/project_pathfile_path
(字符串):文件/目录的路径ref
(可选字符串):分支、标签或提交 SHA(默认值:默认分支)
- 返回:文件/目录内容
create_issue
- 创建新问题。🐛
- 输入:
project_id
(字符串):项目 ID 或命名空间/project_pathtitle
(字符串):问题标题description
(字符串):问题描述assignee_ids
ID 数组milestone_id
(可选数字):里程碑 IDlabels
(可选字符串[]):标签数组
- 返回:创建问题的详细信息
create_merge_request
- 创建一个新的合并请求。🚀
- 输入:
project_id
(字符串):项目 ID 或命名空间/project_pathtitle
(字符串):合并请求标题description
(字符串):合并请求描述source_branch
(字符串):有变更的分支target_branch
(字符串):要合并的分支allow_collaboration
(可选布尔值):允许协作者将提交推送到源分支draft
(可选布尔值):创建为合并请求草稿
- 返回:创建的合并请求的详细信息
fork_repository
- 派生一个项目。🍴
- 输入:
project_id
(字符串):要分叉的项目 ID 或 namespace/project_pathnamespace
(可选字符串):要分叉的命名空间(默认值:用户命名空间)
- 返回:分叉项目的详细信息
create_branch
- 创建一个新分支。🌿
- 输入:
project_id
(字符串):项目 ID 或命名空间/project_pathname
(字符串):新分支名称ref
(可选字符串):创建分支的 Ref(分支、标签、提交 SHA,默认值:默认分支)
- 返回:创建的分支引用
get_merge_request
- 获取合并请求的详细信息。ℹ️
- 输入:
project_id
(字符串):项目 ID 或命名空间/project_pathmerge_request_iid
(number): 合并请求 IID
- 返回:合并请求详细信息
get_merge_request_diffs
- 获取合并请求的更改(差异)。diff
- 输入:
project_id
(字符串):项目 ID 或命名空间/project_pathmerge_request_iid
(number): 合并请求 IIDview
(可选字符串):差异视图类型('内联'或'并行')
- 返回:合并请求差异信息数组
update_merge_request
- 更新合并请求。🔄
- 输入:
project_id
(字符串):项目 ID 或命名空间/project_pathmerge_request_iid
(number): 合并请求 IIDtitle
(可选字符串):新标题description
(字符串):新描述target_branch
(可选字符串):新的目标分支state_event
(可选字符串):合并请求状态改变事件('close','reopen')remove_source_branch
(可选布尔值):合并后删除源分支allow_collaboration
(可选布尔值):允许协作者将提交推送到源分支
- 返回:更新的合并请求详细信息
create_note
- 为问题或合并请求创建新注释(评论)。💬
- 输入:
project_id
(字符串):项目 ID 或命名空间/project_pathnoteable_type
(字符串): 值得注意的类型(“问题”或“合并请求”)noteable_iid
(数字):问题或合并请求的 IIDbody
(字符串):笔记内容
- 返回:创建的注释的详细信息
list_projects
- 列出具有丰富过滤选项的可访问项目📊
- 输入:
- 搜索/过滤:
search
owned
membership
archived
visibility
- 特征过滤:
with_issues_enabled
with_merge_requests_enabled
- 排序:
order_by
sort
- 访问控制:
min_access_level
- 分页:
page
per_page
simple
- 搜索/过滤:
- 返回:项目数组
list_labels
- 使用过滤选项列出项目的所有标签🏷️
- 输入:
project_id
(字符串):项目ID或路径with_counts
(可选):包括问题和合并请求计数include_ancestor_groups
(可选):包括祖先组search
(可选):按关键字过滤标签
- 返回:标签数组
get_label
- 从项目中获取单个标签
- 输入:
project_id
(字符串):项目ID或路径label_id
(数字/字符串):标签 ID 或名称include_ancestor_groups
(可选):包括祖先组
- 返回:标签详细信息
create_label
- 在对象中创建新标签🏷️➕
- 输入:
project_id
(字符串):项目ID或路径name
(字符串):标签名称color
(字符串):十六进制格式的颜色(例如“#FF0000”)description
(可选):标签描述priority
(可选):标签优先级
- 返回:创建的标签详细信息
update_label
- 更新项目中的现有标签🏷️✏️
- 输入:
project_id
(字符串):项目ID或路径label_id
(数字/字符串):标签 ID 或名称new_name
(可选):新标签名称color
(可选):十六进制格式的新颜色description
(可选):新的描述priority
(可选):新的优先级
- 返回:更新的标签详细信息
delete_label
- 从项目中删除标签🏷️❌
- 输入:
project_id
(字符串):项目ID或路径label_id
(数字/字符串):标签 ID 或名称
- 返回:成功消息
list_group_projects
- 列出 GitLab 组中的所有项目。📂
- 输入:
group_id
(字符串):项目 ID 或命名空间/项目路径- 过滤选项:
include_subgroups
(可选布尔值):包含来自子组的项目search
(可选字符串):用于过滤项目的搜索词archived
(可选布尔值):筛选已存档的项目visibility
(可选字符串):按项目可见性(公共/内部/私人)进行过滤with_programming_language
(可选字符串):按编程语言过滤starred
(可选布尔值):按已加星标的项目进行过滤
- 特征过滤:
with_issues_enabled
(可选布尔值):过滤启用了问题功能的项目with_merge_requests_enabled
(可选布尔值):过滤启用了合并请求功能的项目min_access_level
(可选数字):按最低访问级别过滤
- 分页:
page
(可选数字):页码per_page
(可选数字):每页结果数
- 排序:
order_by
(可选字符串):排序依据的字段sort
(可选字符串):排序方向(升序/降序)
- 附加数据:
statistics
(可选布尔值):包括项目统计数据with_custom_attributes
(可选布尔值):包含自定义属性with_security_reports
(可选布尔值):包含安全报告
- 返回:项目列表
环境变量配置
在运行服务器之前,需要设置以下环境变量:
Copy
执照
MIT 许可证
You must be authenticated.
Tools
GitLab MCP