Bruke 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 kjores som en Model Context Protocol (MCP)-server, som lar AI-agenter og editorer generere commits gjennom strukturerte verktoyskall i stedet for shell-kommandoer.

Innholdsfortegnelse

Hva er MCP?

Model Context Protocol er en apen standard som lar AI-applikasjoner kalle eksterne verktoy gjennom et strukturert grensesnitt. Ved a kjore GAC som MCP-server kan enhver MCP-kompatibel klient inspisere repository-status og opprette AI-drevne commits uten a kjore shell-kommandoer direkte.

Fordeler

  • Strukturert interaksjon: Agenter kaller typede verktoy med validerte parametere i stedet for a tolke shell-utdata
  • To-verktoys arbeidsflyt: gac_status for a inspisere, gac_commit for a handle - en naturlig tilpasning for agentresonnering
  • Fulle GAC-funksjoner: AI-commit-meldinger, grupperte commits, hemmelighetsscanning og push - alt tilgjengelig via MCP
  • Ingen ekstra konfigurasjon: Serveren bruker din eksisterende GAC-konfigurasjon (~/.gac.env, leverandorinnstillinger osv.)

Oppsett

MCP-serveren startes med uvx gac serve og kommuniserer over stdio, standard MCP-transport.

Claude Code

Legg til i prosjektets .mcp.json eller globale ~/.claude/claude_code_config.json:

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

Eller hvis du har GAC installert globalt:

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

Cursor

Legg til i Cursor MCP-innstillingene dine (.cursor/mcp.json):

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

Andre MCP-klienter

Enhver MCP-kompatibel klient kan bruke GAC. Serverens inngangspunkt er:

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

Tilgjengelige verktoy

Serveren eksponerer to verktoy:

gac_status

Inspiser repository-statusen. Bruk dette for commit for a forsta hva som vil bli committet.

Parametere:

ParameterTypeDefaultBeskrivelse
format"summary" | "detailed" | "json""summary"Utdataformat
include_diffboolfalseInkluder fullt diff-innhold
include_statsbooltrueInkluder statistikk for linjeendringer
include_historyint0Antall nylige commits a inkludere
staged_onlyboolfalseVis bare stagede endringer
include_untrackedbooltrueInkluder usporede filer
max_diff_linesint500Begrens diff-utdata (0 = ubegrenset)

Returnerer: Branch-navn, filstatus (staget/ustaget/usporet/konflikter), valgfritt diff-innhold, valgfri statistikk og valgfri commit-historikk.

gac_commit

Generer en AI-drevet commit-melding og utfor eventuelt committen.

Parametere:

ParameterTypeDefaultBeskrivelse
stage_allboolfalseStage alle endringer for commit (git add -A)
fileslist[str][]Spesifikke filer a stage
dry_runboolfalseForhandsvisning uten utforelse
message_onlyboolfalseGenerer melding uten a committe
pushboolfalsePush til remote etter commit
groupboolfalseDel endringer inn i flere logiske commits
one_linerboolfalseEnlinjers commit-melding
scopestring | nullnullConventional commit scope (auto-detektert hvis ikke angitt)
hintstring""Ekstra kontekst for bedre meldinger
modelstring | nullnullOverstyr AI-modell (provider:model_name)
languagestring | nullnullOverstyr sprak for commit-melding
skip_secret_scanboolfalseHopp over sikkerhetsscanning
no_verifyboolfalseHopp over pre-commit hooks
auto_confirmboolfalseHopp over bekreftelsesprompts (pakrevd for agenter)

Returnerer: Suksessstatus, generert commit-melding, commit-hash (hvis committet), liste over endrede filer og eventuelle advarsler.

Arbeidsflyter

Enkel commit

1. gac_status()                              → Se hva som har endret seg
2. gac_commit(stage_all=true, auto_confirm=true)  → Stage, generer melding og commit

Forhandsvisning for commit

1. gac_status(include_diff=true, include_stats=true)  → Gjennomga endringer i detalj
2. gac_commit(stage_all=true, dry_run=true)            → Forhandsvis commit-meldingen
3. gac_commit(stage_all=true, auto_confirm=true)       → Utfor committen

Grupperte commits

1. gac_status()                                           → Se alle endringer
2. gac_commit(stage_all=true, group=true, dry_run=true)   → Forhandsvis logiske grupperinger
3. gac_commit(stage_all=true, group=true, auto_confirm=true)  → Utfor grupperte commits

Commit med kontekst

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

Konfigurasjon

MCP-serveren bruker din eksisterende GAC-konfigurasjon. Ingen ekstra oppsett er nodvendig utover:

  1. Leverandor og modell: Kjor uvx gac init eller uvx gac model for a konfigurere AI-leverandoren din
  2. API-nokler: Lagret i ~/.gac.env (satt opp under uvx gac init)
  3. Valgfrie innstillinger: Alle GAC-miljovariabler gjelder (GAC_LANGUAGE, GAC_VERBOSE osv.)

Se hoveddokumentasjonen for alle konfigurasjonsalternativer.

Feilsoking

"No model configured"

Kjor uvx gac init for a sette opp AI-leverandoren og modellen din for du bruker MCP-serveren.

"No staged changes found"

Stage filer manuelt (git add) eller bruk stage_all=true i gac_commit-kallet.

Serveren starter ikke

Verifiser at GAC er installert og tilgjengelig:

uvx gac --version

Hvis du bruker uvx, sjekk at uv er installert og i din PATH.

Agenten finner ikke serveren

Sjekk at MCP-konfigurasjonsfilen er pa riktig sted for klienten din og at command-stien er tilgjengelig fra shell-miljoet ditt.

Rich-utdatakorrupsjon

MCP-serveren omdirigerer automatisk all Rich-konsollutdata til stderr for a forhindre stdio-protokollkorrupsjon. Hvis du ser forvrengd utdata, sjekk at du kjorer uvx gac serve (ikke uvx gac direkte) nar du bruker MCP.

Se ogsa