一个用于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容器化部署
- 权限管理:基于角色的命令限制
快速开始
安装步骤
- 在Cursor IDE中打开设置
- 找到MCP配置部分
- 将以下配置复制到配置文件中:
{
"name": "gitlab-mcp",
"version": "0.1.0",
"description": "GitLab MCP service for Cursor IDE",
"config": {
"gitlab_url": "http://your-gitlab-server.com",
"gitlab_token": "your-access-token"
}
}
- 修改配置中的
gitlab_url和gitlab_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
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
gitlab-mcp-0.1.0.tar.gz
(9.7 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 gitlab-mcp-0.1.0.tar.gz.
File metadata
- Download URL: gitlab-mcp-0.1.0.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.20 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dc26139c00465df022fc6514fb25ea997e78bb3de09a5d0f15e3cc28b75fd87
|
|
| MD5 |
a991cca158c371559cd9427bcc100c4f
|
|
| BLAKE2b-256 |
b9dc0aa41615af8c52968daa9ae538173b5dd8a95afc42f8722d846d5b612389
|
File details
Details for the file gitlab_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: gitlab_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/1.0.0 urllib3/1.26.20 tqdm/4.64.1 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94ef3f68c9f32133ab7613bf170cc66e871d615d46cb751c23de6f9ae2b7df16
|
|
| MD5 |
7441b547cc656bdd3c641eadb92e953d
|
|
| BLAKE2b-256 |
f9a8a50951adf73f6349b075a79df20a135f5de566130391efc882e8d62b27b3
|