代码合并请求连接器服务端

@CodeByWaqas/MRConfluenceLinker-mcp-server
1 Stars 32 次浏览 CodeByWaqas 更新于 2026-08-23

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

该服务暂未提供标准配置,请参考 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  # On Windows, use: .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

# Optional Confluence integration
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
# Can find location through:
# Claude -> Settings -> Developer -> Edit Config
{
  "mcpServers": {
      "MRConfluenceLinker-mcp-server": {
          "command": "uv",
          "args": [
              "--directory",
              "/<Absolute-path-to-folder>/MRConfluenceLinker-mcp-server/src/MRConfluenceLinker-mcp-server",
              "run",
              "server.py"
          ]
      }
  }
}

2. The server will listen for commands through stdin/stdout. You can interact with it using prompts like:

你能从项目"my-project"中获取合并请求#1的详情吗?
你能分析项目"my-project"中合并请求#1的代码变更吗?
你能将项目"my-project"中合并请求#1的摘要存储到Confluence吗?


## Available Tools

The server provides the following tools:

1. `fetch_mr_details`: Fetches details of a specific merge request or all merge requests
   - Parameters:
     - `project_id`: The GitLab project ID
     - `mr_id` (optional): Specific merge request ID

2. `analyze_code_changes`: Analyzes code changes in a merge request
   - Parameters:
     - `project_id`: The GitLab project ID
     - `mr_id`: The merge request ID to analyze

3. `store_in_confluence`: Stores analysis results in Confluence
   - Parameters:
     - `project_id`: The GitLab project ID
     - `mr_id` (optional): Specific merge request ID
     - `analysis` (optional): Analysis results to store

## Logging

The server generates detailed logs in `mcp_server.log` and outputs to stderr. This helps in debugging issues with:
- GitLab API access
- Confluence integration
- Code analysis
- Page creation and updates

## Error Handling

The server includes comprehensive error handling for:
- Missing environment variables
- API authentication issues
- Network connectivity problems
- Invalid project or merge request IDs
- Confluence permission issues

## Contributing

1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Support

For support, please [create an issue](https://github.com/CodeByWaqas/MRConfluenceLinker-mcp-server/issues) or contact the maintainers.

## Project Structure

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 # 依赖锁定文件


### Key Components

- **Source Code**: Located in the `src/MRConfluenceLinker-mcp-server/` directory
  - `server.py`: Main MCP server implementation
  - `resources/client.py`: Client-side implementation contains GitLab PR integration

- **Configuration Files**:
  - `requirements.txt`: Python package dependencies
  - `pyproject.toml`: Project metadata and build configuration
  - `uv.lock`: Locked dependency versions
  - `.env.example`: Environment variables template

- **Documentation**:
  - `README.md`: Project overview and setup instructions
  - `CONTRIBUTING.md`: Contribution guidelines
  - `LICENSE`: Project license

- **Development**:
  - `__pycache__/`: Python cache files
  - `mcp_server.log`: Server logs for debugging