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.

Servidor MCP de análisis de PR de GitLab

Este proyecto proporciona un servidor MCP (Protocolo de Control de Modelos) que integra el análisis de solicitudes de fusión de GitLab con la documentación de Confluence. Permite obtener detalles de las solicitudes de fusión, analizar cambios en el código y almacenar los resultados en páginas de Confluence.

Características

  • Obtener detalles de la solicitud de fusión desde GitLab
  • Analizar cambios de código en solicitudes de fusión
  • Genere informes detallados que incluyan:
    • Información básica de solicitud de fusión
    • Estadísticas de cambios de código
    • Análisis del tipo de archivo
    • Cambios detallados en los archivos
  • Almacenar los resultados del análisis en Confluence
  • Registro completo para depuración

Prerrequisitos

  • Python 3.8 o superior
  • Cuenta de GitLab con acceso a la API
  • Cuenta de Confluence (opcional, para almacenar resultados de análisis)
  • Acceso a los proyectos de GitLab requeridos

Instalación

  1. Clonar el repositorio:
git https://github.com/CodeByWaqas/MRConfluenceLinker-mcp-server.git cd MRConfluenceLinker-mcp-server
  1. Crear y activar un entorno virtual:
python -m venv .venv source .venv/bin/activate # On Windows, use: .venv\Scripts\activate
  1. Instalar dependencias:
pip install -r requirements.txt

o

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

Configuración

  1. Copie el archivo de entorno de ejemplo:
cp .env.example .env
  1. Edite el archivo .env con sus credenciales:
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

Obtención de credenciales

  • Token de GitLab : genere un token de acceso personal en GitLab con alcance api
  • Token de Confluence : genere un token de API en la configuración de su cuenta de Atlassian

Uso

  1. Inicie el servidor MCP:
python src/MRConfluenceLinker-mcp-server/server.py

o

Configuración con 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:

¿Puedes obtener los detalles de la solicitud de fusión n.º 1 del proyecto "mi-proyecto"? ¿Puedes analizar los cambios de código en la solicitud de fusión n.º 1 del proyecto "mi-proyecto"? ¿Puedes almacenar un resumen de la solicitud de fusión n.º 1 del proyecto "mi-proyecto" en 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/ # Directorio del código fuente │ └── MRConfluenceLinker-mcp-server/ # Paquete del servidor principal │ ├── recursos/ # Módulos de recursos │ │ ├── init .py │ │ ├── client.py # Implementación del cliente / Integración de GitLab PR │ ├── server.py # Implementación del servidor principal │ └── mcp_server.log # Registros del servidor ├── pycache / # Archivos de caché de Python ├── .git/ # Repositorio de Git ├── .gitignore # Reglas de ignorancia de Git ├── CONTRIBUTING.md # Pautas de contribución ├── LICENCIA # Licencia del proyecto ├── README.md # Documentación del proyecto ├── pyproject.toml # Configuración del proyecto Python ├── requirements.txt # Dependencias del proyecto └── uv.lock # Archivo de bloqueo de dependencias

### 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

Integra el análisis de solicitudes de combinación de GitLab con la documentación de Confluence, lo que permite a los usuarios obtener detalles de la solicitud de combinación, analizar cambios de código y almacenar los resultados del análisis en las páginas de Confluence.

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