Integrations
Provides comprehensive Git operations including repository initialization, cloning, file staging, committing, branch management, tag operations, remote repository handling, and stash management, enabling LLMs to interact with Git repositories.
Supports interactions with GitHub repositories through Git operations like cloning from GitHub URLs, pushing to and pulling from GitHub remotes, enabling LLMs to manage code on GitHub.
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 |
Ü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
zod
zur 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_process
und 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 clean
undgit reset --hard
. - Commit-Signierung : Unterstützt GPG- oder SSH-Signierung für verifizierte Commits, gesteuert über die Umgebungsvariable
GIT_SIGN_COMMITS
und die serverseitige Git-Konfiguration. Enthält einen optionalen Tool-Parameter, um bei fehlgeschlagener Signierung auf nicht signierte Commits zurückzugreifen.
Installation
Voraussetzungen
- Node.js (>=18.0.0)
- npm (wird mit Node.js geliefert)
- Git ist im Systempfad installiert und zugänglich.
Installation über npm
- Installieren Sie das Paket global:Copy
Von der Quelle installieren
- Klonen Sie das Repository:Copy
- Installieren Sie Abhängigkeiten:Copy
- Erstellen Sie das Projekt:Dadurch wird der TypeScript-Code im VerzeichnisCopy
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 |
---|---|---|
MCP_TRANSPORT_TYPE | Transportmechanismus: stdio oder http . | stdio |
MCP_HTTP_PORT | Port für den HTTP-Server (wenn MCP_TRANSPORT_TYPE=http ). Bei Belegung werden die nächsten Ports erneut versucht. | 3010 |
MCP_HTTP_HOST | Hostadresse für den HTTP-Server (wenn MCP_TRANSPORT_TYPE=http ). | 127.0.0.1 |
MCP_ALLOWED_ORIGINS | Durch Kommas getrennte Liste zulässiger Ursprünge für CORS (wenn MCP_TRANSPORT_TYPE=http ). | (keiner) |
MCP_LOG_LEVEL | Protokollierungsebene ( debug , info , notice , warning , error , crit , alert , emerg ). Von der Vorlage geerbt. | info |
GIT_SIGN_COMMITS | Auf "true" setzen, um Signierversuche für Commits zu ermöglichen, die vom Tool git_commit durchgeführt werden. Erfordert serverseitiges Git/Key-Setup (siehe unten). | false |
MCP_AUTH_SECRET_KEY | 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 |
---|---|---|
git_add | Stellt bestimmte Dateien oder Muster bereit. | path? files? |
git_branch | Verwaltet Zweige (auflisten, erstellen, löschen, umbenennen, aktuelle anzeigen). | path? mode , branchName? newBranchName? startPoint? force? all? remote? |
git_checkout | Wechselt Zweige oder stellt Arbeitsbaumdateien wieder her. | path? branchOrPath , newBranch? force? |
git_cherry_pick | Wendet durch vorhandene Commits eingeführte Änderungen an. | path? commitRef , mainline? strategy? noCommit? signoff? |
git_clean | Entfernt nicht verfolgte Dateien. Erfordert force: true . | path? force , dryRun? directories? ignored? |
git_clear_working_dir | Löscht das sitzungsspezifische Arbeitsverzeichnis. | (keiner) |
git_clone | Klont ein Repository in einen angegebenen absoluten Pfad. | repositoryUrl , targetPath , branch? depth? quiet? |
git_commit | Übernimmt stufenweise Änderungen. Unterstützt Autorüberschreibung und Signaturkontrolle. | path? ?, message , author? allowEmpty? amend? forceUnsignedOnFailure? |
git_diff | Zeigt Änderungen zwischen Commits, Arbeitsbaum usw. an. | path? , commit1? , commit2? , staged? , file? |
git_fetch | Lädt Objekte und Referenzen aus anderen Repositories herunter. | path? remote? prune? tags? all? |
git_init | Initialisiert ein neues Git-Repository unter dem angegebenen absoluten Pfad. | path , initialBranch? bare? quiet? |
git_log | Zeigt Commit-Protokolle an. | path? , maxCount? , author? , since? , until? , branchOrFile? |
git_merge | Führt den angegebenen Zweig mit dem aktuellen Zweig zusammen. | path? branch , commitMessage? noFf? squash? abort? |
git_pull | Ruft Daten aus einem anderen Repository oder lokalen Zweig ab und integriert diese. | path? remote? branch? rebase? ffOnly? |
git_push | Aktualisiert Remote-Refs mithilfe lokaler Refs. | path? remote? branch? remoteBranch? force? forceWithLease? setUpstream? tags? delete? |
git_rebase | Wendet Commits erneut auf einem anderen Basistipp an. | path? mode? upstream? branch? interactive? strategy? strategyOption? onto? |
git_remote | Verwaltet Remote-Repositorys (auflisten, hinzufügen, entfernen, anzeigen). | path? mode , name? url? |
git_reset | Setzt den aktuellen HEAD auf einen angegebenen Zustand zurück. Unterstützt Soft-, Mixed- und Hard-Modi. Verwenden Sie „hard“ mit Vorsicht . | path? ?, mode? commit? |
git_set_working_dir | Legt das Standardarbeitsverzeichnis für die aktuelle Sitzung fest. Erfordert einen absoluten Pfad. | path , validateGitRepo? |
git_show | Zeigt Informationen zu Git-Objekten (Commits, Tags usw.) an. | path? ref ., filePath? |
git_stash | Verwaltet gespeicherte Änderungen (Auflisten, Anwenden, Pop, Drop, Speichern). | path? mode , stashRef? message? |
git_status | Ruft den Repository-Status ab (Zweig, bereitgestellte, geänderte, nicht verfolgte Dateien). | path? |
git_tag | Verwaltet Tags (Auflisten, Erstellen mit Anmerkungen/leichtgewichtig, Löschen). | path? mode , tagName? message? commitRef? annotate? |
Hinweis: Der path
ist für die meisten Tools standardmäßig das Arbeitsverzeichnis der Sitzung, wenn er über git_set_working_dir
festgelegt wird.
Ressourcen
MCP-Ressourcen sind in dieser Version (v2.0.8) 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.11.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 .
You must be authenticated.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Ein Model Context Protocol-Server, der großen Sprachmodellen die Interaktion mit Git-Repositorys über eine robuste API ermöglicht und Vorgänge wie Repository-Initialisierung, Klonen, Datei-Staging, Commiting und Branch-Verwaltung unterstützt.
- Inhaltsverzeichnis
- Überblick
- Merkmale
- Installation
- Konfiguration
- Projektstruktur
- Werkzeuge
- Ressourcen
- Entwicklung
- Lizenz
Related Resources
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server for Git repository interaction and automation. This server provides tools to read, search, and manipulate Git repositories via Large Language Models.Last updated -1245,886JavaScriptMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server for creating commit messages from git staged files.Last updated -21TypeScriptMIT License
- AsecurityFlicenseAqualityA Model Context Protocol server that enables AI models to interact with GitHub's API, allowing for repository creation and management with descriptions, topics, and website URLs through natural language commands.Last updated -1JavaScript
- -securityFlicense-qualityProvides integration with Github through the Model Context Protocol (MCP), allowing Large Language Models to interact with Github's repositories, issues, pull requests and search functionality.Last updated -1TypeScript