Token导航 LogoToken导航TokenDH.com
gitlab MCP logo
开发工具stdio官方级别未说明来源级核验

gitlab MCP

MCP Server

一个全面的GitLab MCP服务器,用于AI客户端管理项目、合并请求、问题、流水线等,支持多种认证方式和传输协议。

工具数

154

提示词数

0

GitHub Stars

1,518

资源数

0
GitLab集成TypeScriptClaude问题跟踪ClaudeCursorClineVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

zereight

提供方

zereight

最后核验

2026/5/17 21:09

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -i --rm \

详细介绍

GitLab MCP服务器

英语 | 韩语 | 简体中文

新功能:动态GitLab API URL支持与连接池!看 动态API URL文档 了解详情。

![Star History Chart](https://www.star-history.com/#zereight/gitlab-mcp&Date)

@zereight/mcp gitlab

面向AI客户端的全面GitLab MCP服务器。通过stdio、SSE和Streamable HTTP管理项目、合并请求、问题、管道、wiki、发布、标签、里程碑等。

支持PAT、OAuth、只读模式、动态API URL,以及VS Code、Claude、Cursor、Copilot和其他MCP客户端的远程授权。

为什么要使用GitLab MCP?

  • 广泛的GitLab覆盖范围——项目、存储库浏览、合并请求、问题、管道、维基、发布、标签、标记、里程碑等
  • 灵活的身份验证——个人访问令牌、本地OAuth2浏览器流、MCP OAuth代理和按请求远程授权
  • 多种传输方式——stdio用于本地客户端,SSE用于传统客户端,Streamable HTTP用于现代远程部署
  • 客户端友好的设置——Claude Code、Codex、Antigravity、OpenCode、Copilot、Cline、Roo Code、Cursor、Kilo Code和Amp Code的示例
  • Self-hosted就绪-与自定义GitLab实例、代理设置和动态API URL路由配合使用

快速入门:选择下面的个人访问令牌或OAuth2设置并使用 @zereight/mcp-gitlab 在您的MCP客户端配置中。

客户端设置指南

用法

安装概述

身份验证方法

服务器支持四种身份验证方法:

用于本地/桌面使用 (最常见):

  1. 个人访问令牌 (GITLAB_PERSONAL_ACCESS_TOKEN)--最简单的设置
  2. OAuth2--本地浏览器 (GITLAB_USE_OAUTH)--建议使用以提高安全性

用于服务器/远程部署:

  1. OAuth2-MCP代理 (GITLAB_MCP_OAUTH)--用于远程MCP客户端,如Claude.ai
  2. 远程授权 (REMOTE_AUTHORIZATION)--多用户部署,每个调用者提供自己的令牌

快速设置路径

对于最简单的本地设置,请从个人访问令牌开始。对于基于浏览器的本地身份验证,请使用OAuth2。对于远程或多用户部署,请继续阅读本自述文件后面的MCP OAuth和远程授权部分。

使用CLI参数(适用于有env-var问题的客户端)

一些MCP客户端(如GitHub Copilot CLI)在环境变量方面存在问题。请改用CLI参数:

{
  "mcpServers": {
    "gitlab": {
      "command": "npx",
      "args": [
        "-y",
        "@zereight/mcp-gitlab",
        "--token=YOUR_GITLAB_TOKEN",
        "--api-url=https://gitlab.com/api/v4"
      ],
      "tools": ["*"]
    }
  }
}

可用CLI参数:

  • --token -GitLab个人访问令牌(替换 GITLAB_PERSONAL_ACCESS_TOKEN)
  • --api-url -GitLab API URL(替换 GITLAB_API_URL)
  • --read-only=true -启用只读模式(替换 GITLAB_READ_ONLY_MODE)
  • --use-wiki=true -启用wiki API(替换 USE_GITLAB_WIKI)
  • --use-milestone=true -启用里程碑API(替换 USE_MILESTONE)
  • --use-pipeline=true -启用管道API(替换 USE_PIPELINE)

CLI参数优先于环境变量。

  • SSE
docker run -i --rm \
  -e HOST=0.0.0.0 \
  -e GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token \
  -e GITLAB_API_URL="https://gitlab.com/api/v4" \
  -e GITLAB_READ_ONLY_MODE=true \
  -e USE_GITLAB_WIKI=true \
  -e USE_MILESTONE=true \
  -e USE_PIPELINE=true \
  -e SSE=true \
  -p 3333:3002 \
  zereight050/gitlab-mcp
{
  "mcpServers": {
    "gitlab": {
      "type": "sse",
      "url": "http://localhost:3333/sse"
    }
  }
}
  • 可流式传输http
docker run -i --rm \
  -e HOST=0.0.0.0 \
  -e REMOTE_AUTHORIZATION=true \
  -e GITLAB_API_URL="https://gitlab.com/api/v4" \
  -e GITLAB_READ_ONLY_MODE=true \
  -e USE_GITLAB_WIKI=true \
  -e USE_MILESTONE=true \
  -e USE_PIPELINE=true \
  -e STREAMABLE_HTTP=true \
  -p 3333:3002 \
  zereight050/gitlab-mcp
{
  "mcpServers": {
    "gitlab": {
      "type": "streamable-http",
      "url": "http://localhost:3333/mcp",
      "headers": {
        "Authorization": "Bearer glpat-..."
      }
    }
  }
}

使用MCP OAuth代理(GITLAB_MCP_OAUTH)

仅适用于服务器/远程部署。 此模式要求使用可公开访问的HTTPS URL部署MCP服务器。有关本地/桌面使用,请参阅 GITLAB_USE_OAUTH 上面。

适用于支持MCP OAuth规范的远程MCP客户端(例如Claude.ai)。 服务器充当一个完整的OAuth 2.0授权服务器——未经身份验证的请求 收到一个 401 + WWW-Authenticate 响应,触发OAuth浏览器流 在客户端自动。

远程MCP客户端,如OpenCode、MCPJam和Claude.ai,可以发送自己的 授权期间的回调URL。如果您无法注册每个客户端回调 GitLab中的URL,启用 GITLAB_OAUTH_CALLBACK_PROXY=true.使用回调代理 模式下,GitLab只需要一个注册的重定向URI: {MCP_SERVER_URL}/callback.

GITLAB_OAUTH_REDIRECT_URI 适用于本地OAuth(GITLAB_USE_OAUTH)只有。确实如此 不覆盖远程MCP OAuth客户端回调URL,也不应用于修复 远程 Unregistered redirect_uri 错误。

此变量存在是因为本地OAuth流在相同的服务器上启动浏览器 机器作为MCP服务器,并在本地HTTP服务器上监听回调, 例如 http://127.0.0.1:8888/callback.

远程MCP OAuth是不同的。在 GITLAB_MCP_OAUTH=true 模式,MCP客户端 在以下过程中提供自己的回调URL /authorize. GITLAB_OAUTH_REDIRECT_URI 不会替换客户端提供的URL。

模式启用回调变量GitLab重定向URI
本地OAuthGITLAB_USE_OAUTH=trueGITLAB_OAUTH_REDIRECT_URIhttp://127.0.0.1:8888/callback 或您的本地回拨
远程MCP OAuthGITLAB_MCP_OAUTH=trueGITLAB_OAUTH_CALLBACK_PROXY=true{MCP_SERVER_URL}/callback

使用 GITLAB_OAUTH_REDIRECT_URI 仅当MCP服务器本身拥有本地 浏览器回调。使用 GITLAB_OAUTH_CALLBACK_PROXY=true 当远程MCP客户端 拥有回调URL。

运作原理:您将此MCP服务器部署到具有公共HTTPS URL的某个位置。MCP 客户端连接到 {MCP_SERVER_URL}/mcp服务器处理OAuth 2.0流, 代表客户端与GitLab交换凭据。

先决条件:

  1. 可公开访问的HTTPS服务器URL(MCP_SERVER_URL)--使用 吸烟 用于本地测试
  2. 预先注册的GitLab OAuth应用程序 api (或 read_api)范围

首选 Admin areaApplications,将重定向URI设置为 {MCP_SERVER_URL}/callback

环境变量必填说明
GITLAB_MCP_OAUTH设为 true 以启用
GITLAB_API_URLGitLab API基础URL
GITLAB_OAUTH_APP_IDGitLab OAuth应用程序ID
MCP_SERVER_URL此MCP服务器的公共HTTPS URL
STREAMABLE_HTTP必须 true
GITLAB_OAUTH_CALLBACK_PROXY可选设置为 true 使用MCP服务器的固定 /callback URL
GITLAB_OAUTH_SCOPES可选逗号分隔范围(默认值: api,read_api,read_user)

STREAMABLE_HTTP=true,服务器端 GITLAB_PERSONAL_ACCESS_TOKENGITLAB_JOB_TOKEN 需要 REMOTE_AUTHORIZATION=trueGITLAB_MCP_OAUTH=true.

故障排除 Unregistered redirect_uri 检查 redirect_uri 在浏览器URL中。如果它指向客户端回调 例如 http://127.0.0.1:xxxxx/.../callback,启用: ``env GITLAB_OAUTH_CALLBACK_PROXY=true ` 不要通过更改来修复远程MCP OAuth GITLAB_OAUTH_REDIRECT_URI那 变量用于本地OAuth(GITLAB_USE_OAUTH`)只有。
docker run -i --rm \
  -e HOST=0.0.0.0 \
  -e GITLAB_MCP_OAUTH=true \
  -e GITLAB_OAUTH_CALLBACK_PROXY=true \
  -e STREAMABLE_HTTP=true \
  -e MCP_SERVER_URL=https://your-server.example.com \
  -e GITLAB_API_URL="https://gitlab.com/api/v4" \
  -e GITLAB_OAUTH_APP_ID=your_app_id \
  -p 3000:3002 \
  zereight050/gitlab-mcp

MCP客户端配置:

{
  "mcpServers": {
    "gitlab": {
      "type": "http",
      "url": "https://your-server.example.com/mcp"
    }
  }
}

使用远程授权(REMOTE_AUTHORIZATION)

仅适用于服务器/远程部署。 每个HTTP调用者直接在请求头中提供自己的GitLab令牌,不涉及OAuth流。

适用于多用户或多租户部署,其中每个调用者都提供自己的 HTTP请求头中的GitLab令牌。没有OAuth流——MCP服务器转发 代表调用者将令牌发送到GitLab。

标题优先级: Private-Token > JOB-TOKEN > Authorization: Bearer

环境变量必填说明
REMOTE_AUTHORIZATION设为 true 以启用
STREAMABLE_HTTP必须 true
ENABLE_DYNAMIC_API_URL可选项允许每次请求通过GitLab URL X-GitLab-API-URL 头球

请求标头示例:

Private-Token: glpat-xxxxxxxxxxxxxxxxxxxx

或使用Bearer令牌:

Authorization: Bearer glpat-xxxxxxxxxxxxxxxxxxxx
⚠️ REMOTE_AUTHORIZATION不兼容 SSE运输。 STREAMABLE_HTTP=true 是必需的。

环境变量

使用完整环境变量列表的专用参考:

大多数用户只需要以下启动集之一:

  • 本地PAT: GITLAB_PERSONAL_ACCESS_TOKEN, GITLAB_API_URL
  • 本地OAuth: GITLAB_USE_OAUTH=true, GITLAB_OAUTH_CLIENT_ID, GITLAB_OAUTH_REDIRECT_URI, GITLAB_API_URL
  • 远程多用户HTTP: STREAMABLE_HTTP=true, REMOTE_AUTHORIZATION=true, HOST, PORT
  • 多吊舱HPA(无状态):以上+ OAUTH_STATELESS_MODE=true, OAUTH_STATELESS_SECRET (所有吊舱都一样)。看 无状态模式.

常用变量:

  • GITLAB_API_URL
  • GITLAB_PERSONAL_ACCESS_TOKEN
  • GITLAB_USE_OAUTH
  • REMOTE_AUTHORIZATION
  • GITLAB_MCP_OAUTH
  • GITLAB_OAUTH_CALLBACK_PROXY
  • OAUTH_STATELESS_MODE
  • OAUTH_STATELESS_SECRET

参考文件还包括:

  • auth和OAuth变量
  • MCP OAuth代理变量
  • 项目和工具过滤变量
  • 通过以下方式进行动态工具发现 discover_tools (按需工具集激活)
  • 传输和会话变量
  • 代理和TLS变量

有关回调代理模式的详细信息,请参阅 GitLab MCP OAuth回调代理.

远程授权设置(多用户支持)

使用时 REMOTE_AUTHORIZATION=true,MCP服务器可以支持多个用户,每个用户都有自己的GitLab令牌通过HTTP标头传递。这有助于:

  • 共享MCP服务器实例,每个用户都需要自己的GitLab访问权限
  • IDE集成,可以将用户特定的令牌注入MCP请求

设置示例:

# Start server with remote authorization
docker run -d \
  -e HOST=0.0.0.0 \
  -e STREAMABLE_HTTP=true \
  -e REMOTE_AUTHORIZATION=true \
  -e GITLAB_API_URL="https://gitlab.com/api/v4" \
  -e GITLAB_READ_ONLY_MODE=true \
  -e SESSION_TIMEOUT_SECONDS=3600 \
  -p 3333:3002 \
  zereight050/gitlab-mcp

客户端配置:

您的IDE或MCP客户端必须在每次请求时发送以下标头之一:

Authorization: Bearer glpat-xxxxxxxxxxxxxxxxxxxx

Private-Token: glpat-xxxxxxxxxxxxxxxxxxxx

令牌按会话存储(由标识 mcp-session-id header),并在同一会话中重复用于后续请求。

带游标的远程授权客户端配置示例

{
  "mcpServers": {
    "GitLab": {
      "url": "http(s):///mcp",
      "headers": {
        "Authorization": "Bearer glpat-..."
      }
    }
  }
}

重要提示:

  • 远程授权 仅适用于流式HTTP传输
  • 每个会话都是隔离的-来自一个会话的令牌无法访问另一个会话中的数据

会话结束时,令牌会自动清理

  • 会话超时: 身份验证令牌在以下时间过期 SESSION_TIMEOUT_SECONDS (默认1小时)不活动。超时后,客户端必须再次发送身份验证标头。传输会话仍处于活动状态。
  • 每个请求都会重置该会话的超时计时器
  • 速率限制: 每次会议仅限于 MAX_REQUESTS_PER_MINUTE 每分钟请求数(默认值60)
  • 容量限制: 服务器最多可接受 MAX_SESSIONS 并发会话(默认值1000)

MCP OAuth设置(Claude.ai原生OAuth)

使用时 GITLAB_MCP_OAUTH=true,服务器充当GitLab的OAuth代理 例子Claude.ai(以及任何符合MCP规范的客户端)处理整个浏览器 身份验证流程自动进行,无需手动管理个人访问令牌。

先决条件:

A. 预先注册的GitLab OAuth应用程序 是必需的。GitLab动态限制 向 mcp 范围,这对于API来说是不够的 呼叫(需要 apiread_api).

  1. 转到您的GitLab实例→ 管理区域>应用程序 (实例范围)或 用户设置>应用程序 (个人)
  2. 使用以下内容创建新应用程序:

- 机密:未选中 - 范围: api, read_api, read_user (或您打算通过以下方式请求的任何范围 GITLAB_OAUTH_SCOPES)

  1. 保存并复制 应用标识符 --这是你的 GITLAB_OAUTH_APP_ID

它是如何工作的:

  1. 用户在Claude.ai中添加您的MCP服务器URL
  2. Claude.ai通过以下方式发现OAuth端点 /.well-known/oauth-authorization-server
  3. Claude.ai通过动态客户端注册进行注册(POST /register)--由MCP服务器本地处理(每个客户端都有一个虚拟客户端ID)
  4. Claude.ai使用预先注册的OAuth应用程序将用户的浏览器重定向到GitLab的登录页面
  5. 用户认证;GitLab重定向回 https://claude.ai/api/mcp/auth_callback
  6. Claude.ai发送 Authorization: Bearer 在每个MCP请求上
  7. 服务器使用GitLab验证令牌,并在每个会话中存储它

服务器设置:

docker run -d \
  -e STREAMABLE_HTTP=true \
  -e GITLAB_MCP_OAUTH=true \
  -e GITLAB_OAUTH_APP_ID="your-gitlab-oauth-app-client-id" \
  -e GITLAB_API_URL="https://gitlab.example.com/api/v4" \
  -e MCP_SERVER_URL="https://your-mcp-server.example.com" \
  -p 3002:3002 \
  zereight050/gitlab-mcp

对于本地开发(允许HTTP):

MCP_DANGEROUSLY_ALLOW_INSECURE_ISSUER_URL=true \
STREAMABLE_HTTP=true \
GITLAB_MCP_OAUTH=true \
GITLAB_OAUTH_APP_ID=your-gitlab-oauth-app-client-id \
MCP_SERVER_URL=http://localhost:3002 \
GITLAB_API_URL=https://gitlab.com/api/v4 \
node build/index.js

第.ai条配置:

{
  "mcpServers": {
    "GitLab": {
      "url": "https://your-mcp-server.example.com/mcp"
    }
  }
}

headers 字段是必需的——Claude.ai通过OAuth自动获取令牌。

环境变量:

变量必填描述
GITLAB_MCP_OAUTH设置为 true 以启用
GITLAB_OAUTH_APP_ID预先注册的GitLab OAuth应用程序的客户端ID
MCP_SERVER_URLMCP服务器的公共HTTPS URL
GITLAB_API_URL您的GitLab实例API URL(例如。 https://gitlab.com/api/v4)
STREAMABLE_HTTP必须是 true (不支持SSE)
GITLAB_OAUTH_SCOPES请求逗号分隔的GitLab作用域(例如。 api,read_user).默认为 api (或 read_apiGITLAB_READ_ONLY_MODE=true).预注册的应用程序必须至少配置这些作用域。
MCP_DANGEROUSLY_ALLOW_INSECURE_ISSUER_URL设置 true 仅适用于本地HTTP开发

重要提示:

  • MCP OAuth 仅适用于流式HTTP传输 (SSE=true 不兼容)
  • 每个用户会话都存储自己的OAuth令牌——会话是完全隔离的
  • 会话超时、速率限制和容量限制同样适用于

REMOTE_AUTHORIZATION 模式(SESSION_TIMEOUT_SECONDS, MAX_REQUESTS_PER_MINUTE, MAX_SESSIONS)

  • 标头身份验证回退:Private-TokenJOB-TOKEN 请求标头为

目前,跳过OAuth验证,直接使用原始令牌进行验证 会议。这允许PAT和CI作业令牌与OAuth流一起使用 相同的服务器实例。 Authorization: Bearer 始终被视为OAuth 令牌--使用 Private-Token 用于基于PAT的报头认证。

特工技能档案

预构建的技能文件可在 skills/gitlab-mcp/ 用于支持技能/指令加载的AI代理(Claude Code、GitHub Copilot、Cursor等)。

  • 技能.md --核心指南(约800个令牌),包括工具集概述、关键工作流程和参数提示
  • 参考文献/ --用于代码审查、合并请求、问题和管道的详细工作流文档

使用安装 skills CLI:

npx skills add zereight/gitlab-mcp --skill gitlab-mcp-skill

在您的AI客户端中注册技能目录,以获得最佳的工具使用指南,而无需仅依赖完整的ListTools响应。

工具🛠️

Click to expand

  1. merge_merge_request -在GitLab项目中合并合并请求
  2. create_or_update_file -在GitLab项目中创建或更新单个文件
  3. search_repositories -搜索GitLab项目
  4. create_repository -创建一个新的GitLab项目
  5. get_file_contents -从GitLab项目中获取文件或目录的内容
  6. push_files -在一次提交中将多个文件推送到GitLab项目中
  7. create_issue -在GitLab项目中创建新问题
  8. create_merge_request -在GitLab项目中创建新的合并请求
  9. fork_repository -将GitLab项目分叉到您的帐户或指定的命名空间
  10. create_branch -在GitLab项目中创建一个新分支
  11. get_merge_request -使用精简部署摘要、落后计数、提交添加摘要和审批摘要获取合并请求的详细信息(必须提供mergeRequestIid或branchName)
  12. get_merge_request_diffs -获取合并请求的更改/差异(必须提供mergeRequestIid或branchName)
  13. list_merge_request_diffs -列出具有分页支持的合并请求差异(必须提供mergeRequestIid或branchName)
  14. get_merge_request_conflicts -获取GitLab项目中合并请求的冲突
  15. list_merge_request_changed_files -代码审查工作流程的第一步。仅返回合并请求中更改的文件路径列表,不包括差异内容。首先调用此函数以获取文件路径,然后在一次批处理调用中使用多个文件调用get_meme_request_file_diff(建议每次调用3-5个文件)。支持使用正则表达式进行excluded_file_patterns过滤。(必须提供mergeRequestIid或branchName)
  16. get_merge_request_file_diff -代码审查工作流程的第二步。从合并请求中获取一个或多个文件的差异。首先调用list_merge_request_changed_files,然后将它们作为数组传递,以便高效地获取差异。支持批处理多个文件(建议3-5个)。(必须提供mergeRequestIid或branchName)
  17. list_merge_request_versions -列出合并请求的所有版本
  18. get_merge_request_version -获取合并请求的特定版本
  19. get_branch_diffs -获取GitLab项目中两个分支或提交之间的更改/差异
  20. update_merge_request -更新合并请求(必须提供mergeRequestIid或branchName)
  21. create_note -为问题或合并请求创建新注释(注释)
  22. create_merge_request_thread -在合并请求上创建新线程
  23. mr_discussions -列出合并请求的讨论项
  24. resolve_merge_request_thread -解析合并请求上的线程
  25. update_merge_request_note -修改现有的合并请求线程注释
  26. create_merge_request_note -向现有合并请求线程添加新注释
  27. delete_merge_request_discussion_note -删除合并请求中的讨论说明
  28. update_merge_request_discussion_note -更新合并请求的讨论说明
  29. create_merge_request_discussion_note -向现有合并请求线程添加新的讨论注释
  30. delete_merge_request_note -删除现有的合并请求注释
  31. get_merge_request_note -获取合并请求的特定注释
  32. get_merge_request_notes -列出合并请求的注释
  33. get_draft_note -从合并请求中获取单个草稿笔记
  34. list_draft_notes -列出合并请求的草稿注释
  35. create_draft_note -为合并请求创建草稿注释
  36. update_draft_note -更新现有的说明草稿
  37. delete_draft_note -删除草稿注释
  38. publish_draft_note -发布单个草稿注释
  39. bulk_publish_draft_notes -发布合并请求的所有草稿注释
  40. list_merge_requests -在全局或特定GitLab项目中列出合并请求,并带有过滤选项(project_id现在是可选的)
  41. approve_merge_request -批准合并请求(需要适当的权限)
  42. unapprove_merge_request -取消批准以前批准的合并请求
  43. get_merge_request_approval_state -获取合并请求审批详细信息,包括审批人(使用 approval_state 如果可用,则回退到 approvals)
  44. update_issue_note -修改现有问题线索注释
  45. create_issue_note -向现有问题线程添加新注释
  46. list_issues -列出问题(默认值:仅由当前用户创建;对所有可访问的问题使用范围=“全部”)
  47. my_issues -列出分配给已验证用户的问题(默认为未解决问题)
  48. get_issue -获取GitLab项目中特定问题的详细信息
  49. update_issue -更新GitLab项目中的问题
  50. delete_issue -从GitLab项目中删除问题
  51. list_todos -列出当前用户的GitLab待办事项
  52. mark_todo_done -将GitLab待办事项标记为已完成
  53. mark_all_todos_done -将当前用户的所有待处理GitLab待办事项标记为已完成
  54. list_issue_links -列出特定问题的所有问题链接
  55. list_issue_discussions -列出GitLab项目中某个问题的讨论
  56. get_issue_link -获取特定问题链接
  57. create_issue_link -在两个问题之间创建问题链接
  58. delete_issue_link -删除问题链接
  59. list_namespaces -列出当前用户可用的所有命名空间
  60. get_namespace -通过ID或路径获取命名空间的详细信息
  61. verify_namespace -验证命名空间路径是否存在
  62. get_project -获取特定项目的详细信息
  63. list_projects -列出当前用户可访问的项目
  64. list_project_members -列出GitLab项目的成员
  65. list_group_projects -列出GitLab组中具有筛选选项的项目
  66. list_group_iterations -列出具有过滤选项的组迭代
  67. list_labels -列出项目的标签
  68. get_label -从项目中获取单个标签
  69. create_label -在项目中创建新标签
  70. update_label -更新项目中的现有标签
  71. delete_label -从项目中删除标签
  72. list_pipelines -列出GitLab项目中带有过滤选项的管道
  73. get_pipeline -获取GitLab项目中特定管道的详细信息
  74. list_pipeline_jobs -列出特定管道中的所有作业
  75. list_pipeline_trigger_jobs -列出特定管道中触发下游管道的所有触发作业(桥)
  76. get_pipeline_job -获取GitLab管道作业号的详细信息
  77. get_pipeline_job_output -使用可选分页获取GitLab管道作业的输出/跟踪,以限制上下文窗口的使用
  78. validate_ci_lint -验证为项目提供的GitLab CI/CD YAML内容
  79. validate_project_ci_lint -验证现有 .gitlab-ci.yml 项目的配置
  80. create_pipeline -为分支或标记创建新管道
  81. retry_pipeline -重试失败或取消的管道
  82. cancel_pipeline -取消正在运行的管道
  83. play_pipeline_job -运行手动管道作业
  84. retry_pipeline_job -重试失败或取消的管道作业
  85. cancel_pipeline_job -取消正在运行的管道作业
  86. list_deployments -列出GitLab项目中具有过滤选项的部署
  87. get_deployment -获取GitLab项目中特定部署的详细信息
  88. list_environments -列出GitLab项目中的环境
  89. get_environment -获取GitLab项目中特定环境的详细信息
  90. list_job_artifacts -列出作业工件存档中的工件文件。返回文件名、路径、类型和大小
  91. download_job_artifacts -将作业的整个工件存档(zip)下载到本地路径。返回保存的文件路径
  92. get_job_artifact_file -通过存档中的路径从作业的工件中获取单个文件的内容
  93. list_milestones -列出GitLab项目中具有过滤选项的里程碑
  94. get_milestone -获取特定里程碑的详细信息
  95. create_milestone -在GitLab项目中创建新的里程碑
  96. edit_milestone -编辑GitLab项目中的现有里程碑
  97. delete_milestone -从GitLab项目中删除里程碑
  98. get_milestone_issue -获取与特定里程碑相关的问题
  99. get_milestone_merge_requests -获取与特定里程碑关联的合并请求
  100. promote_milestone -将里程碑推进到下一阶段
  101. get_milestone_burndown_events -获取特定里程碑的烧毁事件
  102. list_wiki_pages -列出GitLab项目中的wiki页面
  103. get_wiki_page -获取特定wiki页面的详细信息
  104. create_wiki_page -在GitLab项目中创建一个新的wiki页面
  105. update_wiki_page -更新GitLab项目中的现有wiki页面
  106. delete_wiki_page -从GitLab项目中删除wiki页面
  107. list_group_wiki_pages -列出GitLab组中的wiki页面
  108. get_group_wiki_page -获取特定组wiki页面的详细信息
  109. create_group_wiki_page -在GitLab组中创建一个新的wiki页面
  110. update_group_wiki_page -更新GitLab组中的现有wiki页面
  111. delete_group_wiki_page -从GitLab组中删除wiki页面
  112. get_repository_tree -获取GitLab项目的存储库树(列出文件和目录)
  113. list_commits -列出带有筛选选项的存储库提交
  114. get_commit -获取特定提交的详细信息
  115. get_commit_diff -获取特定提交的更改/差异
  116. list_commit_statuses -列出特定提交的状态
  117. create_commit_status -创建或更新特定提交的状态
  118. list_releases -列出项目的所有版本
  119. get_release -按标签名称获取发布
  120. create_release -在GitLab项目中创建新版本
  121. update_release -更新GitLab项目中的现有版本
  122. delete_release -从GitLab项目中删除一个版本(不删除关联的标签)
  123. create_release_evidence -为现有版本创建发布证据(仅限GitLab Premium/Ultimate)
  124. download_release_asset -通过直接资产路径下载发布资产文件
  125. list_tags -列出支持过滤和分页的存储库标签
  126. get_tag -获取特定存储库标签的详细信息
  127. create_tag -在存储库中创建新标记
  128. delete_tag -从存储库中删除标记
  129. get_tag_signature -获取已签名标签的签名
  130. get_users -按用户名获取GitLab用户详细信息
  131. list_events -列出当前已验证用户的所有事件
  132. get_project_events -列出指定项目的所有可见事件
  133. upload_markdown -将文件上传到GitLab项目以用于markdown内容
  134. download_attachment -通过secret和filename从GitLab项目下载上传的文件
  135. get_work_item -获取一个包含完整详细信息的单个工作项,包括状态、层次结构(父/子)、类型、标签、受让人和所有小部件
  136. list_work_items -使用筛选器(类型、状态、搜索、受让人、标签)列出项目中的工作项。返回具有状态和层次结构信息的项目
  137. create_work_item -创建一个新的工作项(问题、任务、事件、test_case、epic、key_result、目标、需求、票证)。支持设置标题、描述、标签、受让人、体重、父母、健康状况、开始/到期日期、里程碑和机密性
  138. update_work_item -更新工作项。可以修改标题、描述、标签、受让人、重量、状态、状态、父层次结构、子项、健康状态、开始/到期日期、里程碑、机密性、链接项目和自定义字段
  139. convert_work_item_type -将工作项转换为其他类型(例如问题到任务、任务到事件)
  140. list_work_item_statuses -列出项目中工作项类型的可用状态。需要具有可配置状态的GitLab Premium/Ultimate
  141. list_custom_field_definitions -列出项目中工作项类型的可用自定义字段定义。返回通过update_work_item设置自定义字段所需的字段名、类型和ID
  142. move_work_item -将工作项(问题、任务等)移动到其他项目。使用GitLab GraphQL issueMove变异
  143. list_work_item_notes -列出工作项目的注释和讨论。返回带有作者、正文、时间戳和系统/内部标志的线程讨论
  144. create_work_item_note -向工作项添加注释/评论。支持Markdown、内部注释和线程回复
  145. get_timeline_events -列出事件的时间线事件。返回按时间顺序排列的事件,包括注释、时间戳和标签
  146. create_timeline_event -为事件创建时间线事件。支持标签:“开始时间”、“结束时间”、”检测到影响“、”启动响应“、”减轻影响“、“确定原因”
  147. list_webhooks -列出GitLab项目或组的所有已配置的Webhook。提供project_id或group_id
  148. list_webhook_events -列出项目或组webhook的最近webhook事件(过去7天)。使用摘要模式进行概述,然后使用get_webhook_event获取完整详细信息
  149. get_webhook_event -按ID获取特定webhook事件的完整详细信息,包括请求/响应有效载荷
  150. search_code -在GitLab实例上的所有项目中搜索代码(需要启用高级搜索或精确代码搜索)
  151. search_project_code -在特定的GitLab项目中搜索代码(需要启用高级搜索或精确代码搜索)
  152. search_group_code -在特定的GitLab组中搜索代码(需要启用高级搜索或精确代码搜索)
  153. execute_graphql -执行GitLab GraphQL查询
  154. list_merge_request_pipelines -列出具有分页支持的合并请求的管道

测试🧪

该项目包括全面的测试覆盖,包括远程授权:

# Run all tests (API validation + remote auth)
npm test

# Run only remote authorization tests
npm run test:remote-auth

# Run all tests including readonly MCP tests
npm run test:all

# Run only API validation
npm run test:integration

所有远程授权测试都使用模拟的GitLab服务器,不需要实际的GitLab凭据。

目录标签

目录标签

GitLab集成TypeScriptClaude问题跟踪本地部署AI客户端支持项目管理合并请求管理

支持客户端

ClaudeCursorClineVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Docker

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

154

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauthremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP