这是一个提供与GitLab集成功能的Model Context Protocol (MCP) 服务器。它可以从GitLab的特定项目中获取流水线失败信息和合并请求的指正事项,并将这些信息提供给AI助手。
本MCP服务器利用GitLab的API为AI助手提供以下信息:
# 安装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 MR从基础提交(base_sha)到本地仓库当前状态的差异,可获取本地最新状态(包括未提交的更改)的差异,而非远程差异,并基于获取的差异进行审查。 输出:
AI助手(如Claude等)可以调用此MCP服务器的以下函数:
get_pipeline_failed_jobs():获取流水线失败信息。get_review_comments():获取MR的指正事项。get_review_changes():获取MR的更改内容。
这些函数会自动获取当前分支相关的MR信息。请在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"
}
}
}
}
⚠️ 重要提示
请将上述设置示例中的以下值进行适当替换:
your_gitlab_api_key:GitLab API的访问令牌。/path/to/git/repo:本地Git仓库的绝对路径。/path/to/this-mcp-server:此MCP服务器目录的绝对路径。