GitLab MCP

zereight/gitlab-mcp· Проверено 12.11.2026· 2,1 тыс.на GitHub

Подключает агента к GitLab: мерж-реквесты с диффами и обсуждениями, issues, пайплайны с логами джоб, вики и релизы. Работает с gitlab.com и с GitLab на своём сервере.

Как подключить

Что сделать до подключения

1

Node.js 20 или новее

2
GITLAB_PERSONAL_ACCESS_TOKEN

Personal Access Token вашей учётной записи GitLab; вместо значения можно указать файл с токеном в GITLAB_PERSONAL_ACCESS_TOKEN_FILE

3
GITLAB_API_URL

адрес API: https://gitlab.com/api/v4 или адрес вашего сервера GitLab с /api/v4

Конфиг для вашего клиента

Команда в терминале, в папке проекта. Флаг --scope user подключит сервер для всех проектов. Подробно о Claude Code

claude mcp add --env 'GITLAB_PERSONAL_ACCESS_TOKEN=<ваш токен>' --env GITLAB_API_URL=https://gitlab.com/api/v4 --transport stdio gitlab \
  -- npx -y @zereight/mcp-gitlab@latest

Проверка: claude mcp list показывает статус рядом с каждым сервером: ✔ Connected, ! Needs authentication или ✘ Failed to connect. Внутри сессии то же видно по команде /mcp.

Инструменты сервера

list_merge_requestsпоказывает мерж-реквесты
get_merge_requestчитает мерж-реквест
list_merge_request_changed_filesпоказывает изменённые файлы
get_merge_request_file_diffчитает дифф выбранных файлов
create_merge_requestоткрывает мерж-реквест
create_merge_request_threadоткрывает обсуждение в MR
approve_merge_requestодобряет мерж-реквест
merge_merge_requestсливает мерж-реквест
get_file_contentsчитает файл или папку
push_filesпушит файлы одним коммитом
create_branchсоздаёт ветку
list_issuesпоказывает issues
create_issueсоздаёт issue
create_noteпишет комментарий
list_pipelinesпоказывает пайплайны
get_pipeline_job_outputчитает лог джобы
retry_pipelineперезапускает пайплайн
get_wiki_pageчитает страницу вики
create_releaseсоздаёт релиз
discover_toolsвключает дополнительные наборы

Показано 20 из 288.

Что попросить агента

«Сделай ревью MR !<123> в <group/project>»Получит список изменённых файлов через list_merge_request_changed_files, диффы пачками через get_merge_request_file_diff и оставит замечания через create_merge_request_thread
«Почему упал последний пайплайн в <group/project>? Перезапусти его, если ошибка случайная»Найдёт пайплайн через list_pipelines, прочитает вывод джобы через get_pipeline_job_output и при необходимости вызовет retry_pipeline
«Заведи issue про <ошибка> в <group/project>»Создаст задачу через create_issue
«Покажи открытые merge requests, которые ждут моего одобрения»Выведет список через list_merge_requests и откроет нужный через get_merge_request
«Мне нужна работа с вики проекта: включи нужные инструменты и прочитай страницу <home>»Вызовет discover_tools с категорией wiki, затем прочитает страницу через get_wiki_page

Для каких задач

Сделать ревью мерж-реквеста по диффам файлов и оставить обсуждения
Найти причину упавшего пайплайна по логу джобы и перезапустить его
Завести issue и мерж-реквест из задачи в чате
Работать с GitLab компании на своём сервере через GITLAB_API_URL
Читать и править страницы вики проекта

Ограничения

!

Из 288 инструментов по умолчанию включено 40; пайплайны, вики и прочее агент включает через discover_tools или вы задаёте GITLAB_TOOLSETS

!

Набор all загружает около 73 тыс. токенов схем в контекст

!

Набор api с gitlab_api_request обходит фильтры и проверки безопасности, им можно управлять через prompt injection

!

Сервер делает сторонний разработчик; GitLab ведёт свой MCP-сервер отдельно, внутри GitLab

Если не работает

Видно только около 40 инструментов
По умолчанию включён набор core: вызовите discover_tools без аргументов, чтобы увидеть категории, и передайте нужную. GITLAB_TOOLSETS=all грузит около 73 тыс. токенов схем.
Ответы инструментов слишком большие
Передайте в вызове jmespath или задайте GITLAB_MCP_COMPACT_RESULTS=true; полный дифф и логи берите через CLI zereight-mcp-gitlab.
Клиент не передаёт серверу переменные окружения (например, GitHub Copilot CLI)
Передайте токен и адрес аргументами: --token=<токен> и --api-url=https://gitlab.com/api/v4.
Удалённый вход через OAuth падает с Unregistered redirect_uri
Если redirect_uri в адресе браузера ведёт на колбэк клиента, включите GITLAB_OAUTH_CALLBACK_PROXY=true; GITLAB_OAUTH_REDIRECT_URI для этого не меняйте, он только для локального OAuth.

Частые вопросы

Как запретить агенту удалять и менять?
Задайте GITLAB_PERMISSION_MODE=readonly, чтобы остались только инструменты чтения. Режим modify разрешает создание и правку, но блокирует удаление и остановку пайплайнов.
Почему агент видит только около 40 инструментов?
По умолчанию включён набор core, чтобы схемы не съедали контекст. Агент вызывает discover_tools и включает нужную категорию, например pipelines или wiki, на текущую сессию.
Можно ли войти без токена?
Да, через OAuth в браузере: GITLAB_USE_OAUTH=true вместе с GITLAB_OAUTH_CLIENT_ID и GITLAB_OAUTH_REDIRECT_URI. Для удалённых клиентов вроде Claude.ai есть режим GITLAB_MCP_OAUTH.
Что делать, если ответы слишком большие?
Передайте в вызове параметр jmespath, чтобы вырезать нужные поля, или включите GITLAB_MCP_COMPACT_RESULTS=true. Полные диффы и логи удобнее смотреть через CLI zereight-mcp-gitlab.
Работает ли сервер из России?
Сервер запускается на вашем компьютере и подключается к тому GitLab, адрес которого вы указали, в том числе к своему серверу в компании.

Похожие серверы