qodev gitlab mcp
用于GitLab集成的模型上下文协议(MCP)服务器。通过克劳德等人工智能助手的标准化界面,公开项目、合并请求、管道、讨论、问题、发布等。
安装
pip install qodev-gitlab-mcp
或者直接用uvx运行:
配置
设置以下环境变量:
# 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 |
服务器功能和使用指南 |
许可证
麻省理工学院