Git MCP Server

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.js child_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 und git 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

Installation über npm

  1. Installieren Sie das Paket global:
    npm install @cyanheads/git-mcp-server

Von der Quelle installieren

  1. Klonen Sie das Repository:
    git clone https://github.com/cyanheads/git-mcp-server.git cd git-mcp-server
  2. Installieren Sie Abhängigkeiten:
    npm install
  3. Erstellen 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.

VariableBeschreibungStandard
MCP_TRANSPORT_TYPETransportmechanismus: stdio oder http .stdio
MCP_HTTP_PORTPort für den HTTP-Server (wenn MCP_TRANSPORT_TYPE=http ). Bei Belegung werden die nächsten Ports erneut versucht.3010
MCP_HTTP_HOSTHostadresse für den HTTP-Server (wenn MCP_TRANSPORT_TYPE=http ).127.0.0.1
MCP_ALLOWED_ORIGINSDurch Kommas getrennte Liste zulässiger Ursprünge für CORS (wenn MCP_TRANSPORT_TYPE=http ).(keiner)
MCP_LOG_LEVELProtokollierungsebene ( debug , info , notice , warning , error , crit , alert , emerg ). Von der Vorlage geerbt.info
GIT_SIGN_COMMITSAuf "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_KEYGeheimer 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 ):

{ "mcpServers": { "git-mcp-server": { // Use a descriptive name "command": "node", // Use node to run the script "args": ["/path/to/your/git-mcp-server/dist/index.js"], // Absolute path to the built entry point "env": { // "MCP_TRANSPORT_TYPE": "http", // Optional: if using http // "MCP_HTTP_PORT": "3010", // Optional: if using http and non-default port // "GIT_SIGN_COMMITS": "true" // Optional: Enable commit signing attempts if server is configured }, "disabled": false, "autoApprove": [] // Configure auto-approval rules if desired } } }

Projektstruktur

Die Codebasis folgt einer modularen Struktur innerhalb des src/ -Verzeichnisses:

src/ ├── index.ts # Entry point: Initializes and starts the server ├── config/ # Configuration loading (env vars, package info) │ └── index.ts ├── mcp-server/ # Core MCP server logic and capability registration │ ├── server.ts # Server setup, capability registration │ ├── transports/ # Transport handling (stdio, http) │ ├── resources/ # MCP Resource implementations (currently none) │ └── tools/ # MCP Tool implementations (subdirs per tool) ├── types-global/ # Shared TypeScript type definitions └── utils/ # Common utility functions (logger, error handler, etc.)

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.

WerkzeugnameBeschreibungHauptargumente
git_addStellt bestimmte Dateien oder Muster bereit.path? files?
git_branchVerwaltet Zweige (auflisten, erstellen, löschen, umbenennen, aktuelle anzeigen).path? mode , branchName? newBranchName? startPoint? force? all? remote?
git_checkoutWechselt Zweige oder stellt Arbeitsbaumdateien wieder her.path? branchOrPath , newBranch? force?
git_cherry_pickWendet durch vorhandene Commits eingeführte Änderungen an.path? commitRef , mainline? strategy? noCommit? signoff?
git_cleanEntfernt nicht verfolgte Dateien. Erfordert force: true .path? force , dryRun? directories? ignored?
git_clear_working_dirLöscht das sitzungsspezifische Arbeitsverzeichnis.(keiner)
git_cloneKlont 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_diffZeigt Änderungen zwischen Commits, Arbeitsbaum usw. an.path? , commit1? , commit2? , staged? , file?
git_fetchLädt Objekte und Referenzen aus anderen Repositories herunter.path? remote? prune? tags? all?
git_initInitialisiert ein neues Git-Repository unter dem angegebenen absoluten Pfad.path , initialBranch? bare? quiet?
git_logZeigt Commit-Protokolle an.path? , maxCount? , author? , since? , until? , branchOrFile?
git_mergeFührt den angegebenen Zweig mit dem aktuellen Zweig zusammen.path? branch , commitMessage? noFf? squash? abort?
git_pullRuft Daten aus einem anderen Repository oder lokalen Zweig ab und integriert diese.path? remote? branch? rebase? ffOnly?
git_pushAktualisiert Remote-Refs mithilfe lokaler Refs.path? remote? branch? remoteBranch? force? forceWithLease? setUpstream? tags? delete?
git_rebaseWendet Commits erneut auf einem anderen Basistipp an.path? mode? upstream? branch? interactive? strategy? strategyOption? onto?
git_remoteVerwaltet Remote-Repositorys (auflisten, hinzufügen, entfernen, anzeigen).path? mode , name? url?
git_resetSetzt 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_dirLegt das Standardarbeitsverzeichnis für die aktuelle Sitzung fest. Erfordert einen absoluten Pfad.path , validateGitRepo?
git_showZeigt Informationen zu Git-Objekten (Commits, Tags usw.) an.path? ref ., filePath?
git_stashVerwaltet gespeicherte Änderungen (Auflisten, Anwenden, Pop, Drop, Speichern).path? mode , stashRef? message?
git_statusRuft den Repository-Status ab (Zweig, bereitgestellte, geänderte, nicht verfolgte Dateien).path?
git_tagVerwaltet 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

# Build the project (compile TS to JS in dist/ and make executable) npm run build # Test the server locally using the MCP inspector tool (stdio transport) npm run inspector # Test the server locally using the MCP inspector tool (http transport) npm run inspector:http # Clean build artifacts (runs scripts/clean.ts) npm run clean # Generate a file tree representation for documentation (runs scripts/tree.ts) npm run tree # Clean build artifacts and then rebuild the project npm run rebuild # Start the server using stdio (default) npm start # Or explicitly: npm run start:stdio # Start the server using HTTP transport npm run start:http

Lizenz

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


You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

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.

  1. Inhaltsverzeichnis
    1. Überblick
      1. Merkmale
        1. Kerndienstprogramme (aus Vorlage)
        2. Git-Operationen
      2. Installation
        1. Voraussetzungen
        2. Installation über npm
        3. Von der Quelle installieren
      3. Konfiguration
        1. Umgebungsvariablen
        2. MCP-Client-Einstellungen
      4. Projektstruktur
        1. Werkzeuge
          1. Ressourcen
            1. Entwicklung
              1. Erstellen und Testen
            2. Lizenz

              Related MCP Servers

              • -
                security
                A
                license
                -
                quality
                A 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 -
                12
                45,886
                JavaScript
                MIT License
              • A
                security
                A
                license
                A
                quality
                A Model Context Protocol server for creating commit messages from git staged files.
                Last updated -
                2
                1
                TypeScript
                MIT License
              • A
                security
                F
                license
                A
                quality
                A 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 -
                1
                JavaScript
              • -
                security
                F
                license
                -
                quality
                Provides 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 -
                1
                TypeScript
                • Apple

              View all related MCP servers

              ID: e0hyslgby6