GitLab MCP for Code Review

by mehmetakinn
MIT License
1
  • Linux
  • Apple

Integrations

  • Enables interaction with GitLab's API to analyze and manage merge requests, including fetching diffs, comparing versions, adding comments, and approving/unapproving merge requests.

GitLab MCP для проверки кода

Этот проект является ответвлением cayirtepeomer/gerrit-code-review-mcp и адаптирован для интеграции с GitLab.

Сервер MCP (Model Context Protocol) для интеграции помощников ИИ, таких как Claude, с запросами на слияние GitLab. Это позволяет помощникам ИИ просматривать изменения кода напрямую через API GitLab.

Функции

  • Полный анализ запросов на слияние : получение полной информации о запросах на слияние, включая различия, коммиты и комментарии.
  • Различия по конкретным файлам : анализ изменений в определенных файлах в запросах на слияние.
  • Сравнение версий : сравнение различных веток, тегов или коммитов.
  • Управление обзорами : добавление комментариев, одобрение или отмена одобрения запросов на слияние.
  • Обзор проекта : получение списков всех запросов на слияние в проекте.

Установка

Предпосылки

  • Питон 3.10+
  • Персональный токен доступа GitLab с областью действия API (read_api, api)
  • Cursor IDE для полной интеграции MCP

Быстрый старт

  1. Клонируйте этот репозиторий:
git clone https://github.com/yourusername/gitlab-mcp-code-review.git cd gitlab-mcp-code-review
  1. Создайте и активируйте виртуальную среду:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  1. Установите зависимости:
pip install -r requirements.txt
  1. Создайте файл .env с вашей конфигурацией GitLab (все параметры см. .env.example ):
# Required GITLAB_TOKEN=your_personal_access_token_here # Optional settings GITLAB_HOST=gitlab.com GITLAB_API_VERSION=v4 LOG_LEVEL=INFO

Параметры конфигурации

В файле .env можно настроить следующие переменные среды:

ПеременнаяНеобходимыйПо умолчаниюОписание
GITLAB_ТОКЕНДа-Ваш персональный токен доступа GitLab
GITLAB_HOSTНетgitlab.comИмя хоста экземпляра GitLab
GITLAB_API_VERSIONНетверсия 4Версия API GitLab для использования
УРОВЕНЬ_ЛОГАНетИНФОРМАЦИЯУровень ведения журнала (ОТЛАДКА, ИНФОРМАЦИЯ, ПРЕДУПРЕЖДЕНИЕ, ОШИБКА, КРИТИЧЕСКИЙ)
ОТЛАЖИВАТЬНетЛОЖЬВключить режим отладки
REQUEST_TIMEOUTНет30Время ожидания запроса API в секундах
МАКСИМАЛЬНОЕ_КОЛИЧЕСТВО_ПОВТОРЕНИЙНет3Максимальное количество попыток повтора для неудавшихся запросов

Интеграция курсора IDE

Чтобы использовать этот MCP с Cursor IDE, добавьте эту конфигурацию в файл ~/.cursor/mcp.json :

{ "mcpServers": { "gitlab-mcp-code-review": { "command": "/path/to/your/gitlab-mcp-code-review/.venv/bin/python", "args": [ "/path/to/your/gitlab-mcp-code-review/server.py", "--transport", "stdio" ], "cwd": "/path/to/your/gitlab-mcp-code-review", "env": { "PYTHONPATH": "/path/to/your/gitlab-mcp-code-review", "VIRTUAL_ENV": "/path/to/your/gitlab-mcp-code-review/.venv", "PATH": "/path/to/your/gitlab-mcp-code-review/.venv/bin:/usr/local/bin:/usr/bin:/bin" }, "stdio": true } } }

Замените /path/to/your/gitlab-mcp-code-review на фактический путь к вашему клонированному репозиторию.

Доступные инструменты

Сервер MCP предоставляет следующие инструменты для взаимодействия с GitLab:

ИнструментОписание
fetch_merge_requestПолучите полную информацию о запросе на слияние
fetch_merge_request_diffПолучить различия для конкретного запроса на слияние
fetch_commit_diffПолучить информацию о различиях для определенного коммита
compare_versionsСравните различные ветки, теги или коммиты
add_merge_request_commentДобавить комментарий к запросу на слияние
approve_merge_requestОдобрить запрос на слияние
unapprove_merge_requestОтменить одобрение запроса на слияние
get_project_merge_requestsПолучить список запросов на слияние для проекта

Примеры использования

Получить запрос на слияние

# Get details of merge request #5 in project with ID 123 mr = fetch_merge_request("123", "5")

Просмотр определенных изменений файла

# Get diff for a specific file in a merge request file_diff = fetch_merge_request_diff("123", "5", "path/to/file.js")

Сравнить филиалы

# Compare develop branch with master branch diff = compare_versions("123", "develop", "master")

Добавить комментарий к запросу на слияние

# Add a comment to a merge request comment = add_merge_request_comment("123", "5", "This code looks good!")

Одобрить запрос на слияние

# Approve a merge request and set required approvals to 2 approval = approve_merge_request("123", "5", approvals_required=2)

Поиск неисправностей

Если у вас возникли проблемы:

  1. Убедитесь, что ваш токен GitLab имеет соответствующие разрешения (api, read_api)
  2. Проверьте настройки файла .env
  3. Убедитесь, что пути конфигурации MCP верны.
  4. Проверьте соединение с помощью: curl -H "Private-Token: your-token" https://gitlab.com/api/v4/projects
  5. Установите LOG_LEVEL=DEBUG в вашем .env-файле для более подробного протоколирования.

Внося вклад

Вклады приветствуются! Пожалуйста, не стесняйтесь отправлять запрос на включение.

  1. Форк репозитория
  2. Создайте ветку функций ( git checkout -b feature/amazing-feature )
  3. Зафиксируйте свои изменения ( git commit -m 'Add some amazing feature' )
  4. Отправить в ветку ( git push origin feature/amazing-feature )
  5. Открыть запрос на извлечение

Более подробную информацию о процессе разработки смотрите в файле CONTRIBUTING.md .

Лицензия

Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE .

-
security - not tested
A
license - permissive license
-
quality - not tested

Сервер MCP, который интегрирует помощников на основе искусственного интеллекта, таких как Клод, с запросами на слияние GitLab, позволяя им просматривать изменения кода, добавлять комментарии и утверждать/отменять запросы на слияние непосредственно через API GitLab.

  1. Функции
    1. Установка
      1. Предпосылки
      2. Быстрый старт
    2. Параметры конфигурации
      1. Интеграция курсора IDE
        1. Доступные инструменты
          1. Примеры использования
            1. Получить запрос на слияние
            2. Просмотр определенных изменений файла
            3. Сравнить филиалы
            4. Добавить комментарий к запросу на слияние
            5. Одобрить запрос на слияние
          2. Поиск неисправностей
            1. Внося вклад
              1. Лицензия

                Related MCP Servers

                • A
                  security
                  A
                  license
                  A
                  quality
                  MCP Server for the GitLab API, enabling project management, file operations, and more.
                  Last updated -
                  9
                  1,630
                  44,247
                  JavaScript
                  MIT License
                  • Linux
                  • Apple
                • -
                  security
                  F
                  license
                  -
                  quality
                  A custom server implementation that allows AI assistants to interact with GitLab repositories, providing capabilities for searching, fetching files, creating/updating content, and managing issues and merge requests.
                  Last updated -
                  JavaScript
                • -
                  security
                  F
                  license
                  -
                  quality
                  An MCP server that enables communication with GitLab repositories, allowing interaction with GitLab's API to manage projects, issues, and repositories through natural language.
                  Last updated -
                  20
                  JavaScript
                • A
                  security
                  F
                  license
                  A
                  quality
                  An MCP server that enables AI assistants to manage GitHub Actions workflows by providing tools for listing, viewing, triggering, canceling, and rerunning workflows through the GitHub API.
                  Last updated -
                  9
                  24
                  TypeScript
                  • Linux
                  • Apple

                View all related MCP servers

                ID: 1q749wqn55