GitLab PR Analysis MCP Server

GitLab PR Analysis MCP Server

将 GitLab 合并请求分析与 Confluence 文档集成,允许用户获取合并请求详情、分析代码变更,并将分析结果存储在 Confluence 页面中。

Category
访问服务器

README

GitLab PR 分析 MCP 服务器

本项目提供一个 MCP (模型控制协议) 服务器,它将 GitLab 合并请求分析与 Confluence 文档集成。 它允许您获取合并请求的详细信息,分析代码更改,并将结果存储在 Confluence 页面中。

功能

  • 从 GitLab 获取合并请求详细信息
  • 分析合并请求中的代码更改
  • 生成详细报告,包括:
    • 基本合并请求信息
    • 代码更改统计
    • 文件类型分析
    • 详细的文件更改
  • 将分析结果存储在 Confluence 中
  • 全面的日志记录,用于调试

前提条件

  • Python 3.8 或更高版本
  • 具有 API 访问权限的 GitLab 帐户
  • Confluence 帐户(可选,用于存储分析结果)
  • 访问所需的 GitLab 项目

安装

  1. 克隆存储库:
git https://github.com/CodeByWaqas/MRConfluenceLinker-mcp-server.git
cd MRConfluenceLinker-mcp-server
  1. 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate  # 在 Windows 上,使用: .venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt

或者

uv add "mcp[cli]" python-gitlab python-dotenv atlassian-python-api requests

配置

  1. 复制示例环境文件:
cp .env.example .env
  1. 使用您的凭据编辑 .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

获取凭据

  • GitLab Token: 在 GitLab 中生成一个具有 api 范围的个人访问令牌
  • Confluence Token: 在您的 Atlassian 帐户设置中生成一个 API 令牌

用法

  1. 启动 MCP 服务器:
python src/MRConfluenceLinker-mcp-server/server.py

或者

使用 Claude Desktop 设置

# claude_desktop_config.json
# 可以通过以下方式找到位置:
# Claude -> 设置 -> 开发者 -> 编辑配置
{
  "mcpServers": {
      "MRConfluenceLinker-mcp-server": {
          "command": "uv",
          "args": [
              "--directory",
              "/<绝对路径到文件夹>/MRConfluenceLinker-mcp-server/src/MRConfluenceLinker-mcp-server",
              "run",
              "server.py"
          ]
      }
  }
}

2. 服务器将监听来自 stdin/stdout 的命令。 您可以使用如下提示与之交互:

你能从项目“my-project”中获取合并请求 #1 的详细信息吗? 你能分析项目“my-project”中合并请求 #1 的代码更改吗? 你能将项目“my-project”中合并请求 #1 的摘要存储在 Confluence 中吗?


## 可用工具

服务器提供以下工具:

1. `fetch_mr_details`: 获取特定合并请求或所有合并请求的详细信息
   - 参数:
     - `project_id`: GitLab 项目 ID
     - `mr_id` (可选): 特定合并请求 ID

2. `analyze_code_changes`: 分析合并请求中的代码更改
   - 参数:
     - `project_id`: GitLab 项目 ID
     - `mr_id`: 要分析的合并请求 ID

3. `store_in_confluence`: 将分析结果存储在 Confluence 中
   - 参数:
     - `project_id`: GitLab 项目 ID
     - `mr_id` (可选): 特定合并请求 ID
     - `analysis` (可选): 要存储的分析结果

## 日志记录

服务器在 `mcp_server.log` 中生成详细日志并输出到 stderr。 这有助于调试以下问题:
- GitLab API 访问
- Confluence 集成
- 代码分析
- 页面创建和更新

## 错误处理

服务器包括全面的错误处理,用于:
- 缺少环境变量
- API 身份验证问题
- 网络连接问题
- 无效的项目或合并请求 ID
- Confluence 权限问题

## 贡献

1. Fork 存储库
2. 创建一个功能分支
3. 提交您的更改
4. 推送到分支
5. 创建一个 Pull Request

## 许可证

本项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

## 支持

如需支持,请[创建一个 issue](https://github.com/CodeByWaqas/MRConfluenceLinker-mcp-server/issues) 或联系维护人员。

## 项目结构

MRConfluenceLinker-mcp-server/ ├── src/ # 源代码目录 │ └── MRConfluenceLinker-mcp-server/ # 主服务器包 │ ├── resources/ # 资源模块 │ │ ├── init.py │ │ ├── client.py # 客户端实现 / GitLab PR 集成 │ ├── server.py # 主服务器实现 │ └── mcp_server.log # 服务器日志 ├── pycache/ # Python 缓存文件 ├── .git/ # Git 存储库 ├── .gitignore # Git 忽略规则 ├── CONTRIBUTING.md # 贡献指南 ├── LICENSE # 项目许可证 ├── README.md # 项目文档 ├── pyproject.toml # Python 项目配置 ├── requirements.txt # 项目依赖 └── uv.lock # 依赖锁定文件


### 关键组件

- **源代码**: 位于 `src/MRConfluenceLinker-mcp-server/` 目录中
  - `server.py`: 主 MCP 服务器实现
  - `resources/client.py`: 客户端实现,包含 GitLab PR 集成

- **配置文件**:
  - `requirements.txt`: Python 包依赖
  - `pyproject.toml`: 项目元数据和构建配置
  - `uv.lock`: 锁定的依赖版本
  - `.env.example`: 环境变量模板

- **文档**:
  - `README.md`: 项目概述和设置说明
  - `CONTRIBUTING.md`: 贡献指南
  - `LICENSE`: 项目许可证

- **开发**:
  - `__pycache__/`: Python 缓存文件
  - `mcp_server.log`: 用于调试的服务器日志

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选