article
README
🚀 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 for Desktop中的设置
请在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服务器目录的绝对路径。
微信扫一扫