GitLab-MCP-Server 是一个提供与 GitLab 集成功能的 Model Context Protocol (MCP) 服务器。它能够从 GitLab 的特定项目中获取流水线失败信息和合并请求中的问题,并将这些信息提供给 AI 助手,帮助 AI 助手提供更精准的支持。
这个 MCP 服务器利用 GitLab 的 API 为 AI 助手提供以下信息:
借助 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。
get_pipeline_failed_jobs)获取 GitLab 流水线中失败作业的控制台输出,并基于这些信息由 AI 助手进行修正。 输出:
get_review_comments)获取 GitLab 合并请求(MR)中未解决的指摘事项(评论)并进行处理,已解决的评论和未关联文件的评论将被排除。 输出:
get_review_changes)获取 GitLab 合并请求从基础提交(base_sha)到本地仓库当前状态的差异。
from mcp_server import get_pipeline_failed_jobs
jobs = get_pipeline_failed_jobs()
for job in jobs:
print(f"Job Name: {job['name']}")
print(f"Status: {job['status']}")
print(f"Log: {job['log']}\n")
from mcp_server import get_review_comments
comments = get_review_comments()
for comment in comments:
print(f"Author: {comment['author']}")
print(f"Time: {comment['time']}")
print(f"Content: {comment['content']}\n")
from mcp_server import get_review_changes
changes = get_review_changes()
for change in changes:
print(f"File: {change['file']}")
print(f"Type: {change['type']}")
print(f"Differences: {change['differences']}\n")
your_gitlab_api_key:GitLab API 的访问令牌。/path/to/git/repo:本地 Git 仓库的绝对路径。/path/to/this-mcp-server:此 MCP 服务器目录的绝对路径。