Anvanda GAC som MCP-server

May 17, 2026 · View on GitHub

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

GAC kan koras som en Model Context Protocol (MCP)-server, vilket gor det mojligt for AI-agenter och editorer att generera commits genom strukturerade verktygsanrop istallet for shell-kommandon.

Innehallsforteckning

Vad ar MCP?

Model Context Protocol ar en oppen standard som later AI-applikationer anropa externa verktyg genom ett strukturerat granssnitt. Genom att kora GAC som MCP-server kan vilken MCP-kompatibel klient som helst inspektera repository-status och skapa AI-drivna commits utan att anropa shell-kommandon direkt.

Fordelar

  • Strukturerad interaktion: Agenter anropar typade verktyg med validerade parametrar istallet for att tolka shell-utdata
  • Tva-verktygs arbetsflode: gac_status for att inspektera, gac_commit for att agera - en naturlig passform for agentresonemang
  • Fulla GAC-funktioner: AI-commit-meddelanden, grupperade commits, hemlighetsskanning och push - allt tillgangligt via MCP
  • Ingen extra konfiguration: Servern anvander din befintliga GAC-konfiguration (~/.gac.env, leverantorsinstellningar osv.)

Installation

MCP-servern startas med uvx gac serve och kommunicerar over stdio, standard MCP-transport.

Claude Code

Lagg till i ditt projekts .mcp.json eller globala ~/.claude/claude_code_config.json:

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

Eller om du har GAC installerat globalt:

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

Cursor

Lagg till i dina Cursor MCP-installningar (.cursor/mcp.json):

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

Andra MCP-klienter

Vilken MCP-kompatibel klient som helst kan anvanda GAC. Serverns ingangspunkt ar:

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

Tillgangliga verktyg

Servern exponerar tva verktyg:

gac_status

Inspektera repository-status. Anvand detta innan commit for att forsta vad som kommer att committas.

Parametrar:

ParameterTypeDefaultBeskrivning
format"summary" | "detailed" | "json""summary"Utdataformat
include_diffboolfalseInkludera fullstandigt diff-innehall
include_statsbooltrueInkludera statistik for radandringar
include_historyint0Antal senaste commits att inkludera
staged_onlyboolfalseVisa bara stagade andringar
include_untrackedbooltrueInkludera osperade filer
max_diff_linesint500Begransia diff-utdata (0 = obegransat)

Returnerar: Branch-namn, filstatus (stagad/ostagad/osparad/konflikter), valfritt diff-innehall, valfri statistik och valfri commit-historik.

gac_commit

Generera ett AI-drivet commit-meddelande och utfor valfritt committen.

Parametrar:

ParameterTypeDefaultBeskrivning
stage_allboolfalseStaga alla andringar innan commit (git add -A)
fileslist[str][]Specifika filer att staga
dry_runboolfalseForhandsgranska utan att utfora
message_onlyboolfalseGenerera meddelande utan att committa
pushboolfalsePusha till remote efter commit
groupboolfalseDela upp andringar i flera logiska commits
one_linerboolfalseEnrads commit-meddelande
scopestring | nullnullConventional commit scope (auto-detekteras om ej angivet)
hintstring""Ytterligare kontext for battre meddelanden
modelstring | nullnullOverstyr AI-modell (provider:model_name)
languagestring | nullnullOverstyr sprak for commit-meddelande
skip_secret_scanboolfalseHoppa over sakerhetsskanning
no_verifyboolfalseHoppa over pre-commit hooks
auto_confirmboolfalseHoppa over bekraftelsepromptar (kravs for agenter)

Returnerar: Framgangsstatus, genererat commit-meddelande, commit-hash (om committat), lista over andrade filer och eventuella varningar.

Arbetsfloden

Enkel commit

1. gac_status()                              → Se vad som har andrats
2. gac_commit(stage_all=true, auto_confirm=true)  → Staga, generera meddelande och committa

Forhandsgranska innan commit

1. gac_status(include_diff=true, include_stats=true)  → Granska andringar i detalj
2. gac_commit(stage_all=true, dry_run=true)            → Forhandsgranska commit-meddelandet
3. gac_commit(stage_all=true, auto_confirm=true)       → Utfor committen

Grupperade commits

1. gac_status()                                           → Se alla andringar
2. gac_commit(stage_all=true, group=true, dry_run=true)   → Forhandsgranska logiska grupperingar
3. gac_commit(stage_all=true, group=true, auto_confirm=true)  → Utfor grupperade commits

Commit med kontext

1. gac_status(include_history=5)  → Se senaste commits som stilreferens
2. gac_commit(
     stage_all=true,
     hint="Fixes login timeout bug from issue #42",
     scope="auth",
     auto_confirm=true
   )

Konfiguration

MCP-servern anvander din befintliga GAC-konfiguration. Ingen ytterligare installation behovs utover:

  1. Leverantor och modell: Kor uvx gac init eller uvx gac model for att konfigurera din AI-leverantor
  2. API-nycklar: Lagrade i ~/.gac.env (installda under uvx gac init)
  3. Valfria installningar: Alla GAC-miljovariabler galler (GAC_LANGUAGE, GAC_VERBOSE osv.)

Se huvuddokumentationen for alla konfigurationsalternativ.

Felsokning

"No model configured"

Kor uvx gac init for att stalla in din AI-leverantor och modell innan du anvander MCP-servern.

"No staged changes found"

Staga filer manuellt (git add) eller anvand stage_all=true i gac_commit-anropet.

Servern startar inte

Verifiera att GAC ar installerat och tillgangligt:

uvx gac --version

Om du anvander uvx, se till att uv ar installerat och finns i din PATH.

Agenten kan inte hitta servern

Se till att MCP-konfigurationsfilen ar pa ratt plats for din klient och att command-sokvagen ar tillganglig fran din shell-miljo.

Rich-utdatakorruption

MCP-servern omdirigerar automatiskt alla Rich-konsolutdata till stderr for att forhindra stdio-protokollkorruption. Om du ser forvrängd utdata, se till att du kor uvx gac serve (inte uvx gac direkt) nar du anvander MCP.

Se aven