一个用于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 Distribution
cursor-gitlab-mcp-0.1.9.tar.gz
(13.2 kB
view details)
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.9.tar.gz.
File metadata
- Download URL: cursor-gitlab-mcp-0.1.9.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2608995c463b0417ff0ae99d87cc409898f9d63b69d6b1b903d097faab7ea073
|
|
| MD5 |
c51ded8dc19e251df778cfe1fb06b63f
|
|
| BLAKE2b-256 |
c7b93aec4bc44a1cbb0d1c447924e4ddb759fea898fa13545fc987de02df426d
|
File details
Details for the file cursor_gitlab_mcp-0.1.9-py3-none-any.whl.
File metadata
- Download URL: cursor_gitlab_mcp-0.1.9-py3-none-any.whl
- Upload date:
- Size: 13.2 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 |
27ab15483d3f2d4b58587146eadb3062369a7e864094dc6d9d423ef5c3c244bc
|
|
| MD5 |
7378ee7367f87cb3020ced278914c14c
|
|
| BLAKE2b-256 |
6e8cfa8342dbad3875c6c6a1c2efe95c7928efc5b6858e3e1e4c3aaf99651e6d
|