GitLab PR Analysis MCP Server

MIT License
  • Linux
  • Apple

Integrations

  • Manages environment variables for the MCP server configuration, providing secure storage for GitLab and Confluence credentials.

  • Stores GitLab merge request analysis results in Confluence pages, allowing teams to document and share code change reports within their Confluence workspace.

  • Fetches merge request details and analyzes code changes from GitLab projects, providing statistics, file type analysis, and detailed file changes.

GitLab PR分析MCPサーバー

このプロジェクトは、GitLabのマージリクエスト分析とConfluenceのドキュメントを統合するMCP(モデル制御プロトコル)サーバーを提供します。これにより、マージリクエストの詳細を取得し、コード変更を分析し、結果を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 トークン: GitLab でapiスコープを使用して個人アクセス トークンを生成する
  • Confluenceトークン: 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
-
security - not tested
A
license - permissive license
-
quality - not tested

GitLab のマージ リクエスト分析を Confluence ドキュメントと統合し、ユーザーがマージ リクエストの詳細を取得し、コードの変更を分析し、分析結果を Confluence ページに保存できるようにします。

  1. Features
    1. Prerequisites
      1. Installation
        1. Configuration
          1. Obtaining Credentials
        2. Usage
          1. Setup with Claude Desktop
        ID: 0udc9poo5j