Skip to main content
Glama

GitLab MCP for Code Review

by mehmetakinn

GitLab MCP für Code-Überprüfung

Dieses Projekt ist ein Fork von cayirtepeomer/gerrit-code-review-mcp und für die GitLab-Integration angepasst.

Ein MCP-Server (Model Context Protocol) zur Integration von KI-Assistenten wie Claude in GitLab-Merge-Anfragen. Dadurch können KI-Assistenten Codeänderungen direkt über die GitLab-API überprüfen.

Merkmale

  • Vollständige Merge Request-Analyse : Holen Sie sich alle Details zu Merge Requests, einschließlich Diffs, Commits und Kommentaren
  • Dateispezifische Unterschiede : Analysieren Sie Änderungen an bestimmten Dateien innerhalb von Zusammenführungsanforderungen
  • Versionsvergleich : Vergleichen Sie verschiedene Zweige, Tags oder Commits
  • Überprüfungsverwaltung : Kommentare hinzufügen, Zusammenführungsanfragen genehmigen oder ablehnen
  • Projektübersicht : Erhalten Sie Listen aller Merge-Anfragen in einem Projekt

Installation

Voraussetzungen

Schnellstart

  1. Klonen Sie dieses Repository:
git clone https://github.com/mehmetakinn/gitlab-mcp-code-review.git cd gitlab-mcp-code-review
  1. Erstellen und aktivieren Sie eine virtuelle Umgebung:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
  1. Installieren Sie Abhängigkeiten:
pip install -r requirements.txt
  1. Erstellen Sie eine .env Datei mit Ihrer GitLab-Konfiguration (alle Optionen finden Sie unter .env.example ):
# Required GITLAB_TOKEN=your_personal_access_token_here # Optional settings GITLAB_HOST=gitlab.com GITLAB_API_VERSION=v4 LOG_LEVEL=INFO

Konfigurationsoptionen

Die folgenden Umgebungsvariablen können in Ihrer .env Datei konfiguriert werden:

VariableErforderlichStandardBeschreibung
GITLAB_TOKENJa-Ihr persönlicher GitLab-Zugriffstoken
GITLAB_HOSTNEINgitlab.comHostname der GitLab-Instanz
GITLAB_API_VERSIONNEINVersion 4Zu verwendende GitLab-API-Version
LOG_LEVELNEININFOProtokollierungsebene (DEBUG, INFO, WARNUNG, FEHLER, KRITISCH)
DEBUGGENNEINFALSCHDebug-Modus aktivieren
REQUEST_TIMEOUTNEIN30API-Anforderungstimeout in Sekunden
MAX_RETRIESNEIN3Maximale Wiederholungsversuche für fehlgeschlagene Anfragen

Cursor-IDE-Integration

Um dieses MCP mit Cursor IDE zu verwenden, fügen Sie diese Konfiguration zu Ihrer Datei ~/.cursor/mcp.json hinzu:

{ "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 } } }

Ersetzen Sie /path/to/your/gitlab-mcp-code-review durch den tatsächlichen Pfad zu Ihrem geklonten Repository.

Claude Desktop App Integration

So verwenden Sie dieses MCP mit der Claude Desktop App:

  1. Öffnen Sie die Claude Desktop App
  2. Gehen Sie zu Einstellungen → Erweitert → MCP-Konfiguration
  3. Fügen Sie die folgende Konfiguration hinzu:
{ "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 } } }

Ersetzen Sie /path/to/your/gitlab-mcp-code-review durch den tatsächlichen Pfad zu Ihrem geklonten Repository.

Verfügbare Tools

Der MCP-Server bietet die folgenden Tools für die Interaktion mit GitLab:

WerkzeugBeschreibung
fetch_merge_requestVollständige Informationen zu einer Zusammenführungsanforderung erhalten
fetch_merge_request_diffAbrufen von Diffs für eine bestimmte Zusammenführungsanforderung
fetch_commit_diffAbrufen von Diff-Informationen für ein bestimmtes Commit
compare_versionsVergleichen Sie verschiedene Zweige, Tags oder Commits
add_merge_request_commentHinzufügen eines Kommentars zu einer Zusammenführungsanforderung
approve_merge_requestGenehmigen einer Zusammenführungsanforderung
unapprove_merge_requestEine Zusammenführungsanfrage ablehnen
get_project_merge_requestsAbrufen einer Liste mit Zusammenführungsanforderungen für ein Projekt

Anwendungsbeispiele

Abrufen einer Zusammenführungsanforderung

# Get details of merge request #5 in project with ID 123 mr = fetch_merge_request("123", "5")

Anzeigen bestimmter Dateiänderungen

# Get diff for a specific file in a merge request file_diff = fetch_merge_request_diff("123", "5", "path/to/file.js")

Filialen vergleichen

# Compare develop branch with master branch diff = compare_versions("123", "develop", "master")

Hinzufügen eines Kommentars zu einer Zusammenführungsanforderung

# Add a comment to a merge request comment = add_merge_request_comment("123", "5", "This code looks good!")

Genehmigen einer Zusammenführungsanforderung

# Approve a merge request and set required approvals to 2 approval = approve_merge_request("123", "5", approvals_required=2)

Fehlerbehebung

Wenn Probleme auftreten:

  1. Überprüfen Sie, ob Ihr GitLab-Token über die entsprechenden Berechtigungen (API, Read_API) verfügt.
  2. Überprüfen Sie die Einstellungen Ihrer .env Datei
  3. Stellen Sie sicher, dass Ihre MCP-Konfigurationspfade korrekt sind
  4. Testen Sie die Verbindung mit: curl -H "Private-Token: your-token" https://gitlab.com/api/v4/projects
  5. Setzen Sie LOG_LEVEL=DEBUG in Ihrer .env-Datei für eine detailliertere Protokollierung

Beitragen

Beiträge sind willkommen! Senden Sie gerne einen Pull Request.

  1. Forken Sie das Repository
  2. Erstellen Sie Ihren Feature-Zweig ( git checkout -b feature/amazing-feature )
  3. Übernehmen Sie Ihre Änderungen ( git commit -m 'Add some amazing feature' )
  4. Pushen zum Zweig ( git push origin feature/amazing-feature )
  5. Öffnen einer Pull-Anfrage

Weitere Einzelheiten zum Entwicklungsprozess finden Sie in der Datei CONTRIBUTING.md .

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE .

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Ein MCP-Server, der KI-Assistenten wie Claude in die Merge-Anfragen von GitLab integriert, sodass sie Codeänderungen überprüfen, Kommentare hinzufügen und Merge-Anfragen direkt über die GitLab-API genehmigen/ablehnen können.

  1. Merkmale
    1. Installation
      1. Voraussetzungen
      2. Schnellstart
    2. Konfigurationsoptionen
      1. Cursor-IDE-Integration
        1. Claude Desktop App Integration
          1. Verfügbare Tools
            1. Anwendungsbeispiele
              1. Abrufen einer Zusammenführungsanforderung
              2. Anzeigen bestimmter Dateiänderungen
              3. Filialen vergleichen
              4. Hinzufügen eines Kommentars zu einer Zusammenführungsanforderung
              5. Genehmigen einer Zusammenführungsanforderung
            2. Fehlerbehebung
              1. Beitragen
                1. Lizenz

                  Related MCP Servers

                  • -
                    security
                    F
                    license
                    -
                    quality
                    A custom server implementation that allows AI assistants to interact with GitLab repositories, providing capabilities for searching, fetching files, creating/updating content, and managing issues and merge requests.
                    Last updated -
                    JavaScript
                  • -
                    security
                    F
                    license
                    -
                    quality
                    An MCP server that enables communication with GitLab repositories, allowing interaction with GitLab's API to manage projects, issues, and repositories through natural language.
                    Last updated -
                    20
                    1
                    JavaScript
                    MIT License
                  • A
                    security
                    F
                    license
                    A
                    quality
                    An MCP server that enables AI assistants to manage GitHub Actions workflows by providing tools for listing, viewing, triggering, canceling, and rerunning workflows through the GitHub API.
                    Last updated -
                    9
                    16
                    37
                    TypeScript
                    • Linux
                    • Apple
                  • -
                    security
                    F
                    license
                    -
                    quality
                    A Model Context Protocol server that enables AI assistants to interact with GitLab repositories, allowing tasks like managing merge requests, searching projects, and creating comments through RESTful API integration.
                    Last updated -
                    67
                    2
                    TypeScript
                    • Apple

                  View all related MCP servers

                  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/mehmetakinn/gitlab-mcp-code-review'

                  If you have feedback or need assistance with the MCP directory API, please join our Discord server