GitLab CLI MCP Server

Integre assistentes de IA perfeitamente com o GitLab usando a ferramenta de linha de comando glab.

Documentação

GitLab MCP Server (Swift)

Um servidor Model Context Protocol (MCP) que encapsula o GitLab CLI (glab) para fornecer funcionalidades do GitLab a assistentes de IA como o Claude Desktop.

Recursos

  • 🚀 Implementação nativa em Swift usando o SDK Swift do MCP oficial
  • 🔧 Integração completa com o GitLab CLI - suporta todos os comandos glab
  • 🎯 Prompts inteligentes para fluxos de trabalho comuns (merge requests, CI/CD, standup diário)
  • 📊 Análise de saída JSON com fallback para texto simples
  • 🔐 Autenticação segura via credenciais do sistema glab
  • Alto desempenho com concorrência async/await do Swift

Pré-requisitos

  • macOS (Swift 5.9+ instalado via Xcode)
  • glab CLI instalado e autenticado
  • Claude Desktop ou outro cliente compatível com MCP

Instalação

Instalação 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

O script de instalação irá:

  1. Compilar o servidor usando o Swift Package Manager
  2. Instalá-lo em ~/.swiftpm/bin/git-lab-mcp
  3. Exibir a configuração para o Claude Desktop

Instalação Manual

# Build the project
swift build -c release

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

Configuração

Adicione à sua configuração do 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"
      }
    }
  }
}

Autenticação

O servidor usa sua autenticação existente do glab CLI:

# Login to GitLab
glab auth login

# Check authentication status
glab auth status

Ferramentas Disponíveis

Ferramentas Principais

  • glab_mr - Operações de merge request (listar, criar, visualizar, mesclar, aprovar)
  • glab_issue - Gerenciamento de issues (listar, criar, visualizar, fechar, atualizar)
  • glab_ci - Operações de pipeline CI/CD (visualizar, listar, executar, repetir)
  • glab_repo - Operações de repositório (clonar, fork, visualizar, arquivar)
  • glab_api - Acesso direto à API do GitLab
  • glab_auth - Gerenciamento de autenticação
  • glab_version - Informações de versão
  • glab_raw - Executar qualquer comando glab diretamente

Prompts

O servidor inclui prompts inteligentes para fluxos de trabalho comuns:

  • my-mrs - Verifique seus merge requests
  • create-mr - Crie um merge request com parâmetros guiados
  • daily-standup - Reúna a atividade do GitLab para standups diários
  • review-pipeline - Revise o status do pipeline CI/CD

Exemplos de Uso

Verificar seus Merge Requests

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

Criar um Merge Request

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

Executar Pipeline CI/CD

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

Desenvolvimento

Compilação a partir do Código Fonte

# 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

Estrutura do Projeto

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

Solução de Problemas

O servidor não inicia

  • Certifique-se de que o glab esteja instalado: which glab
  • Verifique a autenticação: glab auth status
  • Execute com log de depuração: --log-level debug

Comandos retornam "não autenticado"

  • Execute glab auth login para autenticar
  • Para instâncias auto-hospedadas: glab auth login --hostname your.gitlab.instance

Problemas de conexão MCP

  • Reinicie o Claude Desktop após alterações de configuração
  • Verifique os logs no console do desenvolvedor do Claude Desktop
  • Verifique se o caminho do executável está correto na configuração

Contribuindo

Contribuições são bem-vindas! Por favor:

  1. Faça um fork do repositório
  2. Crie um branch de recurso
  3. Faça suas alterações
  4. Adicione testes, se aplicável
  5. Envie um pull request

Licença

Licença MIT - veja o arquivo LICENSE para detalhes

Agradecimentos