← 返回目录
G

GitLab MCP Server

社区
面向 AI 客户端的综合 GitLab MCP 服务器。
分类
开发工具 第 121 / 438
Stars
★ 2.0k 非常热门
传输方式
stdio(本地进程) · SSE · Streamable HTTP
运行环境
Node.js · Docker · 预编译二进制 · 远程托管(无需本地环境)
凭据
需要 API Key / 凭据
许可证
MIT
最近提交
工具数
100
60FMRS · C

来源显示这是一个由 zereight 维护的非官方 GitLab MCP 服务器,版本 2.1.43,采用 MIT 许可证,提供广泛的 GitLab 管理、协作、代码和 CI/CD 工具。使用前应根据实际任务限制令牌范围和工具权限,并为远程部署配置适当的 HTTP 认证与安全设置。

最强项 · 文档质量 16/20 最弱项 · 可靠性 9/20

可靠性
9/20
安全与权限
11/20
维护活跃度
11/20
文档质量
16/20
安装易用性
13/20
查看各项评分依据
可靠性 9/20
清单提供了明确的 npm 包、版本、stdio 传输和必需认证变量;README 还描述了测试命令、错误控制、工具筛选及多种会话机制。但本次仅有清单和 README,未提供可核验的 CI 工作流、测试文件或实际工具实现;同时 README 声称支持 216 个工具,而清单本身没有工具声明,因此无法确认初始化、工具列表和各工具行为的一致性。
安全与权限 11/20
凭证被标记为 secret,并提供只读模式、权限模式、项目 ID 限制、工具允许/拒绝列表、会话隔离、超时、速率限制、主机检查和自定义 CA 等控制。扣分原因是默认权限为 full,工具包含大量创建、修改、删除、变量管理、流水线操作和 GraphQL 执行能力;材料没有明确证明危险操作必须在执行前获得确认,且远程授权、动态 API URL 和 TLS 放宽选项仍需谨慎部署。未发现足以触发红线的恶意行为、凭证窃取或默认远程命令执行证据。
维护活跃度 11/20
项目未归档,声明 MIT 许可证,并提供版本化 npm 包 2.1.43、GitHub 仓库和文档入口,说明存在发布路径。扣分原因是材料没有提交历史、发布频率、依赖更新、维护者响应、漏洞披露或安全响应渠道,因此只能确认基本维护信号,不能证明持续、成熟的维护流程。
文档质量 16/20
README 覆盖安装、PAT/OAuth/远程授权、stdio/SSE/Streamable HTTP、客户端配置、环境变量、权限模式、工具筛选、会话、速率限制、TLS、回调代理、故障排查和大量工具说明,且披露了若干限制。扣分原因是托管文档内容未提供,部分能力和限制只能依据 README 叙述,成本、GitLab API 配额及逐工具错误语义等信息不完整。
安装易用性 13/20
提供 npm、Homebrew 和 Docker 路径,并包含多个主流客户端配置示例、stdio 与远程传输示例以及多种认证方式,基本可以据此完成连接。扣分原因是远程 OAuth 和多用户部署所需变量较多,客户端兼容性和代理配置较复杂;本次没有可核验的实际安装或连接执行证据。

静态评测 · 未实际运行收录于 2026-07-29

查看 FMRS 评分方法 →

选型与风险

能访问什么读取本地文件写入 / 删除本地文件访问网络修改第三方账户数据

适合谁

  • 需要让 AI 客户端操作 GitLab 项目管理和代码协作的团队。
  • 需要同时使用 GitLab.com 和自托管 GitLab 的用户。
  • 需要细粒度工具集、单工具筛选或只读模式的部署。
  • 需要本地 stdio 或远程 HTTP MCP 接入的开发者。

不适合谁

  • 不使用 GitLab 的项目或不需要 GitLab API 操作的用户。
  • 只需要静态代码阅读、且不希望授予 GitLab 凭证的场景。
  • 需要 SSE 与 REMOTE_AUTHORIZATION 同时使用的部署。
  • 无法安全管理个人访问令牌、OAuth 凭证或远程请求头的环境。

