一个用于Cursor IDE的GitLab操作服务
Project description
GitLab MCP 服务
这是一个基于Python实现的GitLab MCP(Model Control Protocol)服务,用于在Cursor IDE中提供GitLab操作支持。
项目目标
- 提供自然语言到Git操作的转换
- 支持内网GitLab的代码管理
- 实现安全的Git操作控制
- 提供可扩展的CI/CD集成能力
系统架构
用户指令 → Cursor客户端 → MCP服务端 → GitLab API → 执行Git操作
核心模块
-
环境配置模块
- 虚拟环境管理
- 依赖包管理
- 配置文件管理
-
GitLab连接模块
- GitLab API封装
- 认证管理
- 错误处理
-
MCP服务端
- 命令解析
- 操作执行
- 结果返回
-
自然语言处理层
- 指令映射
- 参数解析
- 默认行为
安全控制
- 访问控制:基于白名单的路径控制
- 操作审计:完整的操作日志记录
- 环境隔离:Docker容器化部署
- 权限管理:基于角色的命令限制
安装
你可以通过pip直接安装gitlab-mcp:
pip install gitlab-mcp
或者使用国内镜像源安装:
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gitlab-mcp
快速开始
安装步骤
- 在Cursor IDE中打开设置
- 找到MCP配置部分
- 将以下配置复制到配置文件中:
{
"mcpServers": {
"gitlab": {
"command": "mcp-gitlab",
"env": {
"GITLAB_API_BASE": "http://your-gitlab-server.com",
"GITLAB_ACCESS_TOKEN": "your-access-token"
}
}
}
}
- 修改配置中的
GITLAB_API_BASE和GITLAB_ACCESS_TOKEN为你的GitLab信息
支持的命令
基础Git操作
查看状态- 查看当前仓库状态更新代码- 拉取最新代码提交修改- 提交代码修改推送代码- 推送代码到远程创建分支- 创建并切换到新分支切换分支- 切换到指定分支删除分支- 删除本地分支删除远程分支- 删除远程分支查看日志- 查看提交历史查看文件历史- 查看指定文件的修改历史查看差异- 查看工作区和暂存区的差异暂存修改- 将修改添加到暂存区撤销修改- 撤销工作区的修改
GitLab操作
查看项目提交记录- 查看指定项目的提交记录列出项目分支- 查看项目分支创建合并请求- 创建合并请求查看合并请求- 查看项目的合并请求列表查看项目成员- 查看项目成员列表查看项目标签- 查看项目标签列表创建项目标签- 创建项目标签查看项目文件- 查看项目文件列表查看文件内容- 查看项目文件内容搜索项目- 搜索GitLab项目查看项目统计- 查看项目统计信息查看分支保护- 查看分支保护设置设置分支保护- 设置分支保护规则
获取帮助
如果遇到问题,请检查:
- GitLab服务器地址是否正确
- 访问令牌是否有足够权限
开发指南
发布新版本
-
更新版本号
- 在
setup.py中更新version - 在
CHANGELOG.md中添加新版本说明
- 在
-
构建发布包
# 安装构建工具(使用国内镜像源)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple twine wheel
# 运行发布脚本
./release.sh
- 发布到PyPI
- 确保已安装twine
- 运行发布脚本
- 输入PyPI账号密码
开发环境设置
- 克隆项目
git clone https://github.com/yourusername/gitlab-mcp.git
cd gitlab-mcp
- 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
- 安装开发依赖(使用国内镜像源)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e .
国内镜像源
如果遇到网络问题,可以使用以下国内镜像源:
- 清华大学镜像源(推荐)
https://pypi.tuna.tsinghua.edu.cn/simple
- 阿里云镜像源
https://mirrors.aliyun.com/pypi/simple/
- 中国科技大学镜像源
https://pypi.mirrors.ustc.edu.cn/simple/
- 豆瓣镜像源
https://pypi.douban.com/simple/
使用方法:
# 临时使用
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple package_name
# 永久配置
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
许可证
MIT License
版本更新记录
v0.1.7 (2024-03-21)
- 完善了项目文档
- 优化了包的构建和发布流程
- 更新了依赖包版本
- 修复了已知问题
v0.1.6 及更早版本
- 实现了基础的GitLab操作功能
- 添加了命令行工具支持
- 集成了GitLab API
- 建立了基础项目结构
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cursor_gitlab_mcp-0.1.13-py3-none-any.whl.
File metadata
- Download URL: cursor_gitlab_mcp-0.1.13-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
131e84b8d01940300111964f73ad9df1eca4fec0f36f351e43be0aa20b570798
|
|
| MD5 |
a14cb5cd7382875c109c5e6997e25459
|
|
| BLAKE2b-256 |
c45bf83169e4723bb18c91f4162f7f53746cb9e0c538076443d6f184575abbc8
|