当前位置: 首页 > article >正文

Cursor + MCP,实现自然语言操作 GitLab 仓库

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

极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有:

  • 极狐GitLab 中文文档
  • 极狐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/gitlab 。

相关文章:

Cursor + MCP,实现自然语言操作 GitLab 仓库

本分分享如何使用 cursor mcp 来操作极狐GitLab 仓库,体验用自然语言在不接触极狐GitLab 的情况下来完成一些仓库操作。 极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitL…...

Vue el-from的el-form-item v-for循环表单如何校验rules(一)

实际业务需求场景: 新增或编辑页面(基础信息表单,一个数据列表的表单),数据列表里面的表单数是动态添加的。数据可新增、可删除,在表单保存前,常常需要做表单必填项的校验,校验通过以…...

C#集合List<T>与HashSet<T>的区别

在C#中,List和HashSet都是用于存储元素的集合,但它们在内部实现、用途、性能特性以及使用场景上存在一些关键区别。 内部实现 List:基于数组实现的,可以包含重复的元素,并且元素是按照添加的顺序存储的。 HashSet&…...

【Reading Notes】(8.3)Favorite Articles from 2025 March

【March】 雷军一度登顶中国首富,太厉害了(2025年03月02日) 早盘,小米港股一路高歌猛进,暴涨4%,股价直接飙到52港元的历史新高。这一波猛如虎的操作,直接把雷军的身家拉到了2980亿元&#xff0c…...

Spring Boot 项目里设置默认国区时区,Jave中Date时区配置

在 Spring Boot 项目里设置国区时区(也就是中国标准时间,即 Asia/Shanghai),可通过以下几种方式实现: 方式一:在application.properties或application.yml里设置 application.properties properties sp…...

从PDF到播客:MIT开发的超越NotebookLM的工具

NotebookLM是谷歌推出的更具创意的AI产品之一,几个月前刚刚推出。 许多人对它的能力感到惊叹——尤其是将长文本转化为两位播客主持人之间有趣对话的功能。 NotebookLM提供的不仅仅是这些,还包括聊天(问答)甚至生成思维导图。 如果你还没有尝试过NotebookLM,我强烈建议…...

Kotlin协程Semaphore withPermit约束并发任务数量

