Installation überspringen. In unter 2 Minuten einsatzbereit.
Starte eine kostenlose Testphase auf cloud.anythingmcp.com, füge GitLab mit einem Klick hinzu und richte deinen KI-Client (Claude, ChatGPT, Copilot oder Cursor) auf den erzeugten MCP-Endpoint. Kein Docker, kein git clone, keinerlei Entwicklungserfahrung nötig.
Zusammenfassung
Lass deine KI in GitLab arbeiten: Projekte finden, Issues sichten und aktualisieren, Merge Requests mit Diffs und Kommentaren prüfen, Pipelines kontrollieren und Logs fehlgeschlagener Jobs lesen sowie Branches, Commits und Dateien lesen. GitLab.com oder deine eigene GitLab-Instanz, mit einem persönlichen Access-Token.
Frag einfach
Beispiel-Prompts für GitLab
Klick auf einen Prompt, um ihn zu kopieren. In Claude, ChatGPT, Cursor, Gemini, Copilot oder OpenClaw einfügen — und gegen diesen Connector laufen lassen.
Claude ist KI und kann Fehler machen. Bitte Antworten gegenprüfen.
💡 Keine Installation? Nutze cloud.anythingmcp.com direkt. Einloggen, Connectors → GitLab klicken, Zugangsdaten einfügen, MCP-API-Key erzeugen, fertig. Kein Docker, kein
git clone, kein lokaler Server.
GitLab + Gemini
Lass deine KI in GitLab arbeiten: Projekte finden, Issues sichten und aktualisieren, Merge Requests mit Diffs und Kommentaren prüfen, Pipelines kontrollieren und Logs fehlgeschlagener Jobs lesen sowie Branches, Commits und Dateien lesen. GitLab.com oder deine eigene GitLab-Instanz, mit einem persönlichen Access-Token.
Voraussetzungen
Die vollständige Setup-Anleitung ist in den Connector eingebaut (im Store sichtbar, wenn du den Connector auswählst). Benötigte Umgebungsvariablen für diesen Connector:
GITLAB_URL, GITLAB_TOKEN
Schritt 1 — Zugangsdaten holen
- Klicke in GitLab auf deinen Avatar → Edit profile → Access → Personal access tokens → Generate token. Auf GitLab.com findest du die Seite unter gitlab.com/-/user_settings/personal_access_tokens.
- Gib dem Token einen Namen (zum Beispiel „AnythingMCP“), setze ein Ablaufdatum (auf GitLab.com höchstens 365 Tage) und wähle den Scope
api. Für eine Einrichtung nur zum Lesen wähle stattdessenread_api. - Kopiere das Token sofort: GitLab zeigt es nur einmal an. Es beginnt mit
glpat-. - Trage das Token ohne das Wort Bearer in
GITLAB_TOKENein. SetzeGITLAB_URLaufhttps://gitlab.comfür GitLab.com oder auf die Adresse deiner Self-Managed- oder Dedicated-Instanz, so wie du sie im Browser öffnest (zum Beispielhttps://gitlab.example.com), ohne/api/v4und ohne abschließenden Schrägstrich. Dann installiere den Connector. - Beginne mit
gitlab_get_current_user: Das Tool zeigt, zu welchem GitLab-Nutzer das Token gehört, und bestätigt, dass die Adresse stimmt. Nenne der KI dann ein Projekt mit seinem Pfad, etwamy-group/my-project, oder lass sie es mitgitlab_list_projectssuchen.
Ablauf und Reichweite des Tokens: Auf GitLab.com gilt ein Token höchstens 365 Tage. Läuft deins ab, erstelle ein neues mit demselben Scope und trage es erneut in GITLAB_TOKEN ein. Der Connector handelt als Nutzer des Tokens: Die KI sieht und ändert genau das, was dieser Nutzer darf. Ein Fine-grained Personal Access Token (ab GitLab 19.2) funktioniert genauso: Gib ihm Lese- und Schreibrechte auf Issues, Merge Requests, Repository, Pipelines und Jobs der betroffenen Projekte. Manche Gruppen auf GitLab.com verlangen Fine-grained Tokens; ein klassisches Token scheitert dann an ihren Projekten mit „Access denied: This operation requires a fine-grained personal access token“. Project und Group Access Tokens funktionieren auch, brauchen auf GitLab.com aber Premium oder Ultimate.
Nur lesen: Nutze ein Token mit read_api und schalte gitlab_create_issue, gitlab_update_issue, gitlab_add_issue_note, gitlab_create_merge_request, gitlab_update_merge_request, gitlab_add_merge_request_note und gitlab_create_branch aus.
Bei der Installation ausgeschaltet: gitlab_delete_issue, das ein Issue endgültig löscht (das dürfen nur Projekt-Owner und Administratoren, und meist willst du es eigentlich mit gitlab_update_issue schließen), und gitlab_delete_branch. Schalte sie nur ein, wenn die KI Issues oder Branches löschen soll.
Projekte, Issues und Merge Requests: Die Tools nehmen ein Projekt über seine numerische ID oder seinen vollen Pfad, etwa my-group/my-project. Issues und Merge Requests werden über die Nummer angesprochen, die GitLab anzeigt (#42, !17), nicht über ihre globale ID. gitlab_list_project_members liefert die Nutzer-IDs für Assignees und Reviewer. gitlab_list_my_issues und gitlab_list_my_merge_requests arbeiten projektübergreifend und zeigen standardmäßig die eigenen Einträge des Token-Nutzers, auch Merge Requests, die auf sein Review warten.
Reviews, Pipelines und Code: Für ein Review liest die KI gitlab_get_merge_request (Merge-Status und Konflikte), dann gitlab_get_merge_request_diffs Seite für Seite, gitlab_list_merge_request_commits und gitlab_list_merge_request_notes. Eine Datei mit zu großem Diff kommt ohne Text zurück; die KI liest sie dann mit gitlab_get_file_content auf dem Quell-Branch. Bei einer fehlgeschlagenen Pipeline geht sie von gitlab_list_pipelines über gitlab_list_pipeline_jobs (nur fehlgeschlagene Jobs) zu gitlab_get_job_log. Dateien und Job-Logs werden bei 200 KB abgeschnitten, der Anfang bleibt erhalten: Ein längeres Log öffnest du in GitLab. gitlab_search_project durchsucht Code innerhalb eines Projekts in jedem Tarif; die Codesuche über die ganze Instanz mit gitlab_search braucht Advanced Search, eine Premium-Funktion.
Schreibzugriffe erst bestätigen: Issues, Kommentare, Merge Requests und Branches entstehen unter dem Namen des Token-Nutzers. Die KI zeigt dir vorher Titel, Text oder Branch und wartet auf deine Bestätigung. Quick Actions in einem Kommentar wie /label, /assign, /close, /approve oder /merge führt GitLab aus, deshalb nimmt die KI sie nur auf, wenn du darum bittest. Um einen Branch anzulegen, braucht der Nutzer Developer-Zugriff.
Rate Limits: GitLab.com erlaubt etwa 2.000 API-Anfragen pro Minute und Nutzer, 200 neue Issues und 60 neue Kommentare pro Minute sowie 100 Suchen pro Minute. Auf einer Self-Managed-Instanz legt der Administrator die Limits fest. Über einem Limit antwortet GitLab mit 429: Warte und versuche es erneut.
Häufige Fehler: 401 heißt, dass das Token falsch, abgelaufen oder widerrufen ist oder dass GITLAB_URL auf eine andere Instanz zeigt als die, die es ausgestellt hat. 403 heißt, dass ein Scope fehlt (zum Beispiel ein read_api-Token bei einem Schreibzugriff) oder die Rolle für die Aktion nicht reicht. 404 heißt, dass es das Projekt, das Issue oder die Datei nicht gibt oder der Nutzer sie nicht sehen kann: GitLab versteckt private Ressourcen hinter 404. 400 nennt das fehlende oder ungültige Feld. 409 bei einem neuen Merge Request heißt, dass für diese Branches schon einer offen ist. Ein umbenanntes Projekt beantwortet Lesezugriffe noch unter dem alten Pfad, Schreibzugriffe dort scheitern aber mit 405: Nimm den neuen Pfad oder die numerische ID.
Der Connector hat keine Tools, um Merge Requests zu mergen oder zu genehmigen, Commits zu pushen, Dateien zu bearbeiten oder Pipelines zu starten, zu wiederholen oder abzubrechen, und er deckt weder CI/CD-Variablen noch Releases, Wikis, Packages, die Container Registry oder die Administration ab.
Schritt 2 — Adapter installieren
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
Schritt 3 — Connector in Gemini hinzufügen
Deine Server-URL: Öffne in AnythingMCP MCP Servers → den Server, auf dem dieser Connector liegt, und kopiere seine URL (
https://cloud.anythingmcp.com/mcp/…). Setze sie überall ein, wo diese AnleitungYOUR_SERVER_IDzeigt.
Gemini CLI liest MCP-Server aus ~/.gemini/settings.json (unter Windows %USERPROFILE%\.gemini\settings.json). Füge hinzu:
{
"mcpServers": {
"anythingmcp": {
"httpUrl": "https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID",
"headers": { "X-API-Key": "YOUR_MCP_API_KEY" }
}
}
}
- Erstelle in AnythingMCP unter MCP Servers → dein Server → API keys einen MCP-API-Key und setze ihn anstelle von
YOUR_MCP_API_KEYein. - Speichere die Datei und starte
geminineu. - Führe in der Gemini CLI
/mcpaus (odergemini mcp listim Terminal):anythingmcpsollte als verbunden erscheinen. - Leg los: Gemini CLI kann jetzt die
GitLab-Tools aufrufen.
Verfügbare Tools
| 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… |
Beispiel-Prompts
- „Welche Merge Requests warten projektübergreifend auf mein Review, und welche davon haben Konflikte oder eine fehlgeschlagene Pipeline?“
- „Warum ist die letzte Pipeline auf main in my-group/web-app fehlgeschlagen? Zeig mir den fehlgeschlagenen Job und den Fehler aus seinem Log.“
- „Fass Merge Request !128 in my-group/web-app zusammen: was sich geändert hat, in welchen Dateien und welche Review-Kommentare noch offen sind.“
- „Leg in my-group/web-app ein Issue mit dem Titel Checkout-Button auf Mobilgeräten verschoben an, mit dem Label bug, und weise es Lena zu.“
FAQ
Wo sucht Gemini CLI nach MCP-Servern? In ~/.gemini/settings.json für deinen Benutzer oder in .gemini/settings.json innerhalb eines Projekts. gemini mcp list zeigt jeden Server und ob er sich verbindet.
Nächste Schritte
War dieser Guide hilfreich?