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.4.tar.gz (10.3 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.4-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file gitlab-mcp-0.1.4.tar.gz.

File metadata

  • Download URL: gitlab-mcp-0.1.4.tar.gz
  • Upload date:
  • Size: 10.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.10.0 readme-renderer/34.0 requests/2.32.3 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

Hashes for gitlab-mcp-0.1.4.tar.gz
Algorithm Hash digest
SHA256 5332f6d6910438c66467e20da691265978c55db52f8af54f8ba3ff95b35dacc0
MD5 cec1631c062ff3ac40c7a276b75ed569
BLAKE2b-256 214c25016dad2d936a91d74bb0af49e0ea277dd1f3644a6cf16af3ebf5cad239

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gitlab_mcp-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 8.3 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.32.3 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

Hashes for gitlab_mcp-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 07e91940f7cc87bc05c61e56fbc5a14a4ad300c245bf0623b1ee85ea057cbafa
MD5 f2085c4488c60507e7ef3e0b751641d7
BLAKE2b-256 7f2416162d8c6c733e0afd7f653117028930e2892987a6a1e1d918cb73954157

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