所需权限

  • 必须提供 GITLAB_PERSONAL_ACCESS_TOKEN,除非使用其他受支持的认证方式。
  • 令牌应具备所用工具需要的 GitLab 范围,例如 api 或 read_api。
  • 写入、删除、流水线操作和项目管理工具需要相应的 GitLab 权限。
  • 可使用 GITLAB_READ_ONLY_MODE 仅暴露只读工具。
  • 可通过 GITLAB_ALLOWED_PROJECT_IDS、GITLAB_TOOLSETS、GITLAB_TOOLS 和 GITLAB_DENIED_TOOLS_REGEX 限制访问。
  • Wiki 工具需要启用 USE_GITLAB_WIKI 或相应工具集。

风险与副作用

  • 启用 api 范围或写入工具可能允许创建、修改、合并和删除 GitLab 资源。
  • 个人访问令牌、作业令牌、Cookie 和 OAuth 令牌属于敏感凭证,应避免出现在日志或配置共享中。
  • NODE_TLS_REJECT_UNAUTHORIZED=0 会降低 TLS 证书校验安全性,仅应在有意连接无效或自签名证书时使用。
  • 远程 HTTP 部署需要正确配置认证、会话、来源、主机和代理信任设置。
  • download_job_artifacts 和其他下载工具可能将内容保存到本地路径。

安装接入

准备工作

运行环境:Node.js · Docker · 预编译二进制 · 远程托管(无需本地环境)

GITLAB_PERSONAL_ACCESS_TOKEN 必填密钥 GitLab 个人访问令牌,在 GitLab 用户设置 → Access Tokens 中创建,需要 api 或 read_api 等作用域。
GITLAB_JOB_TOKEN 可选密钥 可选的 GitLab CI job token,在 GitLab CI 流水线内运行时替代 PAT。
SSE_AUTH_TOKEN 可选密钥 SSE 传输的 MCP 客户端认证令牌。
其他可选配置项(25 个)
GITLAB_API_URL 可选 GitLab API 基地址,GitLab.com 用 https://gitlab.com/api/v4,自托管实例用对应地址。
GITLAB_AUTH_COOKIE_PATH 可选 可选的 GitLab 认证 cookie 文件路径,用于 cookie 认证。
GITLAB_ALLOWED_PROJECT_IDS 可选 可选的逗号分隔项目 ID 列表,限制服务器只能访问这些项目。
GITLAB_READ_ONLY_MODE 可选 设为 true 时只暴露只读工具,阻止写操作。
USE_GITLAB_WIKI 可选 设为 true 启用 wiki 工具(旧版开关,推荐用 GITLAB_TOOLSETS=wiki)。
GITLAB_TOOLSETS 可选 可选的逗号分隔工具集列表,如 projects、issues、merge_requests、pipelines、wiki 等。
GITLAB_TOOLS 可选 可选的逗号分隔单个工具名,在工具集之外追加启用。
GITLAB_DENIED_TOOLS_REGEX 可选 可选正则表达式,隐藏匹配的工具。
GITLAB_TOOL_POLICY_APPROVE 可选 可选的逗号分隔工具名列表,执行前需显式批准。
GITLAB_TOOL_POLICY_HIDDEN 可选 可选的逗号分隔工具名列表,从 tools/list 中隐藏。
NODE_TLS_REJECT_UNAUTHORIZED 可选 仅在需要连接自签名证书的 GitLab 实例时设为 0。
GITLAB_CA_CERT_PATH 可选 可选的自定义 CA 证书文件路径,用于自托管 GitLab。
GITLAB_PERMISSION_MODE 可选 权限级别:readonly、modify(禁用删除)或 full。
GITLAB_USE_OAUTH 可选 设为 true 启用本地浏览器 OAuth2 登录。
GITLAB_OAUTH_CLIENT_ID 可选 本地 OAuth 使用的 GitLab OAuth 应用 Client ID。
GITLAB_OAUTH_REDIRECT_URI 可选 本地 OAuth 回调地址,例如 http://127.0.0.1:8888/callback。
GITLAB_MCP_OAUTH 可选 设为 true 时服务器作为 MCP OAuth 代理,供 Claude.ai 等远程客户端使用。
GITLAB_OAUTH_APP_ID 可选 预先在 GitLab 注册的 OAuth 应用 Client ID。
GITLAB_OAUTH_CALLBACK_PROXY 可选 设为 true 时使用服务器固定的 /callback 地址作为回调。
GITLAB_OAUTH_SCOPES 可选 逗号分隔的 OAuth 请求作用域,默认 api,read_api,read_user。
MCP_SERVER_URL 可选 MCP 服务器的公开 HTTPS 地址,用于 OAuth 和 Host 校验。
STREAMABLE_HTTP 可选 设为 true 启用 Streamable HTTP 传输。
REMOTE_AUTHORIZATION 可选 设为 true 启用多用户远程授权,每个调用方在 HTTP 头中自带 GitLab token。
GITLAB_DISABLE_VERSION_CHECK 可选 设为 true 关闭启动时的新版本提示。
SSE 可选 设为 true 启用 SSE 传输。

