/ Verzeichnis / Playground / Git
● Offiziell modelcontextprotocol ⚡ Sofort

Git

von modelcontextprotocol · modelcontextprotocol/servers

Zeigen Sie Ihren Agent auf ein lokales Repository und lassen Sie ihn Status, Log, Diff und Blame lesen — kein Shell-Zugriff erforderlich.

Offizieller modelcontextprotocol Git-Server. Lesen und Schreiben von lokalen Git-Operationen: status, log, diff (staged/unstaged/commit-range), show, blame-lite über show, plus commit/add/branch/checkout für Workflows mit Schreibzugriff. Begrenzt auf einen einzelnen --repository-Pfad — sicherer als dem Agent direkten Shell-Zugriff zu geben.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

git.replay ▶ bereit
0/0

Installieren

Wählen Sie Ihren Client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": [
        "mcp-server-git",
        "--repository",
        "/repo"
      ]
    }
  }
}

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": [
        "mcp-server-git",
        "--repository",
        "/repo"
      ]
    }
  }
}

Cursor nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": [
        "mcp-server-git",
        "--repository",
        "/repo"
      ]
    }
  }
}

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "git": {
      "command": "uvx",
      "args": [
        "mcp-server-git",
        "--repository",
        "/repo"
      ]
    }
  }
}

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "git",
      "command": "uvx",
      "args": [
        "mcp-server-git",
        "--repository",
        "/repo"
      ]
    }
  ]
}

Continue nutzt ein Array von Serverobjekten statt einer Map.

~/.config/zed/settings.json
{
  "context_servers": {
    "git": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-server-git",
          "--repository",
          "/repo"
        ]
      }
    }
  }
}

In context_servers hinzufügen. Zed lädt beim Speichern neu.

claude mcp add git -- uvx mcp-server-git --repository /repo

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: Git

Lassen Sie einen Agent Ihre ausstehenden Änderungen vor dem Commit überprüfen

👤 Einzelne Entwickler, alle, die ohne Code-Review veröffentlichen ⏱ ~3 min beginner

Wann einsetzen: Kurz vor dem Commit. Sie möchten einen zusätzlichen Blick, um offensichtliche Probleme zu finden, bevor der Commit landet.

Voraussetzungen
  • Lokales Repository mit ausstehenden Änderungengit add -p wie üblich, dann fragen Sie den Agent
Ablauf
  1. Lesen Sie den ausstehenden Diff
    Zeigen Sie mir meine ausstehenden Änderungen. Markieren Sie alles, das aussieht wie: Debug-Logs, kommentierter Code, hardcodierte Geheimnisse oder Änderungen, die nicht zum angegebenen Commit-Ziel '<GOAL>' gehören.✓ Kopiert
    → Spezifische Datei:Zeile-Markierungen
  2. Schlagen Sie eine Commit-Nachricht vor
    Schreiben Sie eine Commit-Nachricht nach Conventional Commits. Erste Zeile unter 60 Zeichen, Body erklärt das Warum, nicht das Was.✓ Kopiert
    → Kopierbare Nachricht
  3. Bestätigen Sie den Umfang
    Basierend auf dem Diff: Ist dieser Commit angemessen klein? Schlagen Sie Aufteilungen vor, wenn er mehrere Belange berührt.✓ Kopiert
    → Go/no-go mit Begründung

Ergebnis: Ein sauberer Commit mit weniger Nachfolge-Commits.

Fallstricke
  • Agent übersieht Geheimnisse, weil sie nicht offensichtlich geheim aussehen — Verlassen Sie sich nicht darauf als Geheimnisscanner — führen Sie gitleaks oder trufflehog in Ihrem Pre-Commit-Hook als echte Verteidigung aus
  • Um eine Commit-Nachricht zu bitten, beeinflusst den Agent, den Diff zu genehmigen — Führen Sie den Review-Schritt IMMER VOR der Anfrage nach einer Nachricht aus — die Reihenfolge ist wichtig
