本分分享如何使用 cursor + mcp 来操作极狐GitLab 仓库,体验用自然语言在不接触极狐GitLab 的情况下来完成一些仓库操作。

关于 MCP

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

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

file

主要的组件包括:

  • 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:在单个提交中推送多个文件;
  • search_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 实例上,选择左上角头像 > 偏好设置 > 访问令牌 > 添加新令牌,根据出现的界面选择令牌的范围和过期时间创建即可。

file

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

在 Cursor 上配置 MCP

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

file

选择左上角的 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

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

可以看到 Cursor 的输出:

file

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

file

测试 MR 的创建

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

请帮我在上面的仓库中创建一个分支,名称叫做jh,然后创建一个合并请求(merge request),这个合并请求中新增一个 1.txt,内容是 hello mcp gitlab!

Cursor 的输出如下:

file

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

file

写在最后

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

本文由博客一文多发平台 OpenWrite 发布!

极狐GitLab
69 声望37 粉丝

极狐(GitLab) 以“核心开放”为原则,面向中国市场,提供开箱即用的开放式一体化安全DevOps平台——极狐GitLab。通过业界领先的优先级管理、安全、风险和合规性功能,实现产品、开发、QA、安全和运维团队间的高效协同...