GAC als MCP-Server verwenden
May 17, 2026 · View on GitHub
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.
Inhaltsverzeichnis
Was ist MCP?
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.
Vorteile
- 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.)
Einrichtung
Der MCP-Server wird mit uvx gac serve gestartet und kommuniziert ueber stdio, den Standard-MCP-Transport.
Claude Code
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"]
}
}
}
Cursor
Fuegen Sie dies zu Ihren Cursor MCP-Einstellungen hinzu (.cursor/mcp.json):
{
"mcpServers": {
"gac": {
"command": "uvx",
"args": ["gac", "serve"]
}
}
}
Andere MCP-Clients
Jeder MCP-kompatible Client kann GAC verwenden. Der Server-Einstiegspunkt ist:
command: uvx
args: ["gac", "serve"]
transport: stdio
Verfuegbare Tools
Der Server stellt zwei Tools bereit:
gac_status
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.
gac_commit
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.
Workflows
Einfacher Commit
1. gac_status() → Sehen, was sich geaendert hat
2. gac_commit(stage_all=true, auto_confirm=true) → Stufen, Nachricht generieren und committen
Vorschau vor dem Commit
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
Gruppierte Commits
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
Commit mit Kontext
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
)
Konfiguration
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.
Fehlerbehebung
"No model configured"
Fuehren Sie uvx gac init aus, um Ihren KI-Provider und Ihr Modell einzurichten, bevor Sie den MCP-Server verwenden.
"No staged changes found"
Stufen Sie Dateien manuell (git add) oder verwenden Sie stage_all=true im gac_commit-Aufruf.
Server startet nicht
Ueberpruefen Sie, ob GAC installiert und zugaenglich ist:
uvx gac --version
Wenn Sie uvx verwenden, stellen Sie sicher, dass uv installiert und in Ihrem PATH ist.
Agent findet den Server nicht
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.
Rich-Ausgabe-Korruption
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.