极狐GitLab 正式推出面向 GitLab 老旧版本(12.x、13.x、14.x、15.x 等)免费用户的专业升级服务,点击查看详情

返回列表 发布新帖

使用 MCP 操作 gitlab 仓库

68 2
发表于 前天 09:17 | 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×

本帖最后由 小马哥 于 2025-4-17 09:20 编辑

关于 MCP

MCP 是 Anthropic 公司在去年发布的一个协议,全称叫做 Model Context Protocol。官方的解释:MCP 是一个新的标准,用来将 AI 助手和数据源(比如内容仓库、业务工具和开发环境等)进行连接,它的目的是帮助前沿模型生成更好、更相关的回复。

关于 MCP 的架构,官方的一张图写得很清楚了:

主要的组件包括:

  • MCP Hosts:诸如 Claude Desktop、IDE 或想要通过 MCP 访问数据的 AI 工具;
  • MCP Clients:用来和服务端维持链接的协议客户端;
  • MCP Servers:轻量级的程序,通过标准化的 MCP 协议来提供特定功能;
  • Local Data Sources:MCP 能够安全访问的本地文件或数据源等;
  • Remote Services:MCP 能够连接到的外部系统(比如通过 API)

GitLab MCP Server

GitLab MCP Server 能够对极狐GitLab 的仓库、文件、分支进行一些管理。当前 Anthropic 发布的 GitLab MCP Server 能够实现的功能有:

  • create_or_update_file:在项目中创建或更新文件;
  • push_files:在单个提交中推送多个文件;
  • earch_repositories:在极狐GitLab 中搜索仓库;
  • create_repository:在极狐GitLab 中创建仓库;
  • get_file_contents:获取文件或目录的内容;
  • create_issue:创建新的议题;
  • create_merge_request:创建新的合并请求;
  • fork_repository:派生仓库;
  • create_branch:创建分支;

配置 GitLab MCP Server

前提

  • 支持 MCP 的 AI 工具,本文演示使用 Cursor;
  • 一个可用的极狐GitLab 实例,本文使用 SaaS(https://jihulab.com
  • 极狐GitLab 个人访问令牌

创建极狐GitLab 个人访问令牌

在极狐GitLab 实例上,选择左上角头像 > 偏好设置 > 访问令牌 > 添加新令牌,根据出现的界面选择令牌的范围和过期时间创建即可。

注意:上述创建的是实例访问令牌,也可以创建项目和群组访问令牌。

在 Cursor 上配置 MCP

在 Cursor 上选择Settings > Cursor settings,在出现的界面中选择 MCP

选择左上角的 Add new global MCP server,将如下内容写入到打卡的 mcp.json文件中:

{
  "mcpServers": {
    "gitlab": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITLAB_API_URL",
        "-e",
        "GITLAB_PERSONAL_ACCESS_TOKEN",
        "mcp/gitlab"
      ],
      "env": {
        "GITLAB_API_URL": "https://jihulab.com/api/v4",
        "GITLAB_PERSONAL_ACCESS_TOKEN": "YOUR_ACCESS_TOKEN"
      }
    }
  }
}

需要替换的两个变量:

  • GITLAB_API_URL:极狐GitLab 实例的具体地址,如果是 SaaS 则为 https://jihulab.com/api/v4,如果是私有化部署实例,将 jihulab.com替换为对应实例的域名即可;
  • GITLAB_PERSONAL_ACCESS_TOKEN:第一步创建的个人访问令牌

添加完成后,MCP Server 启动成功就可以看到前面有个绿色的标识。

实际使用

  • 测试仓库的创建

在 Cursor 的 Chat 窗口中,输入提示词:

请帮我在gitlab的xiaomage-devops群组下面创建一个仓库,名称为mcp-gitlab

可以看到 Cursor 的输出:

这里面,Cursor 会自动使用 Agent 模式进行 MCP tool,在对应的 MCP(也就是配置好的、可用的 MCP Server)中查找合适的函数,然后运行。比如,上面就调用了 MCP tool 中的 create_repository来创建了仓库 mcp-gitlab,还给出了链接。可以在极狐GitLab 实例上看一下:

  • 测试 MR 的创建

在 Cursor 的 Chat 窗口中继续搞i提示词:

请帮我在gitlab的xiaomage-devops群组下面创建一个仓库,名称为mcp-gitlab

Cursor 的输出如下:

可以看到 Cursor 调用了 MCP tool 中的 create_branch函数创建了一个名为 jh的分支;然后调用了 create_or_update_files函数来创建一个 1.txt 文件,并写入 hello mcp gitlab内容。可以在极狐GitLab 界面上测试一下:

写在最后

关于 GitLab MCP Server 的其他测试,欢迎大家自行测试。由于 Anthropic 将 GitLab MCP Server 的内容发布在了 GitHub,为了方便国内用户查看,我将相应的仓库通过极狐GitLab 的仓库镜像功能镜像到了极狐GitLab SaaS 上 https://jihulab.com/xiaomage-devops/servers/-/tree/main/src/gitlab

开心交流,交流开心。
回复

使用道具 举报

评论2

wangkaixuanLv.7 发表于 前天 09:56 | 显示全部楼层
这个看起来好高级哈
回复

使用道具 举报

小马哥楼主Lv.8 发表于 昨天 14:43 | 显示全部楼层
wangkaixuan 发表于 2025-4-17 09:56
这个看起来好高级哈

感觉还需要再发展发展,威力就体现出来了。
开心交流,交流开心。
回复

使用道具 举报

意见建议

Email:forum@gitlab.cn
  • 关注公众号
  • 添加专业顾问
Copyright © 2001-2025 极狐GitLab论坛 版权所有 All Rights Reserved. 鄂ICP备2021008419号-1|鄂公网安备42018502006137号
关灯 快速发帖
扫一扫添加专业顾问
返回顶部
快速回复 返回顶部 返回列表