English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano
GAC kann als Model Context Protocol (MCP)-Server betrieben werden, sodass KI-Agenten und Editoren Commits durch strukturierte Tool-Aufrufe statt Shell-Befehle erstellen koennen.
Das Model Context Protocol ist ein offener Standard, der es KI-Anwendungen ermoeglicht, externe Tools ueber eine strukturierte Schnittstelle aufzurufen. Indem GAC als MCP-Server ausgefuehrt wird, kann jeder MCP-kompatible Client den Repository-Status pruefen und KI-gestuetzte Commits erstellen, ohne Shell-Befehle direkt aufzurufen.
- Strukturierte Interaktion: Agenten rufen typisierte Tools mit validierten Parametern auf, anstatt Shell-Ausgaben zu parsen
- Zwei-Tool-Workflow:
gac_statuszum Inspizieren,gac_commitzum Handeln - ideal fuer agentenbasiertes Reasoning - Volle GAC-Funktionalitaet: KI-Commit-Nachrichten, gruppierte Commits, Geheimnis-Scanning und Push - alles ueber MCP verfuegbar
- Keine zusaetzliche Konfiguration: Der Server verwendet Ihre bestehende GAC-Konfiguration (
~/.gac.env, Provider-Einstellungen usw.)
Der MCP-Server wird mit uvx gac serve gestartet und kommuniziert ueber stdio, den Standard-MCP-Transport.
Fuegen Sie dies zu Ihrer Projekt-Datei .mcp.json oder globalen ~/.claude/claude_code_config.json hinzu:
{
"mcpServers": {
"gac": {
"command": "uvx",
"args": ["gac", "serve"]
}
}
}Oder wenn GAC global installiert ist:
{
"mcpServers": {
"gac": {
"command": "gac",
"args": ["serve"]
}
}
}Fuegen Sie dies zu Ihren Cursor MCP-Einstellungen hinzu (.cursor/mcp.json):
{
"mcpServers": {
"gac": {
"command": "uvx",
"args": ["gac", "serve"]
}
}
}Jeder MCP-kompatible Client kann GAC verwenden. Der Server-Einstiegspunkt ist:
command: uvx
args: ["gac", "serve"]
transport: stdio
Der Server stellt zwei Tools bereit:
Inspiziert den Repository-Status. Verwenden Sie dies vor dem Commit, um zu verstehen, was committet wird.
Parameter:
| Parameter | Type | Default | Beschreibung |
|---|---|---|---|
format |
"summary" | "detailed" | "json" |
"summary" |
Ausgabeformat |
include_diff |
bool | false |
Vollstaendigen Diff-Inhalt einschliessen |
include_stats |
bool | true |
Statistiken der Zeilenaenderungen anzeigen |
include_history |
int | 0 |
Anzahl der letzten Commits zum Einschliessen |
staged_only |
bool | false |
Nur gestufte Aenderungen anzeigen |
include_untracked |
bool | true |
Nicht verfolgte Dateien einschliessen |
max_diff_lines |
int | 500 |
Diff-Ausgabe begrenzen (0 = unbegrenzt) |
Rueckgabe: Branch-Name, Dateistatus (gestuftet/ungestuftet/nicht verfolgt/Konflikte), optionaler Diff-Inhalt, optionale Statistiken und optionaler Commit-Verlauf.
Generiert eine KI-gestuetzte Commit-Nachricht und fuehrt optional den Commit aus.
Parameter:
| Parameter | Type | Default | Beschreibung |
|---|---|---|---|
stage_all |
bool | false |
Alle Aenderungen vor dem Commit stufen (git add -A) |
files |
list[str] | [] |
Bestimmte Dateien zum Stufen |
dry_run |
bool | false |
Vorschau ohne Ausfuehrung |
message_only |
bool | false |
Nachricht generieren ohne Commit |
push |
bool | false |
Nach dem Commit zum Remote pushen |
group |
bool | false |
Aenderungen in mehrere logische Commits aufteilen |
one_liner |
bool | false |
Einzeilige Commit-Nachricht |
scope |
string | null | null |
Conventional Commit Scope (automatisch erkannt, wenn nicht angegeben) |
hint |
string | "" |
Zusaetzlicher Kontext fuer bessere Nachrichten |
model |
string | null | null |
KI-Modell ueberschreiben (provider:model_name) |
language |
string | null | null |
Sprache der Commit-Nachricht ueberschreiben |
skip_secret_scan |
bool | false |
Sicherheitsscan ueberspringen |
no_verify |
bool | false |
Pre-Commit-Hooks ueberspringen |
auto_confirm |
bool | false |
Bestaetigungsaufforderungen ueberspringen (fuer Agenten erforderlich) |
Rueckgabe: Erfolgsstatus, generierte Commit-Nachricht, Commit-Hash (falls committed), Liste der geaenderten Dateien und eventuelle Warnungen.
1. gac_status() → Sehen, was sich geaendert hat
2. gac_commit(stage_all=true, auto_confirm=true) → Stufen, Nachricht generieren und committen
1. gac_status(include_diff=true, include_stats=true) → Aenderungen im Detail pruefen
2. gac_commit(stage_all=true, dry_run=true) → Commit-Nachricht in der Vorschau ansehen
3. gac_commit(stage_all=true, auto_confirm=true) → Commit ausfuehren
1. gac_status() → Alle Aenderungen anzeigen
2. gac_commit(stage_all=true, group=true, dry_run=true) → Logische Gruppierungen in der Vorschau ansehen
3. gac_commit(stage_all=true, group=true, auto_confirm=true) → Gruppierte Commits ausfuehren
1. gac_status(include_history=5) → Letzte Commits als Stilreferenz anzeigen
2. gac_commit(
stage_all=true,
hint="Fixes login timeout bug from issue #42",
scope="auth",
auto_confirm=true
)
Der MCP-Server verwendet Ihre bestehende GAC-Konfiguration. Ueber Folgendes hinaus ist keine zusaetzliche Einrichtung erforderlich:
- Provider und Modell: Fuehren Sie
uvx gac initoderuvx gac modelaus, um Ihren KI-Provider zu konfigurieren - API-Schluessel: Gespeichert in
~/.gac.env(eingerichtet waehrenduvx gac init) - Optionale Einstellungen: Alle GAC-Umgebungsvariablen gelten (
GAC_LANGUAGE,GAC_VERBOSEusw.)
Siehe die Hauptdokumentation fuer alle Konfigurationsoptionen.
Fuehren Sie uvx gac init aus, um Ihren KI-Provider und Ihr Modell einzurichten, bevor Sie den MCP-Server verwenden.
Stufen Sie Dateien manuell (git add) oder verwenden Sie stage_all=true im gac_commit-Aufruf.
Ueberpruefen Sie, ob GAC installiert und zugaenglich ist:
uvx gac --versionWenn Sie uvx verwenden, stellen Sie sicher, dass uv installiert und in Ihrem PATH ist.
Stellen Sie sicher, dass die MCP-Konfigurationsdatei am richtigen Ort fuer Ihren Client liegt und dass der command-Pfad von Ihrer Shell-Umgebung aus zugaenglich ist.
Der MCP-Server leitet alle Rich-Konsolenausgaben automatisch auf stderr um, um stdio-Protokoll-Korruption zu verhindern. Wenn Sie fehlerhafte Ausgaben sehen, stellen Sie sicher, dass Sie uvx gac serve (nicht uvx gac direkt) ausfuehren, wenn Sie MCP verwenden.