使用说明
项目简介
GitLab MCP Server 是一个基于 Model Context Protocol (MCP) 构建的应用后端,专注于为AI助手提供GitLab项目相关的上下文信息。通过集成 GitLab API 和 Git 本地仓库,该服务器能够提取并结构化 GitLab 项目中的 CI/CD 流水线失败信息、合并请求 (MR) 的评论以及代码变更内容,从而使 AI 助手能够更好地理解代码仓库的当前状态和开发流程中的问题,辅助开发者进行代码开发、问题排查和代码审查等工作。
主要功能点
- 获取流水线失败信息: 当 GitLab CI/CD 流水线执行失败时,AI 助手可以通过此功能获取失败 Job 的详细日志,帮助开发者快速定位错误原因。
- 获取MR评论: AI 助手可以获取指定合并请求中未解决的代码评审评论,帮助开发者关注需要修复的代码问题和改进建议。
- 获取MR代码变更: AI 助手可以获取合并请求的代码变更内容,包括新增、修改和删除的文件及其具体diff信息,辅助进行代码审查和理解代码改动。
安装步骤
- 安装 uv: 如果你的系统中没有 'uv',首先需要安装它。打开终端并执行以下命令:
curl -LsSf https://astral.sh/uv/install.sh | sh - 下载仓库代码: 将 'gitlab-mcp-server' 仓库克隆到本地:
git clone https://github.com/owayo/gitlab-mcp-server.git cd gitlab-mcp-server - 安装依赖库: 使用 'uv' 安装项目所需的 Python 库:
uv sync - 准备 GitLab Access Token: 访问你的 GitLab 账号,在 "Settings" -> "Access Tokens" 中创建一个新的 Access Token。创建时,请确保勾选 "read_api" 权限。
服务器配置
为了让 MCP 客户端(如 Claude 或 Cursor)连接到 GitLab MCP Server,你需要配置客户端的 MCP Server 设置。以下是针对 Claude for Desktop 和 Cursor 的配置示例,你需要根据你的实际环境进行调整。
Claude for Desktop 配置 (claude_desktop_config.json):
{ "mcpServers": { "gitlab-mcp": { "command": "uv", "args": [ "--directory", "/path/to/this-mcp-server", // 替换为你的 gitlab-mcp-server 仓库的绝对路径 "run", "main.py" ], "env": { "GITLAB_URL": "your_gitlab_url", // 替换为你的 GitLab 实例 URL,例如 "https://gitlab.example.com" "GITLAB_PROJECT_NAME": "gitlab_project_name", // 替换为你的 GitLab 项目名称或项目ID "GITLAB_API_KEY": "your_gitlab_api_key", // 替换为你之前创建的 GitLab Access Token "GIT_REPO_PATH": "/path/to/git/repo" // 替换为你的本地 Git 仓库的绝对路径 } } } }
Cursor 配置 (.cursor/mcp.json):
{ "mcpServers": { "gitlab-mcp": { "command": "env", "args": [ "GITLAB_URL=your_gitlab_url", // 替换为你的 GitLab 实例 URL,例如 "https://gitlab.example.com" "GITLAB_PROJECT_NAME=gitlab_project_name", // 替换为你的 GitLab 项目名称或项目ID "GITLAB_API_KEY=your_gitlab_api_key", // 替换为你之前创建的 GitLab Access Token "GIT_REPO_PATH=/path/to/git/repo", // 替换为你的本地 Git 仓库的绝对路径 "uv", "--directory", "/path/to/this-mcp-server", // 替换为你的 gitlab-mcp-server 仓库的绝对路径 "run", "main.py" ] } } }
配置参数说明:
- 'server name': 服务器名称,例如 '"gitlab-mcp"',在客户端中引用此名称。
- 'command': 启动服务器的命令,这里使用 'uv run main.py',表示使用 'uv' 运行 'main.py' 文件。
- 'args': 传递给 'command' 的参数,包括 '--directory' 指定工作目录为 'gitlab-mcp-server' 仓库目录,以及 'run main.py' 实际执行的命令。
- 'env': 设置环境变量,用于配置 GitLab 连接信息和本地 Git 仓库路径。
- 'GITLAB_URL': 你的 GitLab 实例的 URL。
- 'GITLAB_PROJECT_NAME': 你想要操作的 GitLab 项目的名称或 ID。
- 'GITLAB_API_KEY': 你创建的 GitLab Access Token。
- 'GIT_REPO_PATH': 你本地 Git 仓库的绝对路径,需要与 GitLab 项目对应,并且包含最新的代码。
注意: 请务必将上述配置文件中的占位符替换为你实际的 GitLab URL、项目名称、API Key 以及本地仓库和服务器代码的路径。
基本使用方法
配置完成后,你的 MCP 客户端(如 Claude 或 Cursor)应该能够连接到 GitLab MCP Server。你可以指示 AI 助手调用以下工具函数来获取 GitLab 项目信息:
- 'get_pipeline_failed_jobs()': 获取当前分支最新流水线中失败 Job 的信息。
- 'get_review_comments()': 获取当前分支 MR 中未解决的评审评论。
- 'get_review_changes()': 获取当前分支 MR 的代码变更内容。
例如,你可以向 Claude 提问: "请帮我查看一下当前分支的流水线失败信息" 或 "获取 MR 的评审评论"。 Claude 将会调用相应的工具函数,并利用 GitLab MCP Server 返回的数据来回答你的问题或执行相关操作。
测试服务器:
你可以通过以下命令在终端中测试服务器的功能 (需要在 'gitlab-mcp-server' 目录下执行):
- 获取当前分支名: 'python main.py test branch'
- 获取当前分支 MR ID: 'python main.py test mr-id'
- 获取流水线失败信息: 'python main.py test failed-jobs'
- 获取 MR 评审评论: 'python main.py test review-comments'
- 获取 MR 代码变更: 'python main.py test review-changes'
这些测试命令可以帮助你验证服务器是否正确配置并能正常工作。
信息
分类
开发者工具