GitLab MR MCP
Un servidor MCP para interactuar con solicitudes de fusión y problemas de GitLab.
Documentación
🚀 GitLab MR MCP
Un servidor de Model Context Protocol (MCP) para interactuar con solicitudes de fusión y problemas de GitLab.
📌 Descripción general
Este proyecto implementa un servidor utilizando el Protocolo de Contexto de Modelo (MCP) que permite a los agentes de IA interactuar con repositorios de GitLab. Proporciona herramientas para:
- Listar proyectos de GitLab disponibles
- Obtener detalles y comentarios de solicitudes de fusión
- Obtener diffs de solicitudes de fusión
- Agregar comentarios a solicitudes de fusión
- Agregar comentarios específicos de línea al código en diffs de solicitudes de fusión
- Obtener detalles de problemas
- Establecer título y descripción de la solicitud de fusión
📦 Instalación
⚡ Usando Smithery
Para instalar GitLab MR MCP para Claude Desktop automáticamente a través de Smithery:
npx -y @smithery/cli@latest install @kopfrechner/gitlab-mr-mcp --client claude --config '"{\"gitlabMrMcpToken\":\"YOUR_GITLAB_TOKEN\", \"gitlabMrMcpHost\": \"YOUR_GITLAB_HOST\"}"'
🛠️ Instalación Manual
🔧 Requisitos previos
- Node.js
- Token de acceso de GitLab con acceso a la API
- ID(s) de proyecto de GitLab
📖 Configuración
- Clona este repositorio
- Instala las dependencias:
npm install
- Agrega lo siguiente a la configuración de tu cliente MCP:
{
"mcpServers": {
"gitlab-mr-mcp": {
"command": "node",
"args": ["/path/to/gitlab-mr-mcp/index.js"],
"env": {
"MR_MCP_GITLAB_TOKEN": "your_gitlab_token",
"MR_MCP_GITLAB_HOST": "your_gitlab_host"
}
}
}
}
🛠️ Herramientas Disponibles
-
get_projectsObtiene una lista de proyectos de GitLab accesibles con tu token. -
list_open_merge_requestsLista todas las solicitudes de fusión abiertas en el proyecto especificado. -
get_merge_request_detailsObtiene información detallada sobre una solicitud de fusión específica. -
get_merge_request_commentsObtiene comentarios de una solicitud de fusión específica, incluyendo notas de discusión y notas de diff. -
add_merge_request_commentAgrega un comentario general a una solicitud de fusión. -
add_merge_request_diff_commentAgrega un comentario a una línea específica en un archivo dentro de una solicitud de fusión. -
get_merge_request_diffObtiene el diff de una solicitud de fusión. -
get_issue_detailsObtiene información detallada sobre un problema específico. -
set_merge_request_titleEstablece el título de una solicitud de fusión -
set_merge_request_descriptionEstablece la descripción de una solicitud de fusión
🏗️ Desarrollo
🔍 Ejecutando Inspector
Configura las variables de entorno:
export MR_MCP_GITLAB_TOKEN=your_gitlab_token
export MR_MCP_GITLAB_HOST=your_gitlab_host
# Optional env vars to filter the projects the `get_projects` tool has access to:
# https://docs.gitlab.com/api/access_requests/#valid-access-levels
export MR_MCP_MIN_ACCESS_LEVEL=min_access_level
# Search term that should match the project path or name
export MR_MCP_PROJECT_SEARCH_TERM=term
Para usar con clientes MCP, puedes ejecutar:
npx -y @modelcontextprotocol/inspector npm start
🛠️ Solución de problemas
Si encuentras problemas de permisos (403 Prohibido), verifica:
- Tu token de GitLab tiene los alcances adecuados (api, read_api)
- El usuario del token tiene acceso adecuado a los proyectos
- Los IDs de proyecto son correctos
📜 Licencia
🤝 Contribuciones
¡Las contribuciones son bienvenidas! No dudes en enviar una solicitud de extracción.
