GitLab MR MCP

Un servidor MCP para interactuar con solicitudes de fusión y problemas de GitLab.

Documentación

MseeP.ai Security Assessment Badge

GitHub stars License smithery badge

🚀 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

  1. Clona este repositorio
  2. Instala las dependencias:
npm install
  1. 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_projects Obtiene una lista de proyectos de GitLab accesibles con tu token.

  • list_open_merge_requests Lista todas las solicitudes de fusión abiertas en el proyecto especificado.

  • get_merge_request_details Obtiene información detallada sobre una solicitud de fusión específica.

  • get_merge_request_comments Obtiene comentarios de una solicitud de fusión específica, incluyendo notas de discusión y notas de diff.

  • add_merge_request_comment Agrega un comentario general a una solicitud de fusión.

  • add_merge_request_diff_comment Agrega un comentario a una línea específica en un archivo dentro de una solicitud de fusión.

  • get_merge_request_diff Obtiene el diff de una solicitud de fusión.

  • get_issue_details Obtiene información detallada sobre un problema específico.

  • set_merge_request_title Establece el título de una solicitud de fusión

  • set_merge_request_description Establece 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:

  1. Tu token de GitLab tiene los alcances adecuados (api, read_api)
  2. El usuario del token tiene acceso adecuado a los proyectos
  3. Los IDs de proyecto son correctos

📜 Licencia

MIT

🤝 Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar una solicitud de extracción.