GitLab MR MCP
Um servidor MCP para interagir com merge requests e issues do GitLab.
Documentação
🚀 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
- Clone este repositório
- Instale as dependências:
npm install
- 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_projectsObtém uma lista de projetos GitLab acessíveis com seu token. -
list_open_merge_requestsLista todos os merge requests abertos no projeto especificado. -
get_merge_request_detailsObtém informações detalhadas sobre um merge request específico. -
get_merge_request_commentsObtém comentários de um merge request específico, incluindo notas de discussão e notas de diff. -
add_merge_request_commentAdiciona um comentário geral a um merge request. -
add_merge_request_diff_commentAdiciona um comentário a uma linha específica em um arquivo dentro de um merge request. -
get_merge_request_diffObtém o diff de um merge request. -
get_issue_detailsObtém informações detalhadas sobre uma issue específica. -
set_merge_request_titleDefine o título de um merge request -
set_merge_request_descriptionDefine 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:
- Seu token GitLab tem os escopos adequados (api, read_api)
- O usuário do token tem acesso adequado aos projetos
- Os IDs dos projetos estão corretos
📜 Licença
🤝 Contribuição
Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.
