Пропустите установку. Заработает меньше чем за 2 минуты.
Начните бесплатный период на cloud.anythingmcp.com, добавьте GitLab одним кликом и направьте свой ИИ-клиент (Claude, ChatGPT, Copilot или Cursor) на сгенерированный MCP-эндпоинт. Без Docker, без git clone, без опыта разработки.
Кратко
Дайте ИИ работать в GitLab: находить проекты, разбирать и обновлять issues, проверять merge requests с диффами и комментариями, следить за пайплайнами и читать логи упавших джобов, а также читать ветки, коммиты и файлы. GitLab.com или ваш собственный экземпляр GitLab, с персональным токеном доступа.
Попробуй спросить
Примеры промптов для GitLab
Кликни по промпту — он скопируется. Вставь в Claude, ChatGPT, Cursor, Gemini, Copilot или OpenClaw и запусти через этот коннектор.
Claude — это AI, он может ошибаться. Проверяйте ответы.
💡 Без установки? Используйте cloud.anythingmcp.com напрямую. Войдите, нажмите Connectors → GitLab, вставьте учётные данные, создайте MCP API key, и готово. Без Docker, без
git clone, без локального сервера.
GitLab
Дайте ИИ работать в GitLab: находить проекты, разбирать и обновлять issues, проверять merge requests с диффами и комментариями, следить за пайплайнами и читать логи упавших джобов, а также читать ветки, коммиты и файлы. GitLab.com или ваш собственный экземпляр GitLab, с персональным токеном доступа.
Настройка
- В GitLab нажмите на свой аватар → Edit profile → Access → Personal access tokens → Generate token. На GitLab.com это страница gitlab.com/-/user_settings/personal_access_tokens.
- Задайте имя токена (например, «AnythingMCP»), укажите срок действия (на GitLab.com не больше 365 дней) и отметьте scope
api. Для режима только для чтения отметьте вместо негоread_api. - Сразу скопируйте токен: GitLab показывает его только один раз. Он начинается с
glpat-. - Вставьте токен в
GITLAB_TOKENбез слова Bearer. ВGITLAB_URLукажитеhttps://gitlab.comдля GitLab.com или адрес вашего экземпляра Self-Managed или Dedicated в том виде, в каком вы открываете его в браузере (например,https://gitlab.example.com), без/api/v4и без слеша в конце. Затем установите коннектор. - Начните с
gitlab_get_current_user: инструмент показывает, какому пользователю GitLab принадлежит токен, и подтверждает, что адрес верный. Затем назовите ИИ проект по его пути, напримерmy-group/my-project, или попросите найти его черезgitlab_list_projects.
Срок действия и права токена: на GitLab.com токен действует не больше 365 дней. Когда срок истечёт, создайте новый токен с тем же scope и снова вставьте его в GITLAB_TOKEN. Коннектор действует от имени пользователя токена: ИИ видит и меняет ровно то, что может этот пользователь. Fine-grained персональный токен доступа (GitLab 19.2 и новее) работает так же: дайте ему права на чтение и запись для issues, merge requests, репозитория, пайплайнов и джобов нужных проектов. Некоторые группы на GitLab.com требуют fine-grained токены, и тогда классический токен получает в их проектах ошибку «Access denied: This operation requires a fine-grained personal access token». Project и group access tokens тоже подходят, но на GitLab.com для них нужен Premium или Ultimate.
Режим только для чтения: используйте токен с read_api и отключите gitlab_create_issue, gitlab_update_issue, gitlab_add_issue_note, gitlab_create_merge_request, gitlab_update_merge_request, gitlab_add_merge_request_note и gitlab_create_branch.
Выключены при установке: gitlab_delete_issue, который удаляет issue безвозвратно (это могут только владельцы проекта и администраторы, и обычно достаточно закрыть issue через gitlab_update_issue), и gitlab_delete_branch. Включайте их, только если ИИ должен удалять issues или ветки.
Проекты, issues и merge requests: инструменты принимают проект по числовому идентификатору или полному пути, например my-group/my-project. Issues и merge requests указываются по номеру, который показывает GitLab (#42, !17), а не по глобальному идентификатору. gitlab_list_project_members даёт идентификаторы пользователей для исполнителей и ревьюеров. gitlab_list_my_issues и gitlab_list_my_merge_requests работают по всем проектам и по умолчанию показывают элементы пользователя токена, включая merge requests, ожидающие его ревью.
Ревью, пайплайны и код: для ревью merge request ИИ читает gitlab_get_merge_request (статус слияния и конфликты), затем gitlab_get_merge_request_diffs постранично, gitlab_list_merge_request_commits и gitlab_list_merge_request_notes. Файл со слишком большим диффом возвращается без текста; тогда ИИ читает его через gitlab_get_file_content в исходной ветке. Для упавшего пайплайна он идёт от gitlab_list_pipelines к gitlab_list_pipeline_jobs (только упавшие джобы) и к gitlab_get_job_log. Файлы и логи джобов обрезаются на 200 КБ, начало сохраняется: более длинный лог откройте в GitLab. gitlab_search_project ищет по коду внутри одного проекта на любом тарифе; поиск по коду во всём экземпляре через gitlab_search требует advanced search, функции Premium.
Сначала подтверждение, потом запись: issues, комментарии, merge requests и ветки создаются от имени пользователя токена. ИИ сначала показывает вам заголовок, текст или ветку и ждёт подтверждения. Quick actions в комментарии, например /label, /assign, /close, /approve или /merge, GitLab выполняет, поэтому ИИ добавляет их, только если вы об этом просите. Для создания ветки нужен доступ уровня Developer.
Лимиты запросов: GitLab.com допускает около 2000 запросов к API в минуту на пользователя, 200 новых issues и 60 новых комментариев в минуту и 100 поисковых запросов в минуту. На экземпляре Self-Managed лимиты задаёт администратор. При превышении лимита GitLab отвечает 429: подождите и повторите попытку.
Частые ошибки: 401 означает, что токен неверный, истёк или отозван, либо GITLAB_URL указывает не на тот экземпляр, который его выдал. 403 означает, что не хватает scope (например, токен с read_api при записи) или роли недостаточно для действия. 404 означает, что проекта, issue или файла нет или пользователь их не видит: GitLab скрывает приватные ресурсы за ответом 404. 400 указывает на отсутствующее или неверное поле. 409 при создании merge request означает, что для этих веток уже есть открытый. Переименованный проект ещё отвечает на чтение по старому пути, но запись туда завершается ошибкой 405: используйте новый путь или числовой идентификатор.
У коннектора нет инструментов, чтобы сливать или одобрять merge requests, пушить коммиты, редактировать файлы или запускать, перезапускать и отменять пайплайны, и он не работает с переменными CI/CD, релизами, вики, пакетами, container registry и администрированием.
Предварительные требования: GITLAB_URL, GITLAB_TOKEN
Локальная установка коннектора
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Откройте http://localhost:3000/connectors/store, выберите GitLab и введите переменные, перечисленные в Предварительных требованиях.
Доступные инструменты
| Tool | What it does |
|---|---|
gitlab_get_current_user | Get the GitLab user the token belongs to: id, username, name, state, web_url and, for admins, is_admin |
gitlab_list_projects | List projects the token can see, newest activity first by default: id, path_with_namespace, default_branch, web_url, visibility and… |
gitlab_get_project | Get one project by id or path: default_branch, visibility, description, web_url, open_issues_count, permissions of the token's user, and… |
gitlab_list_project_members | List the members of a project, including those inherited from its groups: user id, username, name and access_level (10 Guest, 15 Planner… |
gitlab_list_labels | List a project's labels (including group labels): name, color, description and open issue and merge request counts |
gitlab_list_issues | List a project's issues with filters: iid, title, state, labels, assignees, author, milestone, due_date, web_url |
gitlab_list_my_issues | List issues across all projects: by default the ones assigned to the token's user, or the ones they created, or every issue they can see |
gitlab_get_issue | Get one issue by its iid: title, description (Markdown), state, labels, assignees, author, milestone, due_date, time stats, related merge… |
gitlab_create_issue | Create an issue in a project |
gitlab_update_issue | Change an issue: title, description, labels (replace, add or remove), assignees, milestone, due date, or close or reopen it with state_event |
gitlab_delete_issue | Delete an issue for good |
gitlab_list_issue_notes | List the comments on an issue, newest first by default, including system notes (label and status changes, flagged system: true): id, body… |
gitlab_add_issue_note | Post a comment on an issue, as the token's user |
gitlab_list_merge_requests | List a project's merge requests with filters: iid, title, state, draft, source and target branch, author, reviewers, labels, merge_status… |
gitlab_list_my_merge_requests | List merge requests across all projects: by default the ones created by the token's user, or assigned to them, or waiting for their review… |
gitlab_get_merge_request | Get one merge request by iid: title, description, state, draft, source and target branch, sha, detailed_merge_status (mergeable, conflict… |
gitlab_get_merge_request_diffs | Get the changed files of a merge request, page by page: old_path, new_path, new_file, renamed_file, deleted_file and the diff text of each |
gitlab_list_merge_request_commits | List the commits of a merge request: id (SHA), short_id, title, message, author_name and created_at |
gitlab_list_merge_request_notes | List the comments on a merge request, including review comments on lines (with a position) and system notes: id, body, author, created_at… |
gitlab_add_merge_request_note | Post a general comment on a merge request, as the token's user |
gitlab_create_merge_request | Open a merge request from a source branch into a target branch |
gitlab_update_merge_request | Change a merge request: title (add or remove the Draft: prefix), description, target branch, labels, assignees, reviewers, or close or… |
gitlab_list_pipelines | List a project's CI/CD pipelines, newest first: id, iid, status, ref, sha, source, created_at, updated_at and web_url |
gitlab_get_pipeline | Get one pipeline: status, ref, sha, source, duration, queued_duration, coverage, user, started_at, finished_at and web_url |
gitlab_list_pipeline_jobs | List the jobs of a pipeline: id, name, stage, status, failure_reason, duration, runner, allow_failure and web_url |
gitlab_get_job | Get one CI/CD job: name, stage, status, failure_reason, duration, started_at, finished_at, the commit, the pipeline, artifacts and web_url |
gitlab_get_job_log | Read the log (trace) of a CI/CD job as plain text, with ANSI color codes |
gitlab_list_branches | List a project's branches: name, merged, protected, default, the last commit (id, title, author, date) and web_url |
gitlab_get_branch | Get one branch: its last commit, whether it is merged, protected or the default, and whether the user can push to it |
gitlab_create_branch | Create a branch from a branch, tag or commit |
gitlab_delete_branch | Delete a branch |
gitlab_list_commits | List commits of a branch, tag or the default branch, newest first: id (SHA), short_id, title, author_name, authored_date and web_url |
gitlab_get_commit | Get one commit by SHA, branch or tag name: message, author, committer, parent_ids, stats (additions, deletions), the last pipeline and… |
gitlab_get_commit_diff | Get the changes of one commit, page by page: old_path, new_path, new_file, renamed_file, deleted_file and the diff text per file |
gitlab_list_repository_tree | List files and folders in a repository folder: id (blob or tree SHA), name, type (blob = file, tree = folder), path and mode.… |
gitlab_get_file_info | Get a file's metadata without its content: file_name, file_path, size, encoding, content_sha256, blob_id, commit_id and last_commit_id on… |
gitlab_get_file_content | Read a file from the repository as text, at a branch, tag or commit (the default branch by default) |
gitlab_search | Search the whole instance (only what the token's user can see): projects, groups, issues, work_items, merge_requests, milestones, users or… |
gitlab_search_project | Search inside one project: code (blobs, with file name, path, line number and the matching lines), commits, issues, merge_requests… |
Примеры запросов
- «Какие merge requests во всех проектах ждут моего ревью, и у каких из них есть конфликты или упавший пайплайн?»
- «Почему упал последний пайплайн на main в my-group/web-app? Покажи упавший джоб и ошибку из его лога.»
- «Кратко опиши merge request !128 в my-group/web-app: что изменилось, в каких файлах и какие комментарии ревью ещё не решены.»
- «Создай issue в my-group/web-app с заголовком «Кнопка оформления заказа съезжает на мобильных», с меткой bug, и назначь его на Лену.»
Следующие шаги
Это руководство помогло?