gitlab-api
Gitlab Api
CLI oder API | MCP | Agent
Version: 27.1.0
Dokumentation — Installation, Bereitstellung, Nutzung über die API-, CLI- und MCP-Schnittstellen, der integrierte A2A-Agent-Server sowie Anleitungen zur Bereitstellung der zugrunde liegenden GitLab-Instanz sind in der offiziellen Dokumentation zu finden.
Related MCP server: Kepler MCP GitLab Server
Überblick
Gitlab Api ist ein produktionsreifer Agent- und Model-Context-Protocol-Server (MCP), der für die direkte Anbindung an GitLab API + MCP Server + A2A Server entwickelt wurde.
Kernfunktionen
Konsolidierte aktionsgesteuerte MCP-Tools: Minimiert den Token-Overhead und beseitigt Tool-Aufblähung in LLM-Kontexten, indem Methoden in optimierte, umschaltbare Tool-Module gruppiert werden.
Sicherheit auf Unternehmensniveau: Umfassende Unterstützung für Eunomia-Richtlinien, OIDC-Tokendelegation und granulare Verfolgung des Ausführungskontexts.
Integrierter Graph-Agent: Integrierter Pydantic-AI-Agent, der das Agent Control Protocol (ACP) und Standard-Web-Schnittstellen (AG-UI) unterstützt.
Native Telemetrie & Tracing: OpenTelemetry-Exporte sofort einsatzbereit und natives Langfuse-Tracing.
CLI oder API
Dieser Agent kapselt die GitLab API + MCP Server + A2A Server API. Sie können ihn programmatisch oder über seine integrierten Ausführungs-Einstiegspunkte ansprechen.
Detaillierte Anweisungen zur Verwendung der zugrunde liegenden API-Wrapper, erweiterten Schema-Bindungen und Entwickler-SDK-Referenzen finden Sie in docs/index.md.
MCP
Dieser Server verwendet dynamische aktionsgesteuerte Tools, um den Token-Overhead zu optimieren und die IDE-Kompatibilität zu maximieren.
Tool-Oberfläche — MCP_TOOL_MODE
Setzen Sie MCP_TOOL_MODE (in der gemeinsamen ~/.config/agent-utilities/config.json oder als Umgebungsvariable):
condensed (Standard — die unten aufgeführten aktionsgesteuerten Tools), verbose (ein benanntes 1:1-Tool pro API-Methode, z. B. gitlab_get_branches(...), markiert mit verbose), oder both. Filtern Sie die verbose-Menge mit --tools tag:verbose / MCP_ENABLED_TAGS=verbose. Siehe den MCP Tool Modes-Leitfaden von agent-utilities.
Verfügbare MCP-Tools
Automatisch vom Live-MCP-Server generiert — nicht von Hand bearbeiten.
Kompakte aktionsgesteuerte Tools (Standard — MCP_TOOL_MODE=condensed)
MCP-Tool | Umschalt-Env-Var | Beschreibung |
|
| Beliebige GitLab-REST-API-Anfragen direkt ausführen. |
|
| Operationen für gitlab-Branches verwalten. |
|
| Operationen für gitlab-Commits verwalten. |
|
| Operationen für gitlab-Deploy-Tokens verwalten. |
|
| Das dynamische GitLab-GraphQL-Schema einschließlich Typen, Feldern und benutzerdefinierten Attributen in Echtzeit entdecken. |
|
| Operationen für gitlab-Umgebungen verwalten. |
|
| GitLab-Epics verwalten. |
|
| Rohe GraphQL-Abfragen und -Mutationen nativ auf GitLab ausführen. |
|
| Eine typisierte GitLab-GraphQL-Operation anhand des Namens ausführen. |
|
| Operationen für gitlab-Gruppen verwalten. |
|
| GitLab-CI-Pipeline-Läufe (+ Jobs) nativ in epistemic-graph aufnehmen. |
|
| GitLab-Projekte nativ als typisierte :Project-Knoten in epistemic-graph aufnehmen. |
|
| Die konfigurierten GitLab-Mandanten auflisten (CONCEPT:AU-KG.backend.declared-columns-so-schema). |
|
| GitLab-Issues verwalten. |
|
| Operationen für gitlab-Jobs verwalten. |
|
| GitLab-Labels verwalten. |
|
| Operationen für gitlab-Mitglieder verwalten. |
|
| Operationen für gitlab-Merge-Requests verwalten. |
|
| Operationen für gitlab-Merge-Regeln verwalten. |
|
| GitLab-Meilensteine verwalten. |
|
| Operationen für gitlab-Namespaces verwalten. |
|
| GitLab-Notizen/Kommentare zu Issues, Merge Requests, Commits und Epics verwalten. |
|
| Operationen für gitlab-Pakete verwalten. |
|
| Operationen für gitlab-Pipeline-Zeitpläne verwalten. |
|
| Operationen für gitlab-Pipelines verwalten. |
|
| Operationen für gitlab-Projekte verwalten. |
|
| Operationen für geschützte gitlab-Branches verwalten. |
|
| Operationen für gitlab-Releases verwalten. |
|
| Operationen für gitlab-Runner verwalten. |
|
| GitLab-Snippets verwalten. |
|
| Operationen für gitlab-Tags verwalten. |
|
| Operationen für gitlab-Benutzer verwalten. |
|
| Die Abhängigkeitsliste und Sicherheitslücken eines Projekts überprüfen (das GitLab-Pendant zu GitHub Dependabot). |
|
| Operationen für gitlab-Wikis verwalten. |
Verbose 1:1-API-zugeordnete Tools (MCP_TOOL_MODE=verbose oder both)
MCP-Tool | Umschalt-Env-Var | Beschreibung |
|
| Merge-Request akzeptieren (zusammenführen). |
|
| Eine benutzerdefinierte API-Anfrage an den GitLab-Server senden. |
|
| Einen bestimmten Merge-Request genehmigen. |
|
| Ein bestimmtes Projekt archivieren. |
|
| Den geplanten „Merge when pipeline succeeds“ (Auto-Merge) eines Merge-Requests abbrechen. |
|
| Einen bestimmten Job in einem Projekt abbrechen. |
|
| Einen Commit in einen neuen Branch cherry-picken. |
|
| Einen neuen Branch in einem Projekt erstellen. |
|
| Einen neuen Commit erstellen. |
|
| Einen Kommentar zu einem Commit erstellen. |
|
| Eine neue Umgebung für ein Projekt erstellen. |
|
| Ein neues Gruppen-Epic erstellen. |
|
| Ein Deploy-Token für eine Gruppe erstellen. |
|
| Ein neues Issue erstellen. |
|
| Ein neues Label erstellen. |
|
| Einen neuen Merge-Request erstellen. |
|
| Einen Projekt-Meilenstein erstellen. |
|
| Eine neue Notiz/einen neuen Kommentar zu einem Issue erstellen. |
|
| Einen Pipeline-Zeitplan für ein bestimmtes Projekt erstellen. |
|
| Eine Variable für einen Pipeline-Zeitplan erstellen. |
|
| Ein neues Projekt erstellen. |
|
| Ein Deploy-Token für ein Projekt erstellen. |
|
| Eine neue Genehmigungsregel für Merge-Requests auf Projektebene erstellen. |
|
| Ein neues Release in einem Projekt erstellen. |
|
| Nachweis für ein Release in einem Projekt erstellen. |
|
| Ein Projekt-Snippet oder persönliches Snippet erstellen. |
|
| Einen Tag in einem Projekt erstellen. |
|
| Einen neuen Benutzer erstellen. |
|
| Eine neue Wiki-Seite für ein Projekt erstellen. |
|
| Einen Branch in einem Projekt löschen. |
|
| Eine Umgebung für ein Projekt löschen. |
|
| Ein Gruppen-Epic löschen. |
|
| Ein Deploy-Token für eine Gruppe löschen. |
|
| Ein Issue löschen. |
|
| Ein Label löschen. |
|
| Alle zusammengeführten Branches in einem Projekt löschen. |
|
| Einen Projekt-Meilenstein löschen. |
|
| Eine Notiz löschen. |
|
| Einen Pipeline-Zeitplan für ein bestimmtes Projekt löschen. |
|
| Eine Variable aus einem Pipeline-Zeitplan löschen. |
|
| Ein bestimmtes Projekt löschen. |
|
| Ein Deploy-Token für ein Projekt löschen. |
|
| Eine Genehmigungsregel für Merge-Requests auf Projektebene löschen. |
|
| Einen Runner aus einem Projekt löschen. |
|
| Ein Release in einem Projekt löschen. |
|
| Einen Runner löschen. |
|
| Ein bestimmtes Projekt von einer Gruppe trennen (Freigabe aufheben). |
|
| Ein Snippet löschen. |
|
| Gestoppte Umgebungen (Review-Apps) für ein Projekt löschen. |
|
| Einen Tag in einem Projekt löschen. |
|
| Einen Benutzer löschen. |
|
| Eine Wiki-Seite für ein Projekt löschen. |
|
| Ein Release-Asset aus einem Gruppen-Release herunterladen. |
|
| Ein Repository-Paket für ein bestimmtes Projekt herunterladen. |
|
| Eine bestimmte Gruppe bearbeiten. |
|
| Eine Genehmigungseinstellung für Merge-Requests auf Gruppenebene bearbeiten. |
|
| Einen Pipeline-Zeitplan für ein bestimmtes Projekt bearbeiten. |
|
| Ein bestimmtes Projekt bearbeiten. |
|
| Eine Genehmigungseinstellung für Merge-Requests auf Projektebene bearbeiten. |
|
| Einen Runner in einem Projekt aktivieren. |
|
| Einen bestimmten Job in einem Projekt löschen. |
|
| Den Genehmigungsstatus von Merge-Requests für ein bestimmtes Projekt abrufen. |
|
| Informationen über einen bestimmten Branch in einem Projekt abrufen. |
|
| Informationen über Branches in einem Projekt abrufen. |
|
| Einen bestimmten Commit abrufen. |
|
| Kommentare zu einem Commit abrufen. |
|
| Den Diff eines Commits abrufen. |
|
| Diskussionen zu einem Commit abrufen. |
|
| GPG-Signatur eines Commits abrufen. |
|
| Mit einem Commit verknüpfte Merge-Requests abrufen. |
|
| Referenzen eines Commits abrufen. |
|
| Status eines Commits abrufen. |
|
| Commits abrufen. |
|
| Alle Deploy-Tokens abrufen. |
|
| Details einer bestimmten Umgebung abrufen. |
|
| Eine Liste der Umgebungen für ein Projekt abrufen. |
|
| Ein bestimmtes Gruppen-Epic abrufen. |
|
| Alle Epics für eine Gruppe abrufen. |
|
| Details einer bestimmten Gruppe abrufen. |
|
| Ein bestimmtes Deploy-Token für eine Gruppe abrufen. |
|
| Deploy-Tokens für eine bestimmte Gruppe abrufen. |
|
| Untergruppen einer bestimmten Gruppe abrufen. |
|
| Die Liste der Issues für eine Gruppe (und standardmäßig deren Untergruppen) abrufen. |
|
| Details einer Genehmigungseinstellung für Merge-Requests auf Gruppenebene abrufen. |
|
| Mitglieder einer bestimmten Gruppe abrufen. |
|
| Mit einer bestimmten Gruppe verknüpfte Merge-Requests abrufen. |
|
| Mit einer bestimmten Gruppe verknüpfte Projekte abrufen. |
|
| Informationen über Releases in einer Gruppe abrufen. |
|
| Informationen über Runner in einer Gruppe abrufen. |
|
| Untergruppen einer bestimmten Gruppe abrufen. |
|
| Sicherheitslücken-Ergebnisse einer Gruppe abrufen (Ultimate). |
|
| Eine Liste von Gruppen abrufen. |
|
| Ein einzelnes Issue abrufen. |
|
| Liste von Issues abrufen. Kann nach project_id filtern. |
|
| Ein bestimmtes Label nach Namen abrufen. |
|
| Alle Labels für ein Projekt abrufen. |
|
| Informationen über das neueste Release in einem Projekt abrufen. |
|
| Das Asset für das neueste Release in einem Projekt abrufen. |
|
| Nachweis für das neueste Release in einem Projekt abrufen. |
|
| Genehmigungsregeln auf Merge-Request-Ebene für ein bestimmtes Projekt und einen bestimmten Merge-Request abrufen. |
|
| Eine Liste von Merge-Requests abrufen. |
|
| Einen bestimmten Projekt-Meilenstein abrufen. |
|
| Alle Meilensteine für ein Projekt abrufen. |
|
| Informationen über einen bestimmten Namespace abrufen. |
|
| Informationen über Namespaces abrufen. |
|
| Informationen über verschachtelte Projekte innerhalb einer Gruppe abrufen. |
|
| Eine bestimmte Notiz abrufen. |
|
| Alle Notizen für ein bestimmtes Issue abrufen. |
|
| Informationen über eine bestimmte Pipeline in einem Projekt abrufen. |
|
| Jobs abrufen, die mit einer bestimmten Pipeline in einem Projekt verknüpft sind. |
|
| Informationen über einen bestimmten Pipeline-Zeitplan in einem Projekt abrufen. |
|
| Pipeline-Zeitpläne für ein bestimmtes Projekt abrufen. |
|
| Informationen über Pipelines für ein bestimmtes Projekt abrufen. |
|
| Pipelines abrufen, die von einem bestimmten Pipeline-Zeitplan ausgelöst wurden. |
|
| Informationen über ein bestimmtes Projekt abrufen. |
|
| Informationen über Mitwirkende an einem Projekt abrufen. |
|
| Die Abhängigkeitsliste eines Projekts abrufen (alle erkannten Abhängigkeiten). |
|
| Ein bestimmtes Deploy-Token für ein Projekt abrufen. |
|
| Deploy-Tokens für ein bestimmtes Projekt abrufen. |
|
| Mit einem bestimmten Projekt verknüpfte Gruppen abrufen. |
|
| Details eines bestimmten Jobs in einem Projekt abrufen. |
|
| Das Protokoll eines bestimmten Jobs in einem Projekt abrufen. |
|
| Jobs abrufen, die mit einem bestimmten Projekt verknüpft sind. |
|
| Details einer bestimmten Genehmigungsregel für Merge-Requests auf Projektebene abrufen. |
|
| Genehmigungsregeln für Merge-Requests auf Projektebene abrufen. |
|
| Details einer Genehmigungseinstellung für Merge-Requests auf Projektebene abrufen. |
|
| Mitglieder eines bestimmten Projekts abrufen. |
|
| Details eines bestimmten Merge-Requests in einem Projekt abrufen. |
|
| Merge-Requests für ein bestimmtes Projekt abrufen. |
|
| Informationen über Runner in einem Projekt abrufen. |
|
| Statistiken für ein bestimmtes Projekt abrufen. |
|
| Sicherheitslücken eines Projekts abrufen (Ultimate). |
|
| Informationen über Projekte abrufen. |
|
| Informationen über einen bestimmten geschützten Branch in einem Projekt abrufen. |
|
| Informationen über geschützte Branches in einem Projekt abrufen. |
|
| Details einer bestimmten geschützten Umgebung abrufen. |
|
| Eine Liste der geschützten Umgebungen für ein Projekt abrufen. |
|
| Informationen über einen bestimmten geschützten Tag in einem Projekt abrufen. |
|
| Informationen über geschützte Tags in einem Projekt abrufen. |
|
| Informationen über ein Release anhand seines Tags in einem Projekt abrufen. |
|
| Informationen über Releases in einem Projekt abrufen. |
|
| Informationen über Repository-Pakete für ein bestimmtes Projekt abrufen. |
|
| Informationen über einen bestimmten Runner abrufen. |
|
| Jobs für einen bestimmten Runner abrufen. |
|
| Informationen über Runner abrufen. |
|
| Ein bestimmtes Snippet abrufen. |
|
| Liste von Snippets abrufen. Kann nach project_id filtern. |
|
| Informationen über einen bestimmten Tag in einem Projekt abrufen. |
|
| Informationen über Tags in einem Projekt abrufen. |
|
| Informationen über einen bestimmten Benutzer abrufen. |
|
| Informationen über Benutzer abrufen. |
|
| Eine einzelne Sicherheitslücke anhand ihrer globalen ID abrufen (Ultimate). |
|
| Eine Liste der Wiki-Seiten für ein Projekt abrufen. |
|
| Informationen über eine bestimmte Wiki-Seite abrufen. |
|
| Genehmigungen für einen bestimmten Merge-Request abrufen. |
|
| Einen bestimmten Runner pausieren oder reaktivieren. |
|
| Build-Status an einen Commit senden. |
|
| Einen bestimmten Branch in einem Projekt schützen. |
|
| Eine Umgebung für ein Projekt schützen. |
|
| Einen Tag in einem Projekt schützen. |
|
| Ein Repository-Paket für ein bestimmtes Projekt veröffentlichen. |
|
| Einen neuen Runner registrieren. |
|
| Code-Owner-Genehmigungen für einen bestimmten Branch in einem Projekt anfordern. |
|
| GitLab-Runner-Registrierungstoken zurücksetzen. |
|
| Registrierungstoken für den Runner einer Gruppe zurücksetzen. |
|
| Registrierungstoken für den Runner eines Projekts zurücksetzen. |
|
| Authentifizierungstoken für einen Runner zurücksetzen. |
|
| Einen bestimmten Job in einem Projekt erneut versuchen. |
|
| Einen Commit zurücknehmen (revertieren). |
|
| Eine Pipeline für ein bestimmtes Projekt ausführen. |
|
| Einen Pipeline-Zeitplan für ein bestimmtes Projekt ausführen. |
|
| Einen bestimmten Job in einem Projekt ausführen. |
|
| Ein bestimmtes Projekt mit einer Gruppe teilen. |
|
| Eine Umgebung für ein Projekt stoppen. |
|
| Veraltete Umgebungen für ein Projekt stoppen. |
|
| Besitz eines Pipeline-Zeitplans für ein bestimmtes Projekt übernehmen. |
|
| Die Genehmigung eines bestimmten Merge-Requests zurückziehen. |
|
| Ein bestimmtes Projekt aus dem Archiv holen (reaktivieren). |
|
| Den Schutz eines bestimmten Branchs in einem Projekt aufheben. |
|
| Den Schutz einer Umgebung für ein Projekt aufheben. |
|
| Den Schutz eines Tags in einem Projekt aufheben. |
|
| Eine vorhandene Umgebung für ein Projekt aktualisieren. |
|
| Ein Gruppen-Epic aktualisieren. |
|
| Ein Issue aktualisieren. |
|
| Ein vorhandenes Label aktualisieren. |
|
| Einen Projekt-Meilenstein aktualisieren. |
|
| Eine Notiz aktualisieren. |
|
| Eine vorhandene Genehmigungsregel für Merge-Requests auf Projektebene aktualisieren. |
|
| Eine geschützte Umgebung für ein Projekt aktualisieren. |
|
| Informationen über ein Release in einem Projekt aktualisieren. |
|
| Details für einen bestimmten Runner aktualisieren. |
|
| Ein Snippet aktualisieren. |
|
| Einen vorhandenen Benutzer aktualisieren. |
|
| Eine vorhandene Wiki-Seite für ein Projekt aktualisieren. |
|
| Einen Anhang zu einer Wiki-Seite für ein Projekt hochladen. |
|
| Runner-Authentifizierung überprüfen. |
34 aktionsgeroutete Tool(s) (Standard) · 196 verbose 1:1-Tool(s). Jedes ist aktiviert, sofern sein <DOMAIN>TOOL-Schalter nicht auf false gesetzt ist; MCP_TOOL_MODE wählt die Oberfläche (condensed Standard · verbose 1:1 · both). Automatisch generiert — nicht bearbeiten.
Detaillierte Tool-Schemas, Parameterstrukturen und Validierungsbeschränkungen sind in docs/usage.md dokumentiert.
Dynamische Tool-Auswahl und Sichtbarkeit
Dieser MCP-Server unterstützt die dynamische Auswahl von Tool-Sets und die Sichtbarkeitsfilterung zur Laufzeit. Dadurch können Sie die Menge der bereitgestellten Tools einschränken, um ein Aufblähen des Kontextfensters des LLM zu verhindern.
Sie können die Tool-Filterung über mehrere Eingabekanäle konfigurieren:
CLI-Argumente: Übergeben Sie
--toolsoder--toolsets(oder deren deaktivierte Gegenstücke--disabled-toolsund--disabled-toolsets) beim Start.Umgebungsvariablen: Definieren Sie Standard-Umgebungsvariablen:
MCP_ENABLED_TOOLS/MCP_DISABLED_TOOLSMCP_ENABLED_TAGS/MCP_DISABLED_TAGS
HTTP-SSE-Anfrageheader: Übergeben Sie während der Transportinitialisierung benutzerdefinierte Header:
x-mcp-enabled-tools/x-mcp-disabled-toolsx-mcp-enabled-tags/x-mcp-disabled-tags
HTTP-SSE-Anfrage-Query-Parameter: Fügen Sie Query-Parameter direkt an Ihre Transportverbindungs-URL an:
?tools=tool1,tool2?tags=tag1
Wenn Query-Strings oder -Parameter angegeben werden, gleicht eine LLM-freie Knowledge-Graph-Auflösungsebene (unter Verwendung von DynamicToolOrchestrator) die Abfrageintentionen mit bekannten Tool-Tags, -Namen oder -Beschreibungen ab, mit sicherem Fallback und automatischer 24-stündiger Hintergrundaktualisierung des Caches.
MCP-Konfigurationsbeispiele
Installieren Sie das connector-fokussierte Zusatzpaket
[mcp]. Die Beispiele verwendengitlab-api[mcp], um FastMCP / FastAPI überagent-utilities[mcp]hinzuzufügen; der erforderliche Agent-Utilities-Kern enthält weiterhinepistemic-graph[full]. Das Zusatzpaket[agent-runtime]aktiviert zusätzlich die Modell-Orchestrierung.
stdio-Transport (lokale IDEs — Cursor, Claude Desktop, VS Code)
{
"mcpServers": {
"gitlab-mcp": {
"command": "uvx",
"args": [
"--from",
"gitlab-api[mcp]",
"gitlab-mcp"
],
"env": {
"MCP_TOOL_MODE": "intent",
"BRANCHESTOOL": "True",
"COMMITSTOOL": "True",
"CUSTOM_APITOOL": "True",
"DEPLOY_TOKENSTOOL": "True",
"ENVIRONMENTSTOOL": "True",
"EPICSTOOL": "True",
"GITLAB_TOKEN": "your_gitlab_token_here",
"GITLAB_URL": "https://gitlab.example.com",
"GRAPHQLTOOL": "True",
"GRAPHQL_OPSTOOL": "True",
"GROUPSTOOL": "True",
"ISSUESTOOL": "True",
"JOBSTOOL": "True",
"LABELSTOOL": "True",
"MEMBERSTOOL": "True",
"MERGE_REQUESTSTOOL": "True",
"MERGE_RULESTOOL": "True",
"MILESTONESTOOL": "True",
"MISCTOOL": "True",
"NAMESPACESTOOL": "True",
"NOTESTOOL": "True",
"PACKAGESTOOL": "True",
"PIPELINESTOOL": "True",
"PIPELINE_SCHEDULESTOOL": "True",
"PROJECTSTOOL": "True",
"PROTECTED_BRANCHESTOOL": "True",
"RELEASESTOOL": "True",
"RUNNERSTOOL": "True",
"SNIPPETSTOOL": "True",
"TAGSTOOL": "True",
"USERSTOOL": "True",
"VULNERABILITIESTOOL": "True",
"WIKITOOL": "True"
}
}
}
}Laufzeitreferenzen erfordern einen alias-fähigen Launcher wie GraphOS. Andere Launcher müssen diese Einträge weglassen und die aufgelösten Werte über ihre eigene Laufzeit-Geheimnisgrenze injizieren.
Streamable-HTTP-Transport (netzwerkbasiert / Produktion)
{
"mcpServers": {
"gitlab-mcp": {
"command": "uvx",
"args": [
"--from",
"gitlab-api[mcp]",
"gitlab-mcp",
"--transport",
"streamable-http",
"--port",
"8000"
],
"env": {
"TRANSPORT": "streamable-http",
"HOST": "127.0.0.1",
"PORT": "8000",
"MCP_TOOL_MODE": "intent",
"BRANCHESTOOL": "True",
"COMMITSTOOL": "True",
"CUSTOM_APITOOL": "True",
"DEPLOY_TOKENSTOOL": "True",
"ENVIRONMENTSTOOL": "True",
"EPICSTOOL": "True",
"GITLAB_TOKEN": "your_gitlab_token_here",
"GITLAB_URL": "https://gitlab.example.com",
"GRAPHQLTOOL": "True",
"GRAPHQL_OPSTOOL": "True",
"GROUPSTOOL": "True",
"ISSUESTOOL": "True",
"JOBSTOOL": "True",
"LABELSTOOL": "True",
"MEMBERSTOOL": "True",
"MERGE_REQUESTSTOOL": "True",
"MERGE_RULESTOOL": "True",
"MILESTONESTOOL": "True",
"MISCTOOL": "True",
"NAMESPACESTOOL": "True",
"NOTESTOOL": "True",
"PACKAGESTOOL": "True",
"PIPELINESTOOL": "True",
"PIPELINE_SCHEDULESTOOL": "True",
"PROJECTSTOOL": "True",
"PROTECTED_BRANCHESTOOL": "True",
"RELEASESTOOL": "True",
"RUNNERSTOOL": "True",
"SNIPPETSTOOL": "True",
"TAGSTOOL": "True",
"USERSTOOL": "True",
"VULNERABILITIESTOOL": "True",
"WIKITOOL": "True"
}
}
}
}Alternativ können Sie über url eine Verbindung zu einer bereits bereitgestellten Streamable-HTTP-Instanz herstellen:
{
"mcpServers": {
"gitlab-mcp": {
"url": "http://localhost:8000/gitlab-mcp/mcp"
}
}
}Führen Sie ein geprüftes Container-Image als stdio-Kindprozess mit minimalen Rechten aus (kein Listener oder veröffentlichter Port):
docker run -i --rm \
--read-only \
--cap-drop=ALL \
--security-opt=no-new-privileges \
--pids-limit=256 \
--tmpfs /tmp:rw,noexec,nosuid,nodev,size=64m \
-e TRANSPORT=stdio \
-e MCP_TOOL_MODE=intent \
-e BRANCHESTOOL=True \
-e COMMITSTOOL=True \
-e CUSTOM_APITOOL=True \
-e DEPLOY_TOKENSTOOL=True \
-e ENVIRONMENTSTOOL=True \
-e EPICSTOOL=True \
-e GITLAB_TOKEN=your_gitlab_token_here \
-e GITLAB_URL=https://gitlab.example.com \
-e GRAPHQLTOOL=True \
-e GRAPHQL_OPSTOOL=True \
-e GROUPSTOOL=True \
-e ISSUESTOOL=True \
-e JOBSTOOL=True \
-e LABELSTOOL=True \
-e MEMBERSTOOL=True \
-e MERGE_REQUESTSTOOL=True \
-e MERGE_RULESTOOL=True \
-e MILESTONESTOOL=True \
-e MISCTOOL=True \
-e NAMESPACESTOOL=True \
-e NOTESTOOL=True \
-e PACKAGESTOOL=True \
-e PIPELINESTOOL=True \
-e PIPELINE_SCHEDULESTOOL=True \
-e PROJECTSTOOL=True \
-e PROTECTED_BRANCHESTOOL=True \
-e RELEASESTOOL=True \
-e RUNNERSTOOL=True \
-e SNIPPETSTOOL=True \
-e TAGSTOOL=True \
-e USERSTOOL=True \
-e VULNERABILITIESTOOL=True \
-e WIKITOOL=True \
registry.example.invalid/gitlab-api@sha256:<digest> gitlab-mcpFür containerisierten Netzwerk-HTTP stellen Sie einen authentifizierten TLS-Ingress (oder
direktes Server-TLS), exakte MCP_ALLOWED_HOSTS und eine exakte Trusted-Proxy-
CIDR-Richtlinie über das vom Betreiber verwaltete Bereitstellungsprofil bereit. Der Generator
erzeugt keinen unauthentifizierten Non-Loopback-Listener.
Automatisch aus der per Code ausgelesenen Env-Oberfläche generiert (MCP_TOOL_MODE + Paketvariablen) — nicht bearbeiten.
Zusätzliche Bereitstellungsoptionen
gitlab-api kann als lokaler stdio-Prozess oder Container oder hinter einer entfernten
Netzwerkgrenze ausgeführt werden. Die
Bereitstellungsanleitung enthält
den detaillierten Transportvertrag.
Lokaler Container — starten Sie ein geprüftes unveränderliches Image als stdio-Kindprozess mit minimalen Rechten ohne Listener oder veröffentlichten Port.
Remote-URL — verbinden Sie sich über einen vom Betreiber bereitgestellten authentifizierten HTTPS- Ingress. Bewahren Sie dessen URL, ausgehende Identitätsreferenzen, Vertrauensprofil und die exakten
MCP_ALLOWED_HOSTSinAgentConfigauf.
Umgebungsvariablen
Paket-Umgebungsvariablen
Variable | Beispiel | Beschreibung |
|
| |
|
| |
|
| Optionen: stdio, streamable-http, sse |
|
| |
|
| |
| secret-injected | |
| secret-injected | |
|
| |
|
| Optionen: none, embedded, remote |
|
| |
|
| |
|
| |
| secret-injected | |
| — | benanntes AgentConfig-TLS-Profil; leer verwendet das konfigurierte Standardprofil |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
Geerbte agent-utilities-Variablen (gelten für jeden Connector)
Variable | Beispiel | Beschreibung |
|
| Tool-Oberfläche: |
| — | Kommagetrennte Tool-Allowlist |
| — | Kommagetrennte Tool-Denylist |
| — | Kommagetrennte Tag-Allowlist |
| — | Kommagetrennte Tag-Denylist |
| — | Ausgehende MCP-Child-Authentifizierung: |
| — | OIDC-Client-ID (Service-Account-Authentifizierung) |
|
| Laufzeit-Secret-Referenz für den OIDC-Service-Account |
| — | HTTP-Basic-Benutzername ( |
|
| Laufzeit-Secret-Referenz für HTTP-Basic-Auth ( |
|
| Ausführliche Protokollierung |
|
| Ungepufferte Standardausgabe (in Containern empfohlen) |
|
| URL des MCP-Servers, mit dem der Agent verbunden ist |
|
| LLM-Anbieter für den Agent |
|
| Modell-ID für den Agent |
|
| AG-UI-Weboberfläche bereitstellen |
45 Paket- + 16 geerbte Variable(n). Automatisch generiert aus .env.example + dem gemeinsamen agent-utilities-Satz — nicht bearbeiten.
Jede Variable, die der Server liest.
Verbindung & Anmeldedaten
Der Connector ist standardmäßig Single-Host und multi-tenant, wenn gitlab_instances
konfiguriert ist (siehe Multi-Tenancy). Wenn keine
Instanzen konfiguriert sind, greift er auf die Single-Host-Werte GITLAB_* unten zurück.
Variable | Beschreibung | Standard |
| Basis-URL der GitLab-Instanz |
|
| GitLab-Personal-/Projektzugriffstoken ( | — |
| Optionaler Laufzeit-TLS-Profilselektor | (nicht gesetzt) |
Mehrere Instanzen werden einmal unter
gitlab_instancesin der gemeinsamen agent-utilities-XDG-Konfiguration (~/.config/agent-utilities/config.json) deklariert — jeder Eintrag hatname,url,tokenund optionaltls_profile. Zielen Sie von der Client- Factory aus per Name auf einen Mandanten; eine nicht gesetzte Instanz löst zur ersten konfigurierten auf (sonstGITLAB_URL/GITLAB_TOKEN).
MCP-Server / Transport
Variable | Beschreibung | Standard |
|
|
|
| Bind-Host (HTTP-Transports) |
|
| Bind-Port (HTTP-Transports) |
|
| Tool-Oberfläche: |
|
| Kommagetrennte Tool-Allow-/Denylist | — |
| Kommagetrennte Tag-Allow-/Denylist | — |
| Ausführliche Protokollierung |
|
| Ungepufferte Standardausgabe (in Containern empfohlen) |
|
Tool-Umschalter
Jedes aktionsgesteuerte Tool kann einzeln über seine Umschalt-Env-Variable deaktiviert werden (auf false setzen).
Die vollständige Liste finden Sie in der Tabelle Verfügbare MCP-Tools oben
(z. B. PROJECTSTOOL, MERGE_REQUESTSTOOL, PIPELINESTOOL, GRAPHQLTOOL, CUSTOM_APITOOL).
Telemetrie & Governance
Variable | Beschreibung | Standard |
| OpenTelemetry-Export aktivieren |
|
| OTLP-Collector-Endpunkt | — |
| OTLP-Auth-Schlüssel | — |
| OTLP-Protokoll (z. B. | — |
| Autorisierungsmodus: |
|
| Eingebettete Policy-Datei |
|
| Remote-Eunomia-Server-URL | — |
Agent-CLI (nur vollständige [agent]-Laufzeit)
Variable | Beschreibung | Standard |
| URL des MCP-Servers, mit dem der Agent verbunden ist |
|
| LLM-Anbieter (z. B. |
|
| Modell-ID (z. B. |
|
| AG-UI-Weboberfläche bereitstellen |
|
Siehe .env.example als Copy-Paste-Ausgangspunkt.
Agent
Dieses Repository enthält einen vollständig integrierten Pydantic-AI-Graph-Agenten. Er kommuniziert über das Agent Control Protocol (ACP) und interagiert nahtlos mit der Agent-Web-UI (AG-UI) und der Terminal-Schnittstelle.
Ausführen der Agent-CLI
So starten Sie den interaktiven Kommandozeilen-Agenten:
# Set credentials
export GITLAB_URL="your_value"
export GITLAB_TOKEN="your_value"
# Run the agent server
gitlab-agent --provider openai --model-id gpt-4oDocker-Compose-Orchestrierung
Die folgende docker/agent.compose.yml konfiguriert Agent, Web-UI und Terminal-Schnittstelle gemeinsam:
version: '3.8'
services:
gitlab-api-mcp:
image: example/gitlab-api:mcp
container_name: gitlab-api-mcp
hostname: gitlab-api-mcp
restart: always
env_file:
- ../.env
environment:
- PYTHONUNBUFFERED=1
- HOST=0.0.0.0
- PORT=8000
- TRANSPORT=streamable-http
ports:
- "8000:8000"
healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
gitlab-api-agent:
image: example/gitlab-api@sha256:<digest>
container_name: gitlab-api-agent
hostname: gitlab-api-agent
restart: always
depends_on:
- gitlab-api-mcp
env_file:
- ../.env
command: [ "gitlab-agent" ]
environment:
- PYTHONUNBUFFERED=1
- HOST=0.0.0.0
- PORT=9017
- MCP_URL=http://gitlab-api-mcp:8000/mcp
- PROVIDER=${PROVIDER:-openai}
- MODEL_ID=${MODEL_ID:-gpt-4o}
- ENABLE_WEB_UI=True
- ENABLE_OTEL=True
ports:
- "9017:9017"
healthcheck:
test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:9017/health')"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
logging:
driver: json-file
options:
max-size: "10m"
max-file: "3"
Detaillierte Erläuterungen zur Graph-Knotenarchitektur, benutzerdefinierte Skill-Konfigurationen und Anleitungen zu agentischen Traces finden Sie in docs/deployment.md.
Multi-Tenancy (mehrere GitLab-Instanzen)
Der Client ist nativ multi-tenant. Die Menge der Instanzen wird einmal in der
gemeinsamen agent-utilities-XDG-Konfiguration (~/.config/agent-utilities/config.json) unter
gitlab_instances deklariert — dieselbe Liste, die der Knowledge-Graph-GitLab-Indexer liest, sodass eine
Konfiguration sowohl die Code-/Metadaten-Indizierung als auch jeden API-/MCP-Aufruf steuert:
{
"gitlab_instances": [
{"name": "internal", "url": "https://gitlab.example.invalid", "token": "<GITLAB_TOKEN>", "tls_profile": "private-pki"},
{"name": "public", "url": "https://gitlab.com", "token": "<GITLAB_TOKEN>"}
]
}Zielen Sie von der Client-Factory aus per Name auf einen Mandanten; eine nackte URL funktioniert weiterhin, und eine
nicht gesetzte Instanz löst zur ersten konfigurierten auf (sonst GITLAB_URL/GITLAB_TOKEN):
from gitlab_api.auth import get_client
from gitlab_api.instances import list_configured_instances
internal = get_client(instance="internal") # resolves URL, token, and TLS profile
public = get_client(instance="public")
default = get_client() # first configured / GITLAB_URL fallback
names = [i.name for i in list_configured_instances()]Der MCP-Server stellt ein gitlab_instances-Tool (action=list|get) bereit, um die
konfigurierten Mandanten zu ermitteln (Tokens werden nie zurückgegeben). Wenn keine Instanzen konfiguriert sind, greift der
Connector auf das bisher verwendete Single-Host-GITLAB_URL/GITLAB_TOKEN zurück.
Sicherheit & Governance
Direkt auf dem unternehmensreifen agent-utilities-Kern aufbauend, werden die Standard-Sicherheitsparameter vollständig unterstützt:
Zugriffskontrolle & Policy-Durchsetzung
Eunomia-Policies: Fein granulare, policygesteuerte Tool-Autorisierung. Unterstützt
none, lokaleembedded(mcp_policies.json) oder zentralisierteremote-Modi.OIDC-Token-Delegation: Konform mit RFC 8693-Token-Austausch für die Weitergabe authentifizierter Benutzeranmeldedaten von Web-UI / ACP → Agent → MCP.
Bereichsbezogene Anmeldedaten: Ausführungskontext läuft eingeschränkt auf die spezifische Aufruferidentität.
Laufzeit-Sicherheitsraster
Funktion | Funktionalität | Aktivierung |
Tool Guard | Sensitivitätsprüfung mit Human-in-the-Loop-Validierung | Standardmäßig aktiv |
Prompt-Injection-Abwehr | Eingabescanning, Wiederholungsüberwachung und rekursive Schleifenblockaden | Standardmäßig aktiv |
Context-Safety-Guard | Stuck-Loop-Erkennung und präventive Warnungen bei kontextuellem Überlauf | Standardmäßig aktiv |
Installation
Wählen Sie das Extra, das zu dem passt, was Sie ausführen möchten:
Extra | Installiert | Verwenden, wenn |
| Connector-fokussierter MCP-Server ( | Sie nur den MCP-Server ausführen (kleinste Installation / Image) |
| Agent-Laufzeit ( | Sie den integrierten Agenten ausführen |
| Alles ( | Entwicklung / beide Oberflächen |
# Connector-focused MCP server (includes the shared graph engine)
uv pip install "gitlab-api[mcp]"
# Agent runtime (adds model orchestration to the shared graph engine)
uv pip install "gitlab-api[agent]"
# Everything (development)
uv pip install "gitlab-api[all]" # or: python -m pip install "gitlab-api[all]"Container-Images (:mcp vs. :agent)
Ein mehrstufiges docker/Dockerfile erstellt zwei passend dimensionierte Images, ausgewählt über --target:
Image-Tag | Build-Ziel | Inhalt | Entrypoint |
|
|
|
|
|
|
|
|
docker build --target mcp -t example/gitlab-api:mcp docker/ # connector-focused MCP server
docker build --target agent -t example/gitlab-api:agent-local docker/ # agent runtimedocker/mcp.compose.yml führt den auf den Connector fokussierten :mcp-Server aus; docker/agent.compose.yml führt den Agenten (unveränderlicher Agenten-Digest) mit einem ko-lokalisierten :mcp-Sidecar aus.
Wissensgraph-Datenbank (epistemic-graph)
Sowohl [mcp] als auch [agent] bringen die epistemic-graph-Engine über die erforderliche Kernabhängigkeit Agent Utilities (epistemic-graph[full]) mit. Das Extra [mcp] hält den Server auf den Connector fokussiert; [agent] ermöglicht zusätzlich die Modell-Orchestrierung. Lokale Bereitstellungen können die gebündelte Engine verwenden. Für Produktion oder gemeinsam genutzten Zustand betreiben Sie epistemic-graph als dedizierten Datenbankdienst und konfigurieren Sie die Laufzeit so, dass sie diesen verwendet. Bereitstellungsrezepte (Single-Node + Raft-HA), Verbindungskonfiguration und Architekturdiagramme sind im Bereitstellungsleitfaden für epistemic-graph dokumentiert.
Dokumentation
Die vollständige Dokumentation ist als offizielle Dokumentationsseite veröffentlicht und ist die empfohlene Referenz für Installation, Bereitstellung und den täglichen Betrieb.
Seite | Inhalt |
pip, Quellcode, Extras, vorgefertigtes Docker-Image | |
Betreiben der MCP- und Agent-Server, Compose, Caddy + Technitium, env-Konfiguration | |
die MCP-Tools, der | |
GitLab mit Docker bereitstellen | |
die aktionsgesteuerte Tool-Oberfläche und Architektur | |
Konzeptregister ( |
Repository-Eigentümer
Mitwirken
Beiträge sind willkommen! Bitte stellen Sie die Codequalität sicher, indem Sie vor dem Einreichen von Pull Requests lokale Prüfungen ausführen:
Code mit
ruff format .formatierenCode mit
ruff check .lintenTypsicherheit mit
mypy .validierenTestsuiten mit
pytestausführen
Bereitstellung mit agent-utilities-deployment
Stellen Sie dieses Paket mit dem konsolidierten agent-utilities-deployment-Workflow bereit. Er wählt einen Pfad für ein installiertes Paket, eine editierbare Quelle oder einen unveränderlichen Container; erfasst nur Laufzeit-Secret- und TLS-Profil-Referenzen in AgentConfig; und führt Doctor-, Registrierungs-, Richtlinien-, Observability- und Rollback-Gates aus. Bitten Sie Ihren Agenten, "gitlab-api mit agent-utilities-deployment bereitzustellen".
Installationsmodus | Befehl |
Installiertes Paket |
|
Editierbare Quelle |
|
Unveränderlicher Container |
|
Das Repository enthält keine Bereitstellungsprofile, keine Anmeldeinformationswerte, keine Zertifikatspfade und keine umgebungsspezifischen Endpunkte. Stellen Sie diese zur Laufzeit über AgentConfig und den konfigurierten Secret-Provider bereit.
Vertrag für verwaltete Fähigkeiten
Dieses Paket enthält eine kompakte kanonische Skill-Oberfläche mit spezialisierten Prozeduren, die als referenzierte Workflows vorgehalten werden. Die aktuellen MCP-Tools, Skill-Metadaten, connector_manifest.yml, Ontologie, Mappings, Shapes, Fixtures, Migrationen, Tool-Schema-Fingerabdrücke und Zertifizierungsmetadaten bilden einen versionierten Fähigkeitenvertrag. Validieren Sie sie gemeinsam; verlassen Sie sich nicht auf veraltete Tool-Namen oder historische aufgabenspezifische Skill-Wrapper.
Laufzeit-Endpunkte, Anmeldeinformationen, Zertifikatsvertrauen, Mandantenidentität, Aufbewahrung und Observability-Richtlinie sind Bereitstellungsinputs und niemals im Paket enthaltene Werte. Siehe Konfiguration, Vertrauen und Datenschutz, bevor Sie einen Netzwerktransport, Connector-Ingestion, GraphOS-Delegierung oder Trace-Export aktivieren.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- -licenseAqualityAmaintenanceMCP Server for the GitLab API, enabling project management, file operations, and more.95,52589,748MIT
- AlicenseNot gradedqualityDmaintenanceProduction-ready MCP server providing GitLab integration with OAuth authentication, enabling AI assistants to manage projects, issues, merge requests, branches, files, and commits across GitLab instances.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for interacting with GitLab API, supporting both self-hosted instances and gitlab.com. Provides tools for managing issues, merge requests, code review, pipelines, milestones, releases, search, and file access.514MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for the GitLab REST API providing tools to manage projects, merge requests, pipelines, CI/CD variables, approvals, issues, and code reviews.5MIT
Related MCP Connectors
Go MCP server for GitLab: 2 dynamic tools reach 1000+ REST/GraphQL actions. Free/CE, no paid tier.
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for Appcircle mobile CI/CD platform.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Knuckles-Team/gitlab-api'
If you have feedback or need assistance with the MCP directory API, please join our Discord server