
GitLab PR Analysis MCP Server

2025.03.22
0
PythonGitLab 集成Confluence 集成代码分析文档管理交流协作开发效率
MRConfluenceLinker-mcp-server 是一个基于 MCP(Model Control Protocol)的服务,用于将 GitLab 的合并请求分析与 Confluence 文档集成。它能够获取合并请求的详细信息,分析代码变更,并将结果存储在 Confluence 页面中。该服务适用于开发团队在代码审查和文档管理方面的需求。
View on GitHub
Overview
基本能力
产品定位
MRConfluenceLinker-mcp-server 是一个集成 GitLab 合并请求分析与 Confluence 文档管理的 MCP 服务,旨在帮助开发团队更高效地进行代码审查和文档管理。
核心功能
- 从 GitLab 获取合并请求的详细信息
- 分析合并请求中的代码变更
- 生成详细的报告,包括:
- 基本合并请求信息
- 代码变更统计
- 文件类型分析
- 详细文件变更
- 将分析结果存储在 Confluence 中
- 提供全面的日志记录用于调试
适用场景
- 开发团队需要自动化代码审查和文档记录
- 项目管理者需要跟踪和分析代码变更
- 团队需要将代码审查结果与文档系统集成
工具列表
fetch_mr_details
: 获取特定合并请求或所有合并请求的详细信息-
参数:
project_id
: GitLab 项目 IDmr_id
(可选): 特定合并请求 ID
-
analyze_code_changes
: 分析合并请求中的代码变更 -
参数:
project_id
: GitLab 项目 IDmr_id
: 要分析的合并请求 ID
-
store_in_confluence
: 将分析结果存储在 Confluence 中 - 参数:
project_id
: GitLab 项目 IDmr_id
(可选): 特定合并请求 IDanalysis
(可选): 要存储的分析结果
常见问题解答
- GitLab API 访问问题: 确保 GitLab 令牌具有
api
范围 - Confluence 集成问题: 检查 Atlassian 账户设置中的 API 令牌
- 网络连接问题: 确保服务器可以访问 GitLab 和 Confluence 的 API
- 无效的项目或合并请求 ID: 确认项目 ID 和合并请求 ID 是否正确
- Confluence 权限问题: 确保账户有权限在指定空间创建和更新页面
使用教程
使用依赖
- Python 3.8 或更高版本
- 具有 API 访问权限的 GitLab 账户
- Confluence 账户(可选,用于存储分析结果)
- 访问所需的 GitLab 项目
安装教程
- 克隆仓库:
git clone https://github.com/CodeByWaqas/MRConfluenceLinker-mcp-server.git
cd MRConfluenceLinker-mcp-server
- 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate # Windows 上使用: .venv\Scripts\activate
- 安装依赖:
pip install -r requirements.txt
或
uv add "mcp[cli]" python-gitlab python-dotenv atlassian-python-api requests
配置
- 复制示例环境文件:
cp .env.example .env
- 编辑
.env
文件,填入您的凭证:
GITLAB_URL=https://gitlab.com
GITLAB_TOKEN=your_gitlab_token
GITLAB_PROJECT_ID=your_project_id
# 可选的 Confluence 集成
CONFLUENCE_URL=your_confluence_url
CONFLUENCE_USERNAME=your_username
CONFLUENCE_TOKEN=your_confluence_token
CONFLUENCE_SPACE=your_space_key
调试方式
- 启动 MCP 服务器:
python src/MRConfluenceLinker-mcp-server/server.py
- 服务器将通过 stdin/stdout 监听命令。您可以使用以下提示进行交互:
Can you fetch details for merge request #1 from project "my-project"?
Can you analyze code changes in merge request #1 from project "my-project"?
Can you store a summary of merge request #1 from project "my-project" in Confluence?
- 查看日志文件
mcp_server.log
以获取调试信息。