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
Related MCP server: GitLab MCP Server
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
Clonar el repositorio:
git https://github.com/CodeByWaqas/MRConfluenceLinker-mcp-server.git
cd MRConfluenceLinker-mcp-server
Crear y activar un entorno virtual:
python -m venv .venv
source .venv/bin/activate # On Windows, use: .venv\Scripts\activate
Instalar dependencias:
pip install -r requirements.txt
o
uv add "mcp[cli]" python-gitlab python-dotenv atlassian-python-api requests
Configuración
Copie el archivo de entorno de ejemplo:
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
Uso
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