安装 npm 包 @zereight/mcp-gitlab,或使用仓库文档中的 Homebrew 方式安装。将 GITLAB_PERSONAL_ACCESS_TOKEN 设置为具有所需 GitLab 权限范围的令牌,并按需设置 GITLAB_API_URL。然后在 MCP 客户端中使用 zereight-mcp-gitlab 启动 stdio 服务器。远程部署可改用 SSE 或 Streamable HTTP;REMOTE_AUTHORIZATION 仅支持 Streamable HTTP。

.mcp.json
{"mcpServers":{"gitlab":{"command":"zereight-mcp-gitlab","args":[],"env":{"GITLAB_PERSONAL_ACCESS_TOKEN":"YOUR_GITLAB_TOKEN","GITLAB_API_URL":"https://gitlab.com/api/v4"}}}}

以 Claude Code 为例。其他客户端的配置文件位置或字段可能不同(如 VS Code 使用 servers 字段),可用下方配置生成器转换。

.vscode/mcp.json
{
  "servers": {
    "gitlab": {
      "command": "zereight-mcp-gitlab",
      "args": [],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "YOUR_GITLAB_TOKEN",
        "GITLAB_API_URL": "https://gitlab.com/api/v4"
      }
    }
  }
}

写入项目的 .vscode/mcp.json(VS Code 使用 servers 字段)。

Terminal
claude mcp add gitlab -e GITLAB_PERSONAL_ACCESS_TOKEN=YOUR_GITLAB_TOKEN -e GITLAB_API_URL=https://gitlab.com/api/v4 -- zereight-mcp-gitlab

在终端运行;先把 <…> 占位符换成你自己的值。

验证是否装好

在客户端工具列表中应能看到 gitlab 服务器的大量工具(如 get_project、list_issues、health_check);调用 health_check 可确认认证成功并返回 GitLab 实例版本。

常见排障

  1. 确认 zereight-mcp-gitlab 可被 MCP 客户端找到;必要时使用 which zereight-mcp-gitlab 获取绝对路径。
  2. 确认 GITLAB_PERSONAL_ACCESS_TOKEN、GITLAB_API_URL 和令牌范围正确。
  3. 自托管 GitLab 使用对应的 /api/v4 地址;自签名证书可配置 GITLAB_CA_CERT_PATH。
  4. SSE 使用 SSE=true;REMOTE_AUTHORIZATION 和 MCP OAuth 必须使用 STREAMABLE_HTTP=true。
  5. OAuth 回调错误时,区分本地 OAuth 的 GITLAB_OAUTH_REDIRECT_URI 与远程 OAuth 的 GITLAB_OAUTH_CALLBACK_PROXY。
  6. 工具缺失时检查 GITLAB_TOOLSETS、GITLAB_TOOLS、GITLAB_DENIED_TOOLS_REGEX、工具策略和 discover_tools。

试试这样问

连接成功后,可以直接对 AI 助手这样说:

  • 列出 gitlab-mcp 项目中所有开放的 merge request,并总结每个的变更文件。
  • 查看 issue #42 的详细内容,并用 create_issue_note 添加一条评论说已经开始处理。
  • 对比 main 和 feature/login 两个分支的差异,指出新增了哪些文件。
  • 列出这个项目最近的 pipelines,如果有失败的就重试。

工具能力 100

merge_merge_request 写入
合并 GitLab 项目中的合并请求。
approve_merge_request 写入
unapprove_merge_request 写入
get_merge_request_approval_state 只读
get_merge_request_conflicts 只读
list_merge_request_pipelines 只读
execute_graphql 写入
create_or_update_file 写入
在项目中创建或更新单个文件。
展开其余 92 个工具
search_repositories 只读
搜索 GitLab 项目。
create_repository 写入
create_group 写入
get_file_contents 只读
获取项目中的文件或目录内容。
push_files 写入
通过一次提交推送多个文件。
create_issue 写入
在 GitLab 项目中创建议题。
create_merge_request 写入
在 GitLab 项目中创建合并请求。
fork_repository 写入
create_branch 写入
get_branch 只读
list_branches 只读
delete_branch 破坏性
list_protected_branches 只读
get_protected_branch 只读
protect_branch 写入
unprotect_branch 写入
update_default_branch 写入
get_merge_request 只读
获取合并请求详情,包括部署、提交和审批摘要。
get_merge_request_diffs 只读
获取合并请求的变更差异。
list_merge_request_changed_files 只读
list_merge_request_diffs 只读
get_merge_request_file_diff 只读
获取合并请求一个或多个文件的差异。
list_merge_request_versions 只读
get_merge_request_version 只读
get_branch_diffs 只读
update_merge_request 写入
create_note 写入
create_merge_request_thread 写入
resolve_merge_request_thread 写入
mr_discussions 只读
delete_merge_request_discussion_note 破坏性
update_merge_request_discussion_note 写入
create_merge_request_discussion_note 写入
create_merge_request_note 写入
delete_merge_request_note 破坏性
get_merge_request_note 只读
get_merge_request_notes 只读
update_merge_request_note 写入
get_draft_note 只读
list_draft_notes 只读
create_draft_note 写入
update_draft_note 写入
delete_draft_note 破坏性
publish_draft_note 写入
bulk_publish_draft_notes 写入
list_merge_request_emoji_reactions 只读
list_merge_request_note_emoji_reactions 只读
create_merge_request_emoji_reaction 写入
delete_merge_request_emoji_reaction 破坏性
create_merge_request_note_emoji_reaction 写入
delete_merge_request_note_emoji_reaction 破坏性
update_issue_note 写入
create_issue_note 写入
list_issue_emoji_reactions 只读
list_issue_note_emoji_reactions 只读
create_issue_emoji_reaction 写入
delete_issue_emoji_reaction 破坏性
create_issue_note_emoji_reaction 写入
delete_issue_note_emoji_reaction 破坏性
list_issues 只读
按条件列出议题。
my_issues 只读
get_issue 只读
获取指定议题详情。
update_issue 写入
更新 GitLab 项目中的议题。
update_issue_description_patch 写入
delete_issue 破坏性
list_todos 只读
mark_todo_done 写入
mark_all_todos_done 写入
list_issue_links 只读
list_issue_discussions 只读
get_issue_link 只读
create_issue_link 写入
delete_issue_link 破坏性
list_namespaces 只读
get_namespace 只读
verify_namespace 只读
get_project 只读
获取项目详情。
list_projects 只读
列出当前用户可访问的项目。
update_project 写入
list_project_members 只读
list_labels 只读
get_label 只读
create_label 写入
update_label 写入
delete_label 破坏性
list_group_projects 只读
list_wiki_pages 只读
列出项目 Wiki 页面。
get_wiki_page 只读
获取指定 Wiki 页面详情。
create_wiki_page 写入
创建项目 Wiki 页面。
update_wiki_page 写入
delete_wiki_page 破坏性
list_group_wiki_pages 只读

使用场景

浏览 GitLab 项目、仓库文件、提交和分支。
创建、审查、审批和合并合并请求。
管理议题、讨论、评论、标签和里程碑。
查看、创建、重试或取消 CI/CD 流水线及作业。
管理 Wiki、发布、标签、工作项和漏洞。
为自托管或多用户 GitLab 部署提供远程 MCP 接入。

支持客户端

Claude Code
VS Code
GitHub Copilot
Codex
Cursor
Cline部分支持
Roo Code部分支持
Kilo Code部分支持
Amp Code部分支持
Claude.ai部分支持
OpenCode部分支持
Factory AI Droid部分支持
OpenClaw部分支持

依据项目文档列出,未经本站实测。

详细介绍

GitLab MCP 服务器,通过 MCP 为项目、代码浏览、合并请求、议题、流水线、Wiki、发布、标签、里程碑、用户、群组、工作项、Webhook、变量、依赖代理和漏洞等提供操作能力。支持 stdio、SSE 和 Streamable HTTP,并支持 GitLab.com 与自托管 GitLab。

同类可选方案

Context7 80 · B

Upstash 官方维护,为 AI 编码助手提供实时更新的第三方库文档

★ 63.3k · 工具数 2 与当前对比 →

源版本 9569a836d64c 数据同步于 2026-10-19 查看 FMRS 评分方法