English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano
GAC può funzionare come un server del Model Context Protocol (MCP), permettendo ad agenti IA ed editor di generare commit attraverso chiamate di strumenti strutturate invece di comandi shell.
Il Model Context Protocol è uno standard aperto che permette alle applicazioni IA di chiamare strumenti esterni attraverso un'interfaccia strutturata. Eseguendo GAC come server MCP, qualsiasi client compatibile con MCP può ispezionare lo stato del repository e creare commit alimentati dall'IA senza invocare direttamente comandi shell.
- Interazione strutturata: Gli agenti chiamano strumenti tipizzati con parametri validati invece di analizzare l'output della shell
- Flusso di lavoro a due strumenti:
gac_statusper ispezionare,gac_commitper agire — un adattamento naturale per il ragionamento degli agenti - Capacità complete di GAC: Messaggi di commit IA, commit raggruppati, scansione di segreti e push — tutto disponibile tramite MCP
- Nessuna configurazione aggiuntiva: Il server utilizza la tua configurazione GAC esistente (
~/.gac.env, impostazioni provider, ecc.)
Il server MCP viene avviato con uvx gac serve e comunica tramite stdio, il trasporto standard MCP.
Aggiungi al .mcp.json del tuo progetto o al ~/.claude/claude_code_config.json globale:
{
"mcpServers": {
"gac": {
"command": "uvx",
"args": ["gac", "serve"]
}
}
}O se hai GAC installato globalmente:
{
"mcpServers": {
"gac": {
"command": "gac",
"args": ["serve"]
}
}
}Aggiungi alle impostazioni MCP di Cursor (.cursor/mcp.json):
{
"mcpServers": {
"gac": {
"command": "uvx",
"args": ["gac", "serve"]
}
}
}Qualsiasi client compatibile con MCP può usare GAC. Il punto di ingresso del server è:
command: uvx
args: ["gac", "serve"]
transport: stdio
Il server espone due strumenti:
Ispeziona lo stato del repository. Usalo prima del commit per capire cosa verrà committato.
Parametri:
| Parameter | Type | Default | Descrizione |
|---|---|---|---|
format |
"summary" | "detailed" | "json" |
"summary" |
Formato di output |
include_diff |
bool | false |
Includere il contenuto completo del diff |
include_stats |
bool | true |
Includere statistiche sulle modifiche alle righe |
include_history |
int | 0 |
Numero di commit recenti da includere |
staged_only |
bool | false |
Mostrare solo le modifiche nello staging |
include_untracked |
bool | true |
Includere file non tracciati |
max_diff_lines |
int | 500 |
Limitare la dimensione del diff (0 = illimitato) |
Restituisce: Nome del branch, stato dei file (staging/non staging/non tracciati/conflitti), contenuto opzionale del diff, statistiche opzionali e cronologia opzionale dei commit.
Genera un messaggio di commit alimentato dall'IA e opzionalmente esegue il commit.
Parametri:
| Parameter | Type | Default | Descrizione |
|---|---|---|---|
stage_all |
bool | false |
Mettere in staging tutte le modifiche prima del commit (git add -A) |
files |
list[str] | [] |
File specifici da mettere in staging |
dry_run |
bool | false |
Anteprima senza eseguire |
message_only |
bool | false |
Generare il messaggio senza fare commit |
push |
bool | false |
Push al remoto dopo il commit |
group |
bool | false |
Dividere le modifiche in più commit logici |
one_liner |
bool | false |
Messaggio di commit su una singola riga |
scope |
string | null | null |
Scope di commit convenzionale (auto-rilevato se non fornito) |
hint |
string | "" |
Contesto aggiuntivo per messaggi migliori |
model |
string | null | null |
Sovrascrivere il modello IA (provider:model_name) |
language |
string | null | null |
Sovrascrivere la lingua del messaggio di commit |
skip_secret_scan |
bool | false |
Saltare la scansione di sicurezza |
no_verify |
bool | false |
Saltare gli hook di pre-commit |
auto_confirm |
bool | false |
Saltare le conferme (richiesto per gli agenti) |
Restituisce: Stato di successo, messaggio di commit generato, hash del commit (se committato), lista dei file modificati e eventuali avvisi.
1. gac_status() → Vedere cosa è cambiato
2. gac_commit(stage_all=true, auto_confirm=true) → Staging, generazione messaggio e commit
1. gac_status(include_diff=true, include_stats=true) → Esaminare le modifiche in dettaglio
2. gac_commit(stage_all=true, dry_run=true) → Anteprima del messaggio di commit
3. gac_commit(stage_all=true, auto_confirm=true) → Eseguire il commit
1. gac_status() → Vedere tutte le modifiche
2. gac_commit(stage_all=true, group=true, dry_run=true) → Anteprima dei raggruppamenti logici
3. gac_commit(stage_all=true, group=true, auto_confirm=true) → Eseguire i commit raggruppati
1. gac_status(include_history=5) → Vedere i commit recenti come riferimento di stile
2. gac_commit(
stage_all=true,
hint="Fixes login timeout bug from issue #42",
scope="auth",
auto_confirm=true
)
Il server MCP utilizza la tua configurazione GAC esistente. Non è necessaria alcuna configurazione aggiuntiva oltre a:
- Provider e modello: Esegui
uvx gac initouvx gac modelper configurare il tuo provider IA - Chiavi API: Memorizzate in
~/.gac.env(configurate duranteuvx gac init) - Impostazioni opzionali: Tutte le variabili d'ambiente GAC si applicano (
GAC_LANGUAGE,GAC_VERBOSE, ecc.)
Consulta la documentazione principale per tutte le opzioni di configurazione.
Esegui uvx gac init per configurare il tuo provider IA e il modello prima di usare il server MCP.
Metti in staging i file manualmente (git add) o usa stage_all=true nella chiamata a gac_commit.
Verifica che GAC sia installato e accessibile:
uvx gac --versionSe usi uvx, assicurati che uv sia installato e nel tuo PATH.
Assicurati che il file di configurazione MCP sia nella posizione corretta per il tuo client e che il percorso del command sia accessibile dal tuo ambiente shell.
Il server MCP reindirizza automaticamente tutto l'output della console Rich su stderr per prevenire la corruzione del protocollo stdio. Se vedi output illeggibile, assicurati di eseguire uvx gac serve (non uvx gac direttamente) quando usi MCP.