GitLab MCP服务

一个用于GitLab集成的模型上下文协议(MCP)服务器,通过标准化接口为AI助手提供项目、合并请求、管道、讨论等问题管理功能。

  • by qodevai
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 qodevai/gitlab-mcp

使用说明

qodev gitlab mcp

用于GitLab集成的模型上下文协议(MCP)服务器。通过克劳德等人工智能助手的标准化界面,公开项目、合并请求、管道、讨论、问题、发布等。

安装

pip install qodev-gitlab-mcp

或者直接用uvx运行:

uvx qodev-gitlab-mcp

配置

设置以下环境变量:

# Required
GITLAB_TOKEN=glpat-YOUR-TOKEN-HERE

# Optional (defaults to https://gitlab.com)
GITLAB_URL=https://gitlab.com

克劳德代码

添加到MCP配置中:

{
  "mcpServers": {
    "gitlab": {
      "command": "uvx",
      "args": ["qodev-gitlab-mcp"],
      "env": {
        "GITLAB_TOKEN": "your-token-here",
        "GITLAB_URL": "https://gitlab.com"
      }
    }
  }
}

快速开始

配置完成后,MCP服务器将允许您的AI助手访问GitLab。交互示例:

  • “我的MR准备好合并了吗?”--检查管道、批准和未解决的讨论
  • “为此分支创建合并请求”--创建具有自动检测源分支的MR
  • “等待管道完成”--监控管道并报告失败作业日志的结果
  • “评论MR!42说LGTM”——对合并请求发表评论

特性

  • 合并请求管理(创建、评论、合并、关闭、内联评论)
  • 管道监测 wait_for_pipeline 工具
  • 问题跟踪(创建、更新、关闭、评论)
  • 发布管理
  • CI/CD变量管理
  • 支持图像上传的文件
  • 通过MCP工作区根自动检测“当前”项目/分支

工具

服务器公开了以下MCP工具:

合并请求

工具 说明
create_merge_request 创建新的合并请求
update_merge_request 更新MR标题、描述、标签、指定人员、审阅者
merge_merge_request 合并合并请求
close_merge_request 关闭合并请求(带可选注释)
comment_on_merge_request 对合并请求发表评论
create_inline_comment 在MR差异中的特定行上添加内联注释
reply_to_discussion 回复现有讨论线索
resolve_discussion_thread 解决或取消解决讨论线程

管道

工具 说明
wait_for_pipeline 等待管道完成并返回结果
download_artifact 将作业工件下载到本地文件系统
retry_job 重试失败的CI/CD作业

问题

工具 说明
create_issue 创建新问题
update_issue 更新现有问题
close_issue 关闭问题
comment_on_issue 对某个问题发表评论

发布

工具 说明
create_release 使用标签、描述和资源创建新版本

CI/CD变量

工具 说明
set_project_ci_variable 创建或更新CI/CD变量(追加销售)

文件

工具 说明
upload_file 将文件上传到GitLab以嵌入问题或MR中

所有工具支持 project_id="current" 从当前工作目录中自动检测项目。合并请求工具也支持 mr_iid="current" 以检测电流支路的MR。

资源

服务器公开以下只读MCP资源:

项目

资源URI 描述
gitlab://projects/ 列出所有可访问的项目
gitlab://projects/{project_id} 获取项目详细信息

合并请求

资源URI 描述
gitlab://projects/{project_id}/merge-requests/ 列出打开的合并请求
gitlab://projects/{project_id}/merge-requests/{mr_iid} 完整的MR概述(元数据、讨论、更改、提交、管道、批准)
gitlab://projects/{project_id}/merge-requests/{mr_iid}/status 轻量级合并就绪检查
gitlab://projects/{project_id}/merge-requests/{mr_iid}/discussions MR讨论主题
gitlab://projects/{project_id}/merge-requests/{mr_iid}/changes MR差异/变化
gitlab://projects/{project_id}/merge-requests/{mr_iid}/commits MR提交历史
gitlab://projects/{project_id}/merge-requests/{mr_iid}/approvals MR批准状态
gitlab://projects/{project_id}/merge-requests/{mr_iid}/pipeline-jobs MR最新招聘岗位

管道和工作

资源URI 描述
gitlab://projects/{project_id}/pipelines/ 列出最近的管道
gitlab://projects/{project_id}/pipelines/{pipeline_id} 获取管道详细信息
gitlab://projects/{project_id}/pipelines/{pipeline_id}/jobs 列出管道中的作业
gitlab://projects/{project_id}/jobs/{job_id}/log 完整作业日志输出
gitlab://projects/{project_id}/jobs/{job_id}/artifacts 列出作业工件
gitlab://projects/{project_id}/jobs/{job_id}/artifacts/{path} 读取特定工件文件

问题

资源URI 描述
gitlab://projects/{project_id}/issues/ 列出未决问题
gitlab://projects/{project_id}/issues/{issue_iid} 获取问题详细信息
gitlab://projects/{project_id}/issues/{issue_iid}/notes 获取问题评论

发布

资源URI 描述
gitlab://projects/{project_id}/releases/ 列出所有版本
gitlab://projects/{project_id}/releases/{tag_name} 按标签获取发布

CI/CD变量

资源URI 描述
gitlab://projects/{project_id}/variables/ 列出CI/CD变量(仅元数据,隐藏值)
gitlab://projects/{project_id}/variables/{key} 按键获取变量元数据

帮助

资源URI 描述
gitlab://help 服务器功能和使用指南

许可证

麻省理工学院