GAC als MCP-server gebruiken

May 17, 2026 · View on GitHub

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano

GAC kan draaien als een Model Context Protocol (MCP)-server, waardoor AI-agents en editors commits kunnen genereren via gestructureerde tool-aanroepen in plaats van shell-commando's.

Inhoudsopgave

Wat is MCP?

Het Model Context Protocol is een open standaard die AI-applicaties in staat stelt externe tools aan te roepen via een gestructureerde interface. Door GAC als MCP-server te draaien, kan elke MCP-compatibele client de repository-status inspecteren en AI-gestuurde commits maken zonder direct shell-commando's uit te voeren.

Voordelen

  • Gestructureerde interactie: Agents roepen getypeerde tools aan met gevalideerde parameters in plaats van shell-uitvoer te parsen
  • Twee-tool workflow: gac_status om te inspecteren, gac_commit om te handelen - een natuurlijke match voor agent-redenering
  • Volledige GAC-mogelijkheden: AI-commitberichten, gegroepeerde commits, secret scanning en push - allemaal beschikbaar via MCP
  • Geen extra configuratie: De server gebruikt uw bestaande GAC-configuratie (~/.gac.env, provider-instellingen, enz.)

Installatie

De MCP-server wordt gestart met uvx gac serve en communiceert via stdio, het standaard MCP-transport.

Claude Code

Voeg toe aan uw project .mcp.json of globale ~/.claude/claude_code_config.json:

{
  "mcpServers": {
    "gac": {
      "command": "uvx",
      "args": ["gac", "serve"]
    }
  }
}

Of als u GAC globaal geinstalleerd heeft:

{
  "mcpServers": {
    "gac": {
      "command": "gac",
      "args": ["serve"]
    }
  }
}

Cursor

Voeg toe aan uw Cursor MCP-instellingen (.cursor/mcp.json):

{
  "mcpServers": {
    "gac": {
      "command": "uvx",
      "args": ["gac", "serve"]
    }
  }
}

Andere MCP-clients

Elke MCP-compatibele client kan GAC gebruiken. Het server-ingangspunt is:

command: uvx
args: ["gac", "serve"]
transport: stdio

Beschikbare tools

De server biedt twee tools:

gac_status

Inspecteer de repository-status. Gebruik dit voor het committen om te begrijpen wat er gecommit zal worden.

Parameters:

ParameterTypeDefaultBeschrijving
format"summary" | "detailed" | "json""summary"Uitvoerformaat
include_diffboolfalseVolledige diff-inhoud meenemen
include_statsbooltrueStatistieken van regelwijzigingen meenemen
include_historyint0Aantal recente commits om mee te nemen
staged_onlyboolfalseAlleen gestagede wijzigingen tonen
include_untrackedbooltrueNiet-gevolgde bestanden meenemen
max_diff_linesint500Diff-uitvoer beperken (0 = onbeperkt)

Retourneert: Branch-naam, bestandsstatus (gestaged/niet-gestaged/niet-gevolgd/conflicten), optionele diff-inhoud, optionele statistieken en optionele commit-geschiedenis.

gac_commit

Genereer een AI-gestuurd commitbericht en voer optioneel de commit uit.

Parameters:

ParameterTypeDefaultBeschrijving
stage_allboolfalseAlle wijzigingen stagen voor het committen (git add -A)
fileslist[str][]Specifieke bestanden om te stagen
dry_runboolfalseVoorvertoning zonder uitvoering
message_onlyboolfalseBericht genereren zonder te committen
pushboolfalseNa de commit naar remote pushen
groupboolfalseWijzigingen opsplitsen in meerdere logische commits
one_linerboolfalseEenregelig commitbericht
scopestring | nullnullConventional commit scope (automatisch gedetecteerd indien niet opgegeven)
hintstring""Extra context voor betere berichten
modelstring | nullnullAI-model overschrijven (provider:model_name)
languagestring | nullnullTaal van commitbericht overschrijven
skip_secret_scanboolfalseBeveiligingsscan overslaan
no_verifyboolfalsePre-commit hooks overslaan
auto_confirmboolfalseBevestigingsprompts overslaan (vereist voor agents)

Retourneert: Successtatus, gegenereerd commitbericht, commit-hash (indien gecommit), lijst van gewijzigde bestanden en eventuele waarschuwingen.

Workflows

Basis commit

1. gac_status()                              → Bekijk wat er is veranderd
2. gac_commit(stage_all=true, auto_confirm=true)  → Stage, genereer bericht en commit

Voorvertoning voor het committen

1. gac_status(include_diff=true, include_stats=true)  → Wijzigingen in detail bekijken
2. gac_commit(stage_all=true, dry_run=true)            → Voorvertoning van het commitbericht
3. gac_commit(stage_all=true, auto_confirm=true)       → Commit uitvoeren

Gegroepeerde commits

1. gac_status()                                           → Alle wijzigingen bekijken
2. gac_commit(stage_all=true, group=true, dry_run=true)   → Voorvertoning van logische groeperingen
3. gac_commit(stage_all=true, group=true, auto_confirm=true)  → Gegroepeerde commits uitvoeren

Commit met context

1. gac_status(include_history=5)  → Recente commits bekijken als stijlreferentie
2. gac_commit(
     stage_all=true,
     hint="Fixes login timeout bug from issue #42",
     scope="auth",
     auto_confirm=true
   )

Configuratie

De MCP-server gebruikt uw bestaande GAC-configuratie. Geen extra configuratie nodig naast:

  1. Provider en model: Voer uvx gac init of uvx gac model uit om uw AI-provider te configureren
  2. API-sleutels: Opgeslagen in ~/.gac.env (ingesteld tijdens uvx gac init)
  3. Optionele instellingen: Alle GAC-omgevingsvariabelen zijn van toepassing (GAC_LANGUAGE, GAC_VERBOSE, enz.)

Zie de hoofddocumentatie voor alle configuratieopties.

Probleemoplossing

"No model configured"

Voer uvx gac init uit om uw AI-provider en model in te stellen voordat u de MCP-server gebruikt.

"No staged changes found"

Stage bestanden handmatig (git add) of gebruik stage_all=true in de gac_commit-aanroep.

Server start niet

Controleer of GAC geinstalleerd en toegankelijk is:

uvx gac --version

Als u uvx gebruikt, zorg ervoor dat uv geinstalleerd is en in uw PATH staat.

Agent kan de server niet vinden

Zorg ervoor dat het MCP-configuratiebestand op de juiste locatie staat voor uw client en dat het command-pad toegankelijk is vanuit uw shell-omgeving.

Rich-uitvoercorruptie

De MCP-server leidt alle Rich-console-uitvoer automatisch om naar stderr om stdio-protocolcorruptie te voorkomen. Als u onleesbare uitvoer ziet, zorg ervoor dat u uvx gac serve gebruikt (niet uvx gac direct) wanneer u MCP gebruikt.

Zie ook