Skip to main content

一个用于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操作

核心模块

  1. 环境配置模块

    • 虚拟环境管理
    • 依赖包管理
    • 配置文件管理
  2. GitLab连接模块

    • GitLab API封装
    • 认证管理
    • 错误处理
  3. MCP服务端

    • 命令解析
    • 操作执行
    • 结果返回
  4. 自然语言处理层

    • 指令映射
    • 参数解析
    • 默认行为

安全控制

  • 访问控制:基于白名单的路径控制
  • 操作审计:完整的操作日志记录
  • 环境隔离:Docker容器化部署
  • 权限管理:基于角色的命令限制

快速开始

安装步骤

  1. 在Cursor IDE中打开设置
  2. 找到MCP配置部分
  3. 将以下配置复制到配置文件中:
{
  "mcpServers": {
    "gitlab": {
      "command": "mcp-gitlab",
      "env": {
        "GITLAB_API_BASE": "http://your-gitlab-server.com",
        "GITLAB_ACCESS_TOKEN": "your-access-token"
      }
    }
  }
}
  1. 修改配置中的GITLAB_API_BASEGITLAB_ACCESS_TOKEN为你的GitLab信息

支持的命令

基础Git操作

  • 查看状态 - 查看当前仓库状态
  • 更新代码 - 拉取最新代码
  • 提交修改 - 提交代码修改
  • 推送代码 - 推送代码到远程
  • 创建分支 - 创建并切换到新分支
  • 切换分支 - 切换到指定分支
  • 删除分支 - 删除本地分支
  • 删除远程分支 - 删除远程分支
  • 查看日志 - 查看提交历史
  • 查看文件历史 - 查看指定文件的修改历史
  • 查看差异 - 查看工作区和暂存区的差异
  • 暂存修改 - 将修改添加到暂存区
  • 撤销修改 - 撤销工作区的修改

GitLab操作

  • 查看项目提交记录 - 查看指定项目的提交记录
  • 列出项目分支 - 查看项目分支
  • 创建合并请求 - 创建合并请求
  • 查看合并请求 - 查看项目的合并请求列表
  • 查看项目成员 - 查看项目成员列表
  • 查看项目标签 - 查看项目标签列表
  • 创建项目标签 - 创建项目标签
  • 查看项目文件 - 查看项目文件列表
  • 查看文件内容 - 查看项目文件内容
  • 搜索项目 - 搜索GitLab项目
  • 查看项目统计 - 查看项目统计信息
  • 查看分支保护 - 查看分支保护设置
  • 设置分支保护 - 设置分支保护规则

获取帮助

如果遇到问题,请检查:

  1. GitLab服务器地址是否正确
  2. 访问令牌是否有足够权限

开发指南

发布新版本

  1. 更新版本号

    • setup.py中更新version
    • CHANGELOG.md中添加新版本说明
  2. 构建发布包

# 安装构建工具(使用国内镜像源)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple twine wheel

# 运行发布脚本
./release.sh
  1. 发布到PyPI
    • 确保已安装twine
    • 运行发布脚本
    • 输入PyPI账号密码

开发环境设置

  1. 克隆项目
git clone https://github.com/yourusername/gitlab-mcp.git
cd gitlab-mcp
  1. 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
  1. 安装开发依赖(使用国内镜像源)
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e .

国内镜像源

如果遇到网络问题,可以使用以下国内镜像源:

  1. 清华大学镜像源(推荐)
https://pypi.tuna.tsinghua.edu.cn/simple
  1. 阿里云镜像源
https://mirrors.aliyun.com/pypi/simple/
  1. 中国科技大学镜像源
https://pypi.mirrors.ustc.edu.cn/simple/
  1. 豆瓣镜像源
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.6.tar.gz (13.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitlab_mcp-0.1.6-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file gitlab_mcp-0.1.6.tar.gz.

File metadata

  • Download URL: gitlab_mcp-0.1.6.tar.gz
  • Upload date:
  • Size: 13.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for gitlab_mcp-0.1.6.tar.gz
Algorithm Hash digest
SHA256 2c76fefd6892b8ef02516fa91301df00d2ffe772270833cb3a445c37e1f436da
MD5 1757dc6caa520016f223d5d8212314da
BLAKE2b-256 9cd5d467a218ce563d5eff72a6466f6f6d4c4677591a3814bd5d9d83dbd2520d

See more details on using hashes here.

File details

Details for the file gitlab_mcp-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: gitlab_mcp-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 11.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for gitlab_mcp-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 6de0d4b61db7a8e9938c4e26e6edda1fb47ea6c4a749476d6d747867e8b626ca
MD5 1c175c91171c70f2d748bfbbf4eb3de8
BLAKE2b-256 096d3d6adc248e908f01f6419b5576a02c266fe78ae595c2ffe890114af8cfc6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page