Git MCP Server
Ein MCP-Server (Model Context Protocol), der Tools für die Interaktion mit Git-Repositories bereitstellt. Ermöglicht LLMs und KI-Agenten die Durchführung von Git-Operationen wie Klonen, Commit, Push, Pull, Branch, Diff, Log, Status und mehr über den MCP-Standard.
Dieser Server basiert auf der cyanheads/mcp-ts-template und folgt einer modularen Architektur:
Hinweis für Entwickler : Dieses Repository enthält eine .clinerules- Datei, die als Spickzettel für Entwickler für Ihren LLM-Codierungsagenten mit einer Kurzreferenz für die Codebasismuster, Dateispeicherorte und Codeausschnitte dient.
Inhaltsverzeichnis
| Übersicht | Funktionen | Installation |
| Konfiguration | Projektstruktur |
| Tools | Ressourcen | Entwicklung | Lizenz |
Related MCP server: GitHub MCP Server
Überblick
Stärken Sie Ihre KI-Agenten und Entwicklungstools mit nahtloser Git-Integration!
Der Git-MCP-Server fungiert als Brücke und ermöglicht Anwendungen (MCP-Clients), die das Model Context Protocol (MCP) verstehen – wie erweiterte KI-Assistenten (LLMs), IDE-Erweiterungen oder benutzerdefinierte Skripte –, direkt und sicher mit lokalen Git-Repositorys zu interagieren.
Anstelle komplexer Skripts oder manueller CLI können Ihre Tools diesen Server für Folgendes nutzen:
Automatisieren Sie Git-Workflows : Klonen Sie Repositories, erstellen Sie Zweige, stellen Sie Änderungen bereit, committen Sie Arbeit, pushen Sie Updates und verwalten Sie Tags programmgesteuert.
Erhalten Sie Einblicke in das Repository : Überprüfen Sie den Status, zeigen Sie Protokolle und Diff-Änderungen an und untersuchen Sie Git-Objekte, ohne die Hostanwendung zu verlassen.
Integrieren Sie Git in die KI-gesteuerte Entwicklung : Ermöglichen Sie LLMs die Verwaltung der Versionskontrolle als Teil ihrer Codierungs- oder Refactoring-Aufgaben.
Dieser Server basiert auf dem robusten mcp-ts-template und bietet eine standardisierte, sichere und effiziente Möglichkeit, Git-Funktionen über den MCP-Standard bereitzustellen. Dies wird durch die sichere Ausführung des auf dem System installierten Standard- git Kommandozeilentools mithilfe des child_process Moduls von Node.js erreicht. Dies gewährleistet Kompatibilität und nutzt die volle Leistungsfähigkeit von Git.
Merkmale
Kerndienstprogramme (aus Vorlage)
Nutzt die robusten Dienstprogramme der mcp-ts-template :
Protokollierung : Strukturierte, konfigurierbare Protokollierung (Dateirotation, Konsole, MCP-Benachrichtigungen) mit Schwärzung sensibler Daten.
Fehlerbehandlung : Zentralisierte Fehlerverarbeitung, standardisierte Fehlertypen (
McpError) und automatische Protokollierung.Konfiguration : Laden von Umgebungsvariablen (
dotenv).Eingabevalidierung/-bereinigung : Verwendet
zodzur Schemavalidierung und benutzerdefinierten Bereinigungslogik (entscheidend für Pfade).Anforderungskontext : Verfolgung und Korrelation von Vorgängen über eindeutige Anforderungs-IDs.
Typsicherheit : Starke Typisierung wird durch TypeScript- und Zod-Schemas erzwungen.
HTTP-Transportoption : Integrierter Express-Server mit SSE, Sitzungsverwaltung und CORS-Unterstützung.
Git-Operationen
Direkte Git-CLI-Ausführung : Interagiert mit Git durch sichere Ausführung des Standard
git-Befehlszeilentools über Node.jschild_processund gewährleistet so vollständige Kompatibilität und Zugriff auf die Funktionen von Git.Umfassende Befehlsabdeckung : Stellt eine große Bandbreite an Git-Befehlen als MCP-Tools bereit (siehe Abschnitt „Tools “).
Repository-Interaktion : Unterstützt Statusprüfung, Verzweigung, Staging, Commit, Abrufen, Pullen, Pushen, Diffing, Protokollieren, Zurücksetzen, Taggen und mehr.
Arbeitsverzeichnisverwaltung : Ermöglicht das Festlegen und Löschen eines sitzungsspezifischen Arbeitsverzeichnisses für die Kontextpersistenz über mehrere Git-Vorgänge hinweg.
Sicherheitsfunktionen : Beinhaltet Prüfungen und erfordert eine ausdrückliche Bestätigung für potenziell zerstörerische Vorgänge wie
git cleanundgit reset --hard.Commit-Signierung : Unterstützt GPG- oder SSH-Signierung für verifizierte Commits, gesteuert über die Umgebungsvariable
GIT_SIGN_COMMITSund die serverseitige Git-Konfiguration. Enthält einen optionalen Tool-Parameter, um bei fehlgeschlagener Signierung auf nicht signierte Commits zurückzugreifen.
Installation
Voraussetzungen
Installation über npm
Installieren Sie das Paket global:
npm install @cyanheads/git-mcp-server
Von der Quelle installieren
Klonen Sie das Repository:
git clone https://github.com/cyanheads/git-mcp-server.git cd git-mcp-serverInstallieren Sie Abhängigkeiten:
npm installErstellen Sie das Projekt:
npm run build (or `npm run rebuild`)Dadurch wird der TypeScript-Code im Verzeichnis
dist/in JavaScript kompiliert und der Einstiegspunkt ausführbar gemacht.
Konfiguration
Umgebungsvariablen
Konfigurieren Sie den Server mithilfe von Umgebungsvariablen. Erstellen Sie eine .env Datei im Projektstamm (Kopie aus .env.example ) oder legen Sie sie in Ihrer Umgebung fest.
Variable | Beschreibung | Standard |
| Transportmechanismus: |
|
| Port für den HTTP-Server (wenn |
|
| Hostadresse für den HTTP-Server (wenn |
|
| Durch Kommas getrennte Liste zulässiger Ursprünge für CORS (wenn | (keiner) |
| Protokollierungsebene ( |
|
| Auf |
|
| Geheimer Schlüssel zum Signieren/Verifizieren von Authentifizierungstoken (erforderlich, wenn die Authentifizierung in Zukunft aktiviert wird). |
|
MCP-Client-Einstellungen
Fügen Sie zu Ihren MCP-Clienteinstellungen hinzu (z. B. cline_mcp_settings.json ):
Projektstruktur
Die Codebasis folgt einer modularen Struktur innerhalb des src/ -Verzeichnisses:
Für einen detaillierten Dateibaum führen Sie npm run tree aus oder sehen Sie sich docs/tree.md an.
Werkzeuge
Der Git MCP-Server bietet eine Reihe von Tools für die Interaktion mit Git-Repositorys, die über das Model Context Protocol aufgerufen werden können.
Werkzeugname | Beschreibung | Hauptargumente |
| Stellt bestimmte Dateien oder Muster bereit. |
|
| Verwaltet Zweige (auflisten, erstellen, löschen, umbenennen, aktuelle anzeigen). |
|
| Wechselt Zweige oder stellt Arbeitsbaumdateien wieder her. |
|
| Wendet durch vorhandene Commits eingeführte Änderungen an. |
|
| Entfernt nicht verfolgte Dateien. Erfordert . |
|
| Löscht das sitzungsspezifische Arbeitsverzeichnis. | (keiner) |
| Klont ein Repository in einen angegebenen absoluten Pfad. |
|
| Übernimmt stufenweise Änderungen. Unterstützt Autorüberschreibung und Signaturkontrolle. |
|
| Zeigt Änderungen zwischen Commits, Arbeitsbaum usw. an. |
|
| Lädt Objekte und Referenzen aus anderen Repositories herunter. |
|
| Initialisiert ein neues Git-Repository unter dem angegebenen absoluten Pfad. Der Standardwert für den ersten Zweig ist „main“. |
|
| Zeigt Commit-Protokolle an. |
|
| Führt den angegebenen Zweig mit dem aktuellen Zweig zusammen. |
|
| Ruft Daten aus einem anderen Repository oder lokalen Zweig ab und integriert diese. |
|
| Aktualisiert Remote-Refs mithilfe lokaler Refs. |
|
| Wendet Commits erneut auf einem anderen Basistipp an. |
|
| Verwaltet Remote-Repositorys (auflisten, hinzufügen, entfernen, anzeigen). |
|
| Setzt den aktuellen HEAD auf einen angegebenen Zustand zurück. Unterstützt Soft-, Mixed- und Hard-Modi. Verwenden Sie „hard“ mit Vorsicht . |
|
| Legt das Standardarbeitsverzeichnis fest. Kann optional das Repository initialisieren, falls nicht vorhanden. Erfordert absoluten Pfad. |
|
| Zeigt Informationen zu Git-Objekten (Commits, Tags usw.) an. |
|
| Verwaltet gespeicherte Änderungen (Auflisten, Anwenden, Pop, Drop, Speichern). |
|
| Ruft den Repository-Status ab (Zweig, bereitgestellte, geänderte, nicht verfolgte Dateien). |
|
| Verwaltet Tags (Auflisten, Erstellen mit Anmerkungen/leichtgewichtig, Löschen). |
|
| Verwaltet Git-Arbeitsbäume (auflisten, hinzufügen, entfernen, verschieben, bereinigen). |
|
Hinweis: Der
Ressourcen
MCP-Ressourcen sind in dieser Version (v2.0.12) nicht implementiert.
Diese Version konzentriert sich auf die überarbeitete Implementierung der Git-Tools basierend auf der neuesten mcp-ts-template und dem MCP SDK v1.12.0. Zuvor verfügbare Ressourcenfunktionen wurden im Rahmen dieses umfangreichen Updates vorübergehend entfernt.
Wenn Sie Zugriff auf MCP-Ressourcen benötigen (z. B. zum Lesen von Dateiinhalten direkt über den Server), verwenden Sie bitte die stabile Version v1.2.4 .
Zukünftige Entwicklungen können die Ressourcenfunktionen in einer nachfolgenden Version wieder einführen.
Hinweis: Diese Version (v2.0.0) konzentriert sich auf die Refaktorierung und Aktualisierung der wichtigsten Git-Tools basierend auf dem neuesten MCP SDK. MCP-Ressourcenfunktionen sind in dieser Version nicht implementiert. Für den Ressourcenzugriff verwenden Sie bitte v1.2.4 .
Entwicklung
Erstellen und Testen
Lizenz
Dieses Projekt ist unter der Apache-Lizenz 2.0 lizenziert – Einzelheiten finden Sie in der Datei LICENSE .