项目简介
这是一个基于 Model Context Protocol (MCP) 构建的服务端应用,旨在通过标准化的接口,让支持 MCP 协议的大语言模型(LLM)客户端能够与 GitLab 代码托管平台进行交互。它将 GitLab 的各种操作(如仓库、分支、文件、问题、合并请求、CI/CD 作业、群组、搜索等)封装为 MCP 工具,供 LLM 调用。
主要功能点
- 仓库管理: 创建仓库,查看仓库文件树。
- 分支操作: 创建、列出、获取、删除分支,保护/取消保护分支,删除已合并分支,获取默认分支。
- 文件操作: 创建、获取、更新、删除仓库文件,获取文件 Blame 信息。
- 问题管理: 创建、更新、列出、获取、关闭、删除、移动问题,添加评论,列出评论。
- 合并请求操作: 创建、列出、获取、合并、更新、删除合并请求,获取合并请求变更,添加评论。
- CI/CD 操作: 获取 CI/CD 作业日志,获取作业失败详情。
- 群组操作: 列出、获取群组,按项目命名空间获取群组。
- 搜索工具: 在全局、群组或项目中搜索资源(如项目、文件内容)。
安装步骤
- 克隆仓库:
git clone https://github.com/Adit-999/gitlab-mcp.git cd gitlab-mcp - 安装依赖 (推荐使用 uv):
或使用 pip:uv sync# 创建并激活虚拟环境 python -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate # 安装依赖 pip install -e .
服务器配置
本 MCP 服务端需要配置 GitLab 的个人访问令牌 ('GITLAB_PERSONAL_ACCESS_TOKEN') 和 API 地址 ('GITLAB_API_URL')。这些配置通常通过 MCP 客户端的配置界面或文件进行。
一个典型的 MCP 客户端配置(例如 JSON 格式)会包含如下结构,您需要在其中指定该 GitLab MCP 服务端的启动方式和环境变量:
{ "mcpServers": { "gitlab-mcp": { // 服务器名称,您可以自定义 "command": "uv", // 或指向您的 Python 环境中的 uv/python 路径 "args": [ "run", "--with", "mcp[cli]", "mcp", "run", "/path/to/gitlab-mcp/server.py" // 指向您克隆的 gitlab-mcp 仓库下的 server.py 文件路径 ], "env": { "GITLAB_PERSONAL_ACCESS_TOKEN": "您的 GitLab 个人访问令牌", // 替换为您的实际令牌 "GITLAB_API_URL": "https://gitlab.com" // 替换为您的 GitLab 实例 API 地址,默认是 gitlab.com } // 其他 MCP 服务器配置项(如 transports)可能也需要根据客户端要求添加 } } }
注意:
- 请确保 'GITLAB_PERSONAL_ACCESS_TOKEN' 具有执行所需操作(如创建、读取、更新、删除等)的权限。
- '/path/to/gitlab-mcp/server.py' 需要替换为您实际的项目路径。
- 您也可以通过在项目根目录创建 '.env' 文件来设置这些环境变量,但通过 MCP 客户端配置通常更便于管理。
基本使用方法
- 完成安装和配置: 按照上述步骤安装项目并配置您的 MCP 客户端,使其能启动并连接到 GitLab MCP 服务端,并设置必要的 GitLab 认证信息。
- 启动 MCP 客户端: 启动您的 LLM 客户端(如支持 MCP 的 Claude Desktop)。客户端会自动发现并加载配置好的 MCP 服务端及其提供的工具。
- 通过 LLM 调用工具: 一旦客户端连接成功,您就可以通过与 LLM 对话,指示它使用可用的 GitLab 工具来执行任务,例如:“列出项目 'your-namespace/your-project' 中的所有问题”、“在项目 'your-namespace/your-project' 的 'main' 分支创建一个名为 'new_feature' 的新分支”。LLM 会解析您的请求并使用对应的 MCP 工具完成操作。
信息
分类
开发者工具