GitLab CLI MCP Server

Integra asistentes de IA sin problemas con GitLab usando la herramienta CLI glab.

Documentación

GitLab MCP Server (Swift)

Un servidor de Model Context Protocol (MCP) que envuelve la CLI de GitLab (glab) para proporcionar funcionalidad de GitLab a asistentes de IA como Claude Desktop.

Características

  • 🚀 Implementación nativa en Swift usando el SDK oficial de MCP Swift
  • 🔧 Integración completa con la CLI de GitLab: admite todos los comandos de glab
  • 🎯 Prompts inteligentes para flujos de trabajo comunes (merge requests, CI/CD, standup diario)
  • 📊 Análisis de salida JSON con respaldo a texto plano
  • 🔐 Autenticación segura mediante credenciales del sistema glab
  • Alto rendimiento con la concurrencia async/await de Swift

Requisitos previos

  • macOS (Swift 5.9+ instalado mediante Xcode)
  • CLI de glab instalada y autenticada
  • Claude Desktop u otro cliente compatible con MCP

Instalación

Instalación rápida

# Clone the repository
git clone https://github.com/yourusername/gitlab-mcp-swift.git
cd gitlab-mcp-swift

# Run the install script
./install.sh

El script de instalación:

  1. Compilará el servidor usando Swift Package Manager
  2. Lo instalará en ~/.swiftpm/bin/git-lab-mcp
  3. Mostrará la configuración para Claude Desktop

Instalación manual

# Build the project
swift build -c release

# Install to a location in your PATH
cp .build/release/git-lab-mcp ~/.swiftpm/bin/

Configuración

Añade a tu configuración de Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "gitlab": {
      "command": "/Users/YOUR_USERNAME/.swiftpm/bin/git-lab-mcp",
      "args": ["--log-level", "info"],
      "env": {
        "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
      }
    }
  }
}

Autenticación

El servidor usa tu autenticación existente de la CLI de glab:

# Login to GitLab
glab auth login

# Check authentication status
glab auth status

Herramientas disponibles

Herramientas principales

  • glab_mr - Operaciones de merge request (listar, crear, ver, fusionar, aprobar)
  • glab_issue - Gestión de issues (listar, crear, ver, cerrar, actualizar)
  • glab_ci - Operaciones de pipelines CI/CD (ver, listar, ejecutar, reintentar)
  • glab_repo - Operaciones de repositorio (clonar, fork, ver, archivar)
  • glab_api - Acceso directo a la API de GitLab
  • glab_auth - Gestión de autenticación
  • glab_version - Información de versión
  • glab_raw - Ejecutar cualquier comando de glab directamente

Prompts

El servidor incluye prompts inteligentes para flujos de trabajo comunes:

  • my-mrs - Revisa tus merge requests
  • create-mr - Crea un merge request con parámetros guiados
  • daily-standup - Recopila la actividad de GitLab para standups diarios
  • review-pipeline - Revisa el estado de los pipelines CI/CD

Ejemplos de uso

Revisa tus merge requests

Use the prompt "my-mrs" to see all your open merge requests

Crea un merge request

Use the prompt "create-mr" with:
- title: "Fix: Memory leak in user service"
- source_branch: "fix/memory-leak"
- target_branch: "main"

Ejecuta un pipeline CI/CD

Use tool "glab_ci" with:
- subcommand: "run"
- repo: "myteam/myproject"

Desarrollo

Compilación desde el código fuente

# Clone the repository
git clone https://github.com/yourusername/gitlab-mcp-swift.git
cd gitlab-mcp-swift

# Build in debug mode
swift build

# Run tests
swift test

# Build for release
swift build -c release

Estructura del proyecto

gitlab-mcp-swift/
├── Sources/
│   └── GitLabMCP/
│       ├── GitLabMCPServer.swift    # Main server implementation
│       ├── GitLabMCPCommand.swift   # CLI entry point
│       └── GitLabCLI.swift          # GitLab CLI wrapper
├── Package.swift                     # Swift package manifest
├── install.sh                        # Installation script
└── README.md                         # This file

Solución de problemas

El servidor no se inicia

  • Asegúrate de que glab esté instalado: which glab
  • Comprueba la autenticación: glab auth status
  • Ejecuta con registro de depuración: --log-level debug

Los comandos devuelven "no autenticado"

  • Ejecuta glab auth login para autenticarte
  • Para instancias autoalojadas: glab auth login --hostname your.gitlab.instance

Problemas de conexión MCP

  • Reinicia Claude Desktop después de los cambios de configuración
  • Revisa los registros en la consola de desarrollador de Claude Desktop
  • Verifica que la ruta del ejecutable sea correcta en la configuración

Contribuciones

¡Las contribuciones son bienvenidas! Por favor:

  1. Haz un fork del repositorio
  2. Crea una rama de características
  3. Realiza tus cambios
  4. Añade pruebas si corresponde
  5. Envía un pull request

Licencia

Licencia MIT: consulta el archivo LICENSE para más detalles

Agradecimientos