Kotlin协程Semaphore withPermit约束并发任务数量 import kotlinx.coroutines.* import kotlinx.coroutines.sync.Semaphore import kotlinx.coroutines.sync.withPermit import kotlinx.coroutines.launch import kotlinx.coroutines.runBlockingfun main() {val permits 1 /…...

Redis的下载安装和使用(超详细)

目录 一、所需的安装包资源小编放下述网盘了,提取码:wshf 二、双击打开文件redis.desktop.manager.exe 三、点击next后,再点击i agree 四、点击箭头指向,选择安装路径,然后点击Install进行安装 五、安装完后依次点…...

Springboot 学习 之 logback-spring.xml 日志打印

文章目录 1. property2. springProperty3. appender4. logger4.1. 通过包路径控制日志4.2. 通过类名控制日志4.3. 按自定义 Logger 名称控制日志 5. root6. springProfile SpringBoot 项目中可以通过自定义 logback-spring.xml 中各项配置,实现日志的打印控制 1. p…...

从游戏显卡到AI引擎:NVIDIA CUDA如何重构计算世界的底层逻辑

当GPU不再是"显卡" 2025年,当ChatGPT-5的万亿参数模型在0.1秒内完成推理时,人们很少意识到,支撑这场智能革命的不仅是算法突破,更是一场持续20年的架构革命。NVIDIA CUDA技术,这个最初被游戏玩家视为"…...

无线网络入侵检测系统实战 | 基于React+Python的可视化安全平台开发详解

随着无线网络的普及,网络攻击风险也日益严峻。本项目旨在构建一个实时监测、智能识别、高效防护的无线网络安全平台,通过结合前后端技术与安全算法,实现对常见攻击行为的有效监控和防御。 一、项目简介与功能目的 本系统是一款基于 React 前…...

前端 实现文字打字效果(仿AI)

DOM结构 <scroll-view class"scroll-view" scroll-y"true" :scroll-top"scrollTop" :style"{height: contentHeight px}"scroll-with-animation show-scrollbar"false" id"report-scroll-view"><view …...

C#核心(25)练手小项目:飞机大战

简介 通过核心部分的学习,我们已经可以做一些复杂的项目了。 我们这次会用我们学到的面向对象知识写一个飞机大战(性能可能不太好,因为毕竟是控制台项目) 如果你有所不懂,建议多查多思考多问。 因为这次的项目比较难,博主会稍微讲仔细一点。 基类设计:GameObject 抽…...

[经验总结]Linux双机双网卡Keepalived高可用配置及验证细节

1. 前言 这种配置需求比较少见&#xff0c;在网上也很少有相关文章&#xff0c;于是记录在此&#xff0c;供有需要的朋友参考。 本篇重点介绍配置的关键点&#xff0c;基础部分简单提及&#xff0c;不赘述。 2. 需求描述 如上图&#xff0c;即给两个主机配置两对高可用主从配…...

Go语言入门到入土——三、处理并返回异常

Go语言入门到入土——三、处理并返回异常 文章目录 Go语言入门到入土——三、处理并返回异常1. 在greetings.go中添加异常处理代码2. 在hello.go中添加日志记录代码3. 运行 1. 在greetings.go中添加异常处理代码 处理空输入的异常&#xff0c;代码如下&#xff1a; package g…...

2025.04.17【Dendrogram】生信数据可视化:Dendrogram图表详解

Dendrogram customization Go further with ggraph: edge style, general layout, node features, adding labels, and more. Customized circular dendrogram Learn how to build a circular dendrogram with proper labels. 文章目录 Dendrogram customizationCustomized c…...

Linux下的网络管理

一、ipv4原理 网络接口是指网络中的计算机或网络设备与其他设备实现通讯的进出口&#xff0c;一般是指计算机的网络接口即网卡设备 从RHEL7开始引入了一种新的“一致网络设备命名”的方式为网络接口命名&#xff0c;该方式可以根据固件、设备拓扑、设备类型和位置信息分配固…...

GPT-4o Image Generation Capabilities: An Empirical Study

GPT-4o 图像生成能力:一项实证研究 目录 介绍研究背景方法论文本到图像生成图像到图像转换图像到 3D 能力主要优势局限性与挑战对比性能影响与未来方向结论介绍 近年来,图像生成领域发生了巨大的变化,从生成对抗网络 (GAN) 发展到扩散模型,再到可以处理多种模态的统一生成架…...

Zookeeper介绍与安装配置

1.综述 1.1.Zookeeper介绍 Zookeeper 是一个分布式协调服务&#xff0c;由 Apache 开发&#xff0c;主要用于管理分布式应用中的配置信息、命名服务、分布式同步和组服务。它通过简单的接口提供高性能、高可用性和严格的顺序访问控制&#xff0c;广泛应用于分布式系统的协调与…...

提示词阶段总结

经过这些天的提示词学习&#xff0c;总结了一下提示词示例&#xff0c;可以直接拿来使用&#xff0c;规范大模型的输出。 CoT&#xff08;适用于算术题&#xff09; {问题}&#xff0c;让我们一步一步思考。 Auto-CoT&#xff08;自动思维链&#xff0c;适合回答多个问题一起…...

实验五 内存管理实验

实验五 内存管理实验 一、实验目的 1、了解操作系统动态分区存储管理过程和方法。 2、掌握动态分区存储管理的主要数据结构--空闲表区。 3、加深理解动态分区存储管理中内存的分配和回收。 4、掌握空闲区表中空闲区3种不同放置策略的基本思想和实现过程。 5、通过模拟程…...

用Webpack 基础配置快速搭建项目开发环境

Webpack 是一个现代 JavaScript 应用程序的静态模块打包工具&#xff0c;但是Webpack有大量的配置项&#xff0c;对新手不太友好&#xff0c;但是我们可以根据webpack-cli的init命令根据项目需求快速生成webpack的配置文件&#xff0c;本文将手把手教你如何用 Webpack 和 npm 快…...

Axios 介绍及使用指南

本文将基于 Axios 原理&#xff0c;安装及封装方面展开描述&#xff0c;话不多说&#xff0c;现在发车&#xff01; 一、原理 Axios 中文文档&#xff1a;起步 | Axios中文文档 | Axios中文网 赛前科普&#xff1a; 下文将涉及到三个关键词&#xff1a;Axios&#xff0c;Ajax…...

接口自动化测试(二)

一、接口测试流程&#xff1a;接口文档、用例编写 拿到接口文档——编写接口用例以及评审——进行接口测试——工具/自动化框架进行自动化用例覆盖(70%)——输出测试报告 自动化的目的一般是为了回归 第一件事情&#xff1a;理解需求&#xff0c;学会看接口文档 只需要找到我…...

Arduino+ESP826601s模块连接阿里云并实现温湿度数据上报

ArduinoESP826601s模块连接阿里云并实现温湿度数据上报 一、前言二、准备工作三、程序代码1. Arduino的程序2. ESP826601的程序3. 上面程序需要注意的地方 四、运行结果五、结束语 一、前言 看完我这三篇文章&#xff0c;相信各位朋友对于阿里云物联网平台的使用都有了一定的认…...

本地生活服务信息分类信息系统

最近在找分类信息系统&#xff0c;看了很多市面上常见的分类信息系统&#xff1a; 1&#xff0c;私集分类信息系统 2&#xff0c;火鸟分类信息系统 3&#xff0c;觅分类信息系统 4&#xff0c;框分类信息系统 5&#xff0c;蚂蚁分类信息系统 发现很多分类信息系统&#xff0c;…...

React Native 0.79 稳定版发布,更快的工具、更多改进

React Native 0.79 已发布。此版本在多个方面进行了性能改进&#xff0c;并修复了一些漏洞。首先&#xff0c;得益于延迟哈希技术&#xff0c;Metro 的启动速度变快了&#xff0c;并且对包导出提供了稳定支持。由于 JS 包压缩方式的改变等原因&#xff0c;Android 的启动时间也…...

【Dify应用】连接数据库生成Echarts图表

这里写自定义目录标题 需求文档内容测试环境实际效果工作流内容工具安装B工作流详解A工作流详解优化建议 需求 甲方要求。根据自然语言生成对应Echarts图表&#xff0c;并且数据来源于私有数据库。 文档内容 本文档内容主要展示使用Dify&#xff08;本地源码&#xff09;进行…...

无刷电机槽数相同、转子极数不同的核心区别

一、基础原理差异 无刷电机的核心参数: 槽数(定子槽数,记为 ( Z )):定子铁芯上的绕组槽数量,决定绕组布局。极数(转子磁极数,记为 ( 2p )):转子上的永磁体磁极对数(总极数为 ( 2p ),如 ( p=4 ) 表示 8 极)。核心关系:槽极配合(( Z/2p ))决定电机电磁结构,相同…...

RAG 实战|用 StarRocks + DeepSeek 构建智能问答与企业知识库

文章作者&#xff1a; 石强&#xff0c;镜舟科技解决方案架构师 赵恒&#xff0c;StarRocks TSC Member &#x1f449; 加入 StarRocks x AI 技术讨论社区 https://mp.weixin.qq.com/s/61WKxjHiB-pIwdItbRPnPA RAG 和向量索引简介 RAG&#xff08;Retrieval-Augmented Gen…...