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_statusfor a inspisere,gac_commitfor 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:
| Parameter | Type | Default | Beskrivelse |
|---|---|---|---|
format | "summary" | "detailed" | "json" | "summary" | Utdataformat |
include_diff | bool | false | Inkluder fullt diff-innhold |
include_stats | bool | true | Inkluder statistikk for linjeendringer |
include_history | int | 0 | Antall nylige commits a inkludere |
staged_only | bool | false | Vis bare stagede endringer |
include_untracked | bool | true | Inkluder usporede filer |
max_diff_lines | int | 500 | Begrens 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:
| Parameter | Type | Default | Beskrivelse |
|---|---|---|---|
stage_all | bool | false | Stage alle endringer for commit (git add -A) |
files | list[str] | [] | Spesifikke filer a stage |
dry_run | bool | false | Forhandsvisning uten utforelse |
message_only | bool | false | Generer melding uten a committe |
push | bool | false | Push til remote etter commit |
group | bool | false | Del endringer inn i flere logiske commits |
one_liner | bool | false | Enlinjers commit-melding |
scope | string | null | null | Conventional commit scope (auto-detektert hvis ikke angitt) |
hint | string | "" | Ekstra kontekst for bedre meldinger |
model | string | null | null | Overstyr AI-modell (provider:model_name) |
language | string | null | null | Overstyr sprak for commit-melding |
skip_secret_scan | bool | false | Hopp over sikkerhetsscanning |
no_verify | bool | false | Hopp over pre-commit hooks |
auto_confirm | bool | false | Hopp 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:
- Leverandor og modell: Kjor
uvx gac initelleruvx gac modelfor a konfigurere AI-leverandoren din - API-nokler: Lagret i
~/.gac.env(satt opp underuvx gac init) - Valgfrie innstillinger: Alle GAC-miljovariabler gjelder (
GAC_LANGUAGE,GAC_VERBOSEosv.)
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.