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_statusfor att inspektera,gac_commitfor 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:
| Parameter | Type | Default | Beskrivning |
|---|---|---|---|
format | "summary" | "detailed" | "json" | "summary" | Utdataformat |
include_diff | bool | false | Inkludera fullstandigt diff-innehall |
include_stats | bool | true | Inkludera statistik for radandringar |
include_history | int | 0 | Antal senaste commits att inkludera |
staged_only | bool | false | Visa bara stagade andringar |
include_untracked | bool | true | Inkludera osperade filer |
max_diff_lines | int | 500 | Begransia 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:
| Parameter | Type | Default | Beskrivning |
|---|---|---|---|
stage_all | bool | false | Staga alla andringar innan commit (git add -A) |
files | list[str] | [] | Specifika filer att staga |
dry_run | bool | false | Forhandsgranska utan att utfora |
message_only | bool | false | Generera meddelande utan att committa |
push | bool | false | Pusha till remote efter commit |
group | bool | false | Dela upp andringar i flera logiska commits |
one_liner | bool | false | Enrads commit-meddelande |
scope | string | null | null | Conventional commit scope (auto-detekteras om ej angivet) |
hint | string | "" | Ytterligare kontext for battre meddelanden |
model | string | null | null | Overstyr AI-modell (provider:model_name) |
language | string | null | null | Overstyr sprak for commit-meddelande |
skip_secret_scan | bool | false | Hoppa over sakerhetsskanning |
no_verify | bool | false | Hoppa over pre-commit hooks |
auto_confirm | bool | false | Hoppa 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:
- Leverantor och modell: Kor
uvx gac initelleruvx gac modelfor att konfigurera din AI-leverantor - API-nycklar: Lagrade i
~/.gac.env(installda underuvx gac init) - Valfria installningar: Alla GAC-miljovariabler galler (
GAC_LANGUAGE,GAC_VERBOSEosv.)
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.