GitLab MCP для проверки кода
Этот проект является ответвлением cayirtepeomer/gerrit-code-review-mcp и адаптирован для интеграции с GitLab.
Сервер MCP (Model Context Protocol) для интеграции помощников ИИ, таких как Claude, с запросами на слияние GitLab. Это позволяет помощникам ИИ просматривать изменения кода напрямую через API GitLab.
Функции
Полный анализ запросов на слияние : получение полной информации о запросах на слияние, включая различия, коммиты и комментарии.
Различия по конкретным файлам : анализ изменений в определенных файлах в запросах на слияние.
Сравнение версий : сравнение различных веток, тегов или коммитов.
Управление обзорами : добавление комментариев, одобрение или отмена одобрения запросов на слияние.
Обзор проекта : получение списков всех запросов на слияние в проекте.
Related MCP server: GitLab MCP Server
Установка
Предпосылки
Питон 3.10+
Персональный токен доступа GitLab с областью действия API (read_api, api)
Cursor IDE или приложение Claude Desktop для интеграции MCP
Быстрый старт
Клонируйте этот репозиторий:
git clone https://github.com/mehmetakinn/gitlab-mcp-code-review.git
cd gitlab-mcp-code-reviewСоздайте и активируйте виртуальную среду:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activateУстановите зависимости:
pip install -r requirements.txtСоздайте файл
.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 на фактический путь к вашему клонированному репозиторию.
Интеграция приложения Claude Desktop
Чтобы использовать этот MCP с приложением Claude Desktop:
Откройте приложение Claude Desktop.
Перейдите в Настройки → Дополнительно → Конфигурация MCP.
Добавьте следующую конфигурацию:
{
"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:
Инструмент | Описание |
| Получите полную информацию о запросе на слияние |
| Получить различия для конкретного запроса на слияние |
| Получить информацию о различиях для определенного коммита |
| Сравните различные ветки, теги или коммиты |
| Добавить комментарий к запросу на слияние |
| Одобрить запрос на слияние |
| Отменить одобрение запроса на слияние |
| Получить список запросов на слияние для проекта |
Примеры использования
Получить запрос на слияние
# 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)Поиск неисправностей
Если у вас возникли проблемы:
Убедитесь, что ваш токен GitLab имеет соответствующие разрешения (api, read_api)
Проверьте настройки файла
.envУбедитесь, что пути конфигурации MCP верны.
Проверьте соединение с помощью:
curl -H "Private-Token: your-token" https://gitlab.com/api/v4/projectsУстановите LOG_LEVEL=DEBUG в вашем .env-файле для более подробного протоколирования.
Внося вклад
Вклады приветствуются! Пожалуйста, не стесняйтесь отправлять запрос на включение.
Форк репозитория
Создайте ветку функций (
git checkout -b feature/amazing-feature)Зафиксируйте свои изменения (
git commit -m 'Add some amazing feature')Отправить в ветку (
git push origin feature/amazing-feature)Открыть запрос на извлечение
Более подробную информацию о процессе разработки смотрите в файле CONTRIBUTING.md .
Лицензия
Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENSE .