Skip to main content
Glama

Git MCP Server

Typoskript Modellkontextprotokoll Version Lizenz Status GitHub

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 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.

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 ):

{ "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.

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 .

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. Der Standardwert für den ersten Zweig ist „main“.

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 fest. Kann optional das Repository initialisieren, falls nicht vorhanden. Erfordert absoluten Pfad.

path , validateGitRepo? initializeIfNotPresent?

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?

git_worktree

Verwaltet Git-Arbeitsbäume (auflisten, hinzufügen, entfernen, verschieben, bereinigen).

path? mode , worktreePath? commitish? newBranch? force? detach? newPath? verbose? dryRun? expire?

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

# 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 .


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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cyanheads/git-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server