GitLab MR MCP

Um servidor MCP para interagir com merge requests e issues do GitLab.

Documentação

MseeP.ai Security Assessment Badge

GitHub stars License smithery badge

🚀 GitLab MR MCP

Um servidor Model Context Protocol (MCP) para interagir com merge requests e issues do GitLab.

📌 Visão Geral

Este projeto implementa um servidor usando o Model Context Protocol (MCP) que permite que agentes de IA interajam com repositórios GitLab. Ele fornece ferramentas para:

  • Listar projetos GitLab disponíveis
  • Buscar detalhes e comentários de merge requests
  • Obter diffs de merge requests
  • Adicionar comentários a merge requests
  • Adicionar comentários específicos de linha ao código em diffs de merge requests
  • Buscar detalhes de issues
  • Definir título e descrição de merge requests

📦 Instalação

⚡ Usando Smithery

Para instalar o GitLab MR MCP para Claude Desktop automaticamente via Smithery:

npx -y @smithery/cli@latest install @kopfrechner/gitlab-mr-mcp --client claude --config '"{\"gitlabMrMcpToken\":\"YOUR_GITLAB_TOKEN\", \"gitlabMrMcpHost\": \"YOUR_GITLAB_HOST\"}"'

🛠️ Instalação Manual

🔧 Pré-requisitos

  • Node.js
  • Token de acesso do GitLab com acesso à API
  • ID(s) do projeto GitLab

📖 Configuração

  1. Clone este repositório
  2. Instale as dependências:
npm install
  1. Adicione o seguinte à configuração do seu 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"
      }
    }
  }
}

🛠️ Ferramentas Disponíveis

  • get_projects Obtém uma lista de projetos GitLab acessíveis com seu token.

  • list_open_merge_requests Lista todos os merge requests abertos no projeto especificado.

  • get_merge_request_details Obtém informações detalhadas sobre um merge request específico.

  • get_merge_request_comments Obtém comentários de um merge request específico, incluindo notas de discussão e notas de diff.

  • add_merge_request_comment Adiciona um comentário geral a um merge request.

  • add_merge_request_diff_comment Adiciona um comentário a uma linha específica em um arquivo dentro de um merge request.

  • get_merge_request_diff Obtém o diff de um merge request.

  • get_issue_details Obtém informações detalhadas sobre uma issue específica.

  • set_merge_request_title Define o título de um merge request

  • set_merge_request_description Define a descrição de um merge request

🏗️ Desenvolvimento

🔍 Executando o Inspector

Configure as variáveis de ambiente:

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 uso com clientes MCP, você pode executar:

npx -y @modelcontextprotocol/inspector npm start

🛠️ Solução de Problemas

Se você encontrar problemas de permissão (403 Forbidden), verifique:

  1. Seu token GitLab tem os escopos adequados (api, read_api)
  2. O usuário do token tem acesso adequado aos projetos
  3. Os IDs dos projetos estão corretos

📜 Licença

MIT

🤝 Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.