GitLab运维工具

提供GitLab的运维层功能,包括Webhooks管理、CI/CD变量配置、分支保护和项目设置等,实现自动化项目设置和交付编排。

  • by jarecsni
  • TypeScript
  • 混合部署
  • 更新于
在 GitHub 查看 jarecsni/gitlab-ops-mcp

使用说明

gitlab运营mcp

标准MCP未涵盖的GitLab操作层。Webhooks、CI/CD变量、分支保护、项目设置、组、访问令牌和管道触发器——7个域中的21个工具,可用于自动化项目设置和交付编排。

为什么?

现有的GitLab MCP(@zereight/mcp-gitlab)涵盖了开发人员工作区:仓库、分支、MR、问题、管道。但当你需要的时候 建立 和 统治 项目——配置webhooks、保护分支、跨仓库管理CI变量——你回到了GitLab UI点击按钮。

gitlab-ops-mcp 填补了这一空白。与标准MCP一起,您可以获得完整的GitLab API覆盖范围,用于完全自动化的多回购项目设置。

快速开始

本地(标准传输)

直接使用npx运行--无需安装:

npx gitlab-ops-mcp

需要 GITLAB_PERSONAL_ACCESS_TOKEN 在您的环境中。

远程(HTTP传输)

托管实例可在以下位置获得:

https://gitlab-ops-mcp.fly.dev/mcp

远程服务器通过以下方式使用每会话身份验证 X-GitLab-Token header--未存储服务器端凭据。

MCP客户端配置

Stdio(本地)

{
  "mcpServers": {
    "gitlab-ops": {
      "command": "npx",
      "args": ["-y", "gitlab-ops-mcp"],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "glpat-...",
        "GITLAB_API_URL": "https://gitlab.com/api/v4"
      }
    }
  }
}

流式HTTP(远程)

{
  "mcpServers": {
    "gitlab-ops": {
      "type": "streamable-http",
      "url": "https://gitlab-ops-mcp.fly.dev/mcp",
      "headers": {
        "X-GitLab-Token": "glpat-..."
      }
    }
  }
}

环境变量

变量 必填 默认 描述
GITLAB_PERSONAL_ACCESS_TOKEN 是(stdio) -- GitLab个人访问令牌,具有适当的作用域
GITLAB_API_URL 没有 https://gitlab.com/api/v4 GitLab API v4基本URL

对于HTTP传输,GitLab令牌通过 X-GitLab-Token 取而代之的是标题。

工具目录

7个领域的21个工具。每个工具都是围绕GitLab API v4的精简REST包装。

网络钩子

管理项目级的webhooks,以实现事件驱动的自动化。

工具 说明
create_webhook 使用可配置的事件标志创建webhook
list_webhooks 列出项目的所有Webhook
update_webhook 更新webhook的URL、令牌或事件标志
delete_webhook 从项目中删除webhook
test_webhook 为webhook触发测试事件

CI/CD变量

管理特定于环境的配置的项目级CI/CD变量。

工具 说明
create_ci_variable 创建一个具有可选保护、掩码和作用域的变量
list_ci_variables 列出项目的所有CI/CD变量
update_ci_variable 更新变量的值或标志
delete_ci_variable 删除CI/CD变量

受保护的分支

管理分支保护规则以强制执行仅合并工作流。

工具 说明
protect_branch 使用可配置的访问级别保护分支
list_protected_branches 列出所有受保护的分支
unprotect_branch 从分支中删除保护

项目设置

更新项目级配置,以实现跨存储库的一致治理。

工具 说明
update_project_settings 更新合并方法、管道要求、挤压选项等

组/子组

管理GitLab组以实现命名空间隔离。

工具 说明
create_group 创建组或子组
list_groups 列出具有搜索和访问级别筛选器的组
delete_group 删除组(级联到其中的所有项目)

项目访问令牌

管理跨仓库CI通信的作用域、可旋转的访问令牌。

工具 说明
create_project_access_token 创建一个具有可配置访问级别和到期时间的作用域令牌
list_project_access_tokens 列出项目的所有访问令牌
revoke_project_access_token 撤销访问令牌

管道触发令牌

管理跨项目管道触发的管道触发令牌。

工具 说明
create_pipeline_trigger 创建管道触发令牌
list_pipeline_triggers 列出项目的所有触发令牌
delete_pipeline_trigger 删除触发令牌

自动批准建议

只读工具可以安全地自动批准。修改工具(创建、更新、删除)需要确认。

"autoApprove": [
  "list_webhooks",
  "list_ci_variables",
  "list_protected_branches",
  "list_groups",
  "list_project_access_tokens",
  "list_pipeline_triggers"
]

自我寄宿

该服务器附带了Dockerfile和Fly.io配置,用于自托管HTTP传输。

fly apps create my-gitlab-ops-mcp
fly deploy

HTTP服务器在端口3000上运行 /health 用于活性检查的端点。机器空闲时自动停止,收到请求时自动启动。

与现有GitLab MCP的关系

这两台服务器是互补的,而不是竞争的:

  • @zereight/mcp-gitlab --开发人员工作区(仓库、分支、MR、问题、管道)
  • gitlab-ops-mcp --项目操作(webhooks、变量、保护、设置、令牌)

需求

  • Node.js>=18.0.0

许可证

麻省理工学院