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-serverCrear y activar un entorno virtual:
python -m venv .venv
source .venv/bin/activate # On Windows, use: .venv\Scripts\activateInstalar dependencias:
pip install -r requirements.txto
uv add "mcp[cli]" python-gitlab python-dotenv atlassian-python-api requestsConfiguración
Copie el archivo de entorno de ejemplo:
cp .env.example .envEdite el archivo
.envcon 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_keyObtención de credenciales
Token de GitLab : genere un token de acceso personal en GitLab con alcance
apiToken de Confluence : genere un token de API en la configuración de su cuenta de Atlassian
Uso
Inicie el servidor MCP:
python src/MRConfluenceLinker-mcp-server/server.pyo
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 debuggingThis server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.