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
Related MCP server: GitLab MCP Server
Installation
Voraussetzungen
Python 3.10+
Persönlicher GitLab-Zugriffstoken mit API-Bereich (read_api, api)
Cursor IDE oder Claude Desktop App für MCP-Integration
Schnellstart
Klonen Sie dieses Repository:
git clone https://github.com/mehmetakinn/gitlab-mcp-code-review.git
cd gitlab-mcp-code-reviewErstellen und aktivieren Sie eine virtuelle Umgebung:
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activateInstallieren Sie Abhängigkeiten:
pip install -r requirements.txtErstellen Sie eine
.envDatei 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=INFOKonfigurationsoptionen
Die folgenden Umgebungsvariablen können in Ihrer .env Datei konfiguriert werden:
Variable | Erforderlich | Standard | Beschreibung |
GITLAB_TOKEN | Ja | - | Ihr persönlicher GitLab-Zugriffstoken |
GITLAB_HOST | NEIN | gitlab.com | Hostname der GitLab-Instanz |
GITLAB_API_VERSION | NEIN | Version 4 | Zu verwendende GitLab-API-Version |
LOG_LEVEL | NEIN | INFO | Protokollierungsebene (DEBUG, INFO, WARNUNG, FEHLER, KRITISCH) |
DEBUGGEN | NEIN | FALSCH | Debug-Modus aktivieren |
REQUEST_TIMEOUT | NEIN | 30 | API-Anforderungstimeout in Sekunden |
MAX_RETRIES | NEIN | 3 | Maximale 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:
Öffnen Sie die Claude Desktop App
Gehen Sie zu Einstellungen → Erweitert → MCP-Konfiguration
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:
Werkzeug | Beschreibung |
| Vollständige Informationen zu einer Zusammenführungsanforderung erhalten |
| Abrufen von Diffs für eine bestimmte Zusammenführungsanforderung |
| Abrufen von Diff-Informationen für ein bestimmtes Commit |
| Vergleichen Sie verschiedene Zweige, Tags oder Commits |
| Hinzufügen eines Kommentars zu einer Zusammenführungsanforderung |
| Genehmigen einer Zusammenführungsanforderung |
| Eine Zusammenführungsanfrage ablehnen |
| Abrufen 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:
Überprüfen Sie, ob Ihr GitLab-Token über die entsprechenden Berechtigungen (API, Read_API) verfügt.
Überprüfen Sie die Einstellungen Ihrer
.envDateiStellen Sie sicher, dass Ihre MCP-Konfigurationspfade korrekt sind
Testen Sie die Verbindung mit:
curl -H "Private-Token: your-token" https://gitlab.com/api/v4/projectsSetzen Sie LOG_LEVEL=DEBUG in Ihrer .env-Datei für eine detailliertere Protokollierung
Beitragen
Beiträge sind willkommen! Senden Sie gerne einen Pull Request.
Forken Sie das Repository
Erstellen Sie Ihren Feature-Zweig (
git checkout -b feature/amazing-feature)Übernehmen Sie Ihre Änderungen (
git commit -m 'Add some amazing feature')Pushen zum Zweig (
git push origin feature/amazing-feature)Ö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 .