GitLab MCP 服务
这是一个日语句子,翻译成中文如下: 这是一个提供与GitLab协作功能的Model Context Protocol (MCP) 服务器。它从GitLab的特定项目中获取流水线失败信息和合并请求中的问题点,并提供给AI助手。
服务介绍
GitLab-MCP-Server
这是一个提供与GitLab集成功能的Model Context Protocol (MCP) 服务器。它从GitLab特定项目中获取管道失败信息和合并请求中的评论,并将这些信息提供给AI助手。
概述
此MCP服务器利用GitLab API向AI助手提供以下信息:
- GitLab管道中失败作业的控制台输出
- GitLab MR上的未解决评论(意见)
- GitLab MR的变化内容(与本地仓库当前状态之间的差异)
通过使用MCP的功能,AI助手可以直接获取GitLab的信息,从而提供更加准确的支持。
安装
# uvのインストール
$ curl -LsSf https://astral.sh/uv/install.sh | sh
$ cd /path/to/this-mcp-server
# ライブラリのインストール
$ uv sync
准备工作
需要GitLab的访问令牌。
请在GitLab设置 -> 访问令牌处生成访问令牌。
生成时,请确保勾选了read_api权限。
功能
1. 获取并修复管道失败信息 (get_pipeline_failed_jobs)
获取GitLab管道中失败作业的控制台输出。
基于获取到的信息,由AI助手执行修复操作。
输出:
- 失败作业的控制台输出(包括作业名、状态、详细日志等)
2. 获取并处理MR评论 (get_review_comments)
获取并处理GitLab MR上的未解决评论(意见)。
已解决的评论或不关联任何文件的评论将被排除在外。
输出:
- MR上未解决且与文件相关联的意见(包含评论者、时间、评论内容、文件位置等信息)
3. 获取并审查MR变更 (get_review_changes)
获取从GitLab MR的基础提交(base_sha)到当前本地仓库状态之间的差异。
这允许获取与远程差异不同,而是与本地最新状态(包括工作中未提交的更改)之间的差异。
基于获取到的差异进行审查。
输出:
- 从MR基础提交到当前本地状态的所有变更(包括每个文件的变更类型及具体差异)
与AI助手的合作
AI助手(如Claude等)可以调用此MCP服务器提供的如下函数:
get_pipeline_failed_jobs(): 获取管道失败信息get_review_comments(): 获取MR评论get_review_changes(): 获取MR变更
这些函数会自动获取与当前分支相关的MR信息。
在桌面版Claude中的配置
请在claude_desktop_config.json文件中添加如下配置:
{
"mcpServers": {
"gitlab-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/this-mcp-server",
"run",
"main.py"
],
"env": {
"GITLAB_URL": "your_gitlab_url",
"GITLAB_PROJECT_NAME": "gitlab_project_name",
"GITLAB_API_KEY": "your_gitlab_api_key",
"GIT_REPO_PATH": "/path/to/git/repo"
}
}
}
}
在Cursor中的配置
请在项目根目录下的.cursor/mcp.json文件中添加如下配置:
{
"mcpServers": {
"gitlab-mcp": {
"command": "env",
"args": [
"GITLAB_URL=your_gitlab_url",
"GITLAB_PROJECT_NAME=gitlab_project_name",
"GITLAB_API_KEY=your_gitlab_api_key",
"GIT_REPO_PATH=/path/to/git/repo",
"uv",
"--directory",
"/path/to/this-mcp-server",
"run",
"main.py"
]
}
}
}
注意:在上述配置示例中,请适当替换以下值:
your_gitlab_api_key: GitLab API的访问令牌/path/to/git/repo: 本地Git仓库的绝对路径/path/to/this-mcp-server: 此MCP服务器目录的绝对路径