Kombinieren mit: github

Finden Sie heraus, wann und warum eine bestimmte Zeile brach

👤 Ingenieure, die Regressionsfehler debuggen ⏱ ~15 min intermediate

Wann einsetzen: Ein Test hat begonnen zu fehlschlagen und Sie müssen wissen, welcher Commit den Fehler eingeführt hat.

Ablauf
  1. Grenzen Sie die Verlaufsgeschichte der verdächtigen Datei ein
    Zeigen Sie git log für src/checkout/Cart.tsx begrenzt auf die letzten 20 Commits. Fügen Sie Autor und kurze Nachricht ein.✓ Kopiert
    → Kompakte Verlaufsgeschichte mit SHAs
  2. Diff der verdächtigen Commits
    Für die 3 Commits, die die calculateTotal-Funktion berührten, zeigen Sie den Diff. Konzentrieren Sie sich auf mathematische/logische Änderungen, ignorieren Sie den Stil.✓ Kopiert
    → Pro-Commit-Diff-Schnipsel
  3. Bilden Sie eine Regressionshypothese
    Welcher Commit hat höchstwahrscheinlich einen Off-by-One- oder Rundungsfehler eingeführt? Zeigen Sie auf die genaue Zeile und erklären Sie Ihre Begründung.✓ Kopiert
    → Spezifische SHA + Zeile mit Begründung

Ergebnis: Eine präzise Commit-Ebenen-Hypothese, die Sie mit git revert + erneute Tests bestätigen können.

Fallstricke
  • Umbenennungsintensive Verlaufsgeschichte verliert die Spur bei Umbenennungen — Verwenden Sie die git log --follow-Mentalität — bitten Sie den Agent, den Commit einzuschließen, der die Datei umbenannt hat, und schauen Sie sich den Pfad vor der Umbenennung dieses Commits an
Kombinieren mit: github

Verzeichnis und kategorisieren Sie veraltete lokale Branches

👤 Jeder, dessen `git branch`-Ausgabe mehrere Seiten lang ist ⏱ ~10 min beginner

Wann einsetzen: Vierteljährliche Bereinigung — zu viele Branches, unklar welche sicher zu löschen sind.

Ablauf
  1. Listset alle lokalen Branches auf
    Listset jeden lokalen Branch mit seinem letzten Commit-Datum und seiner Nachricht auf.✓ Kopiert
    → Tabelle der Branches
  2. Klassifizieren Sie jede
    Klassifizieren: 'merged' (Vorgänger von main), 'stale' (kein Commit in 60+ Tagen), 'active' (Commit in den letzten 30 Tagen). Markieren Sie alle, die wie aufgegebene Experimente aussehen.✓ Kopiert
    → Kategorisierte Liste
  3. Schlagen Sie Löschungen vor
    Geben Sie mir den git branch -d-Befehl für alles, das sicher zu löschen ist. Markieren Sie alles, das -D (erzwingend) benötigt, und erklären Sie warum.✓ Kopiert
    → Kopierbare Cleanup-Befehle

Ergebnis: Eine reduzierte Branch-Liste mit dem Vertrauen, dass Sie keine Arbeit verlieren.

Fallstricke
  • Agent schlägt -D für Branches vor, die tatsächlich eindeutige Commits haben, die nicht auf main sind — Überprüfen Sie die Liste der erzwungenen Löschungen immer manuell — eine git reflog-Wiederherstellung ist kostengünstig, aber lästig

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

git + github

Lokale Git-Überprüfung vor dem Push, dann einen PR mit dem gleichen Kontext öffnen

Überprüfen Sie meine ausstehenden Änderungen. Wenn sie gut aussehen, committen Sie mit einer beschreibenden Nachricht, pushen Sie den Branch und öffnen Sie einen PR auf GitHub.✓ Kopiert

Code-Änderungen + Git-Verlauf in einer Reasoning-Schleife

Lesen Sie src/auth/login.ts und die letzten 5 Commits, die sie berührten. Erklären Sie, warum die Retry-Logik hinzugefügt wurde.✓ Kopiert

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
git_status repo_path Erster Aufruf einer beliebigen Sitzung — verstehen Sie, was geändert ist kostenlos
git_diff_unstaged repo_path, context_lines? Überprüfen Sie nicht gestaffelte Änderungen vor git add kostenlos
git_diff_staged repo_path, context_lines? Überprüfen Sie, was gerade committed werden soll kostenlos
git_diff repo_path, target, context_lines? Vergleichen Sie den aktuellen Branch mit dem Ziel (z. B. main, HEAD~5) kostenlos
git_log repo_path, max_count?, start_timestamp?, end_timestamp? Verlauf durchsuchen — kombiniert mit max_count, um die Token-Nutzung zu begrenzen kostenlos
git_show repo_path, revision Überprüfen Sie einen bestimmten Commit kostenlos
git_commit repo_path, message Erstellen Sie einen Commit aus gestaffelten Änderungen — DEAKTIVIEREN für schreibgeschützte Setups kostenlos
git_add repo_path, files: string[] Stufen Sie bestimmte Dateien ein — bevorzugt vor git_add . aus Gründen der Agent-Sicherheit kostenlos
git_reset repo_path Alles entstaffeln — gefährlich, normalerweise überspringen kostenlos
git_create_branch repo_path, branch_name, base_branch? Starten Sie einen neuen Branch für eine Aufgabe kostenlos
git_checkout repo_path, branch_name Wechseln Sie Branches kostenlos
git_branch repo_path, branch_type, contains?, not_contains? Listset Branches auf, filtern Sie nach Commits, die sie enthalten kostenlos

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
Keine — alles lokal
Tokens pro Aufruf
200–5000 pro Diff je nach Größe
Kosten in €
Kostenlos
Tipp
Große Diffs erhöhen die Token-Kosten schnell. Verwenden Sie context_lines: 1 oder filtern Sie nach Pfad in Ihrem Prompt, bevor Sie den Agent bitten, alles zu lesen.

Sicherheit

Rechte, Secrets, Reichweite

Credential-Speicherung: Keine — keine Anmeldedaten
Datenabfluss: Keine — Server ist 100% lokal, keine Netzwerkaufrufe

Fehlerbehebung

Häufige Fehler und Lösungen

fatal: nicht ein Git-Repository

Der --repository-Pfad zeigt nicht auf ein Git-Repository. Verifizieren Sie mit ls <path>/.git — das Verzeichnis muss existieren.

Prüfen: ls <repo_path>/.git/HEAD
Leere Diff-Ausgabe trotz nicht committeter Änderungen

Überprüfen Sie gestaffelt vs. nicht gestaffelt — git_diff_unstaged und git_diff_staged sind separate Tools. Verwenden Sie zuerst git_status, um zu sehen, wo sich was befindet.

git_commit schlägt fehl mit 'Bitte sagen Sie mir, wer Sie sind'

Legen Sie git config im Repository fest: git config user.email ... und git config user.name .... Das MCP verwendet Ihre vorhandene git-Konfiguration.

Prüfen: git config --get user.email
Großer Diff verbraucht Tokens

Übergeben Sie context_lines: 0 oder 1, oder bitten Sie den Agent, zuerst datei-für-datei zusammenzufassen, bevor Sie vollständige Diffs lesen.

Alternativen

Git vs. andere

AlternativeWann stattdessenKompromiss
GitHub MCPSie möchten Fernverlauf (PRs, Review-Kommentare, Actions) nicht nur lokalBenötigt ein PAT und führt Netzwerkaufrufe durch; leistungsstärker, aber größere Angriffsfläche
filesystem MCP + shellSie benötigen Operationen über Git hinaus (grep, find, Build-Befehle)Viel breitere Auswirkungen — bleiben Sie bei Git MCP, wenn Git alles ist, was Sie benötigen

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen