English | 简体中文 | 繁體中文 | 日本語 | 한국어 | हिन्दी | Tiếng Việt | Français | Русский | Español | Português | Norsk | Svenska | Deutsch | Nederlands | Italiano
GAC может работать как сервер Model Context Protocol (MCP), позволяя ИИ-агентам и редакторам генерировать коммиты через структурированные вызовы инструментов вместо команд оболочки.
Model Context Protocol - это открытый стандарт, позволяющий ИИ-приложениям вызывать внешние инструменты через структурированный интерфейс. Запустив GAC как MCP-сервер, любой MCP-совместимый клиент может проверять состояние репозитория и создавать коммиты с помощью ИИ, не вызывая команды оболочки напрямую.
- Структурированное взаимодействие: Агенты вызывают типизированные инструменты с валидированными параметрами вместо разбора вывода оболочки
- Рабочий процесс из двух инструментов:
gac_statusдля проверки,gac_commitдля действия - естественная модель для рассуждения агентов - Полные возможности GAC: ИИ-сообщения коммитов, групповые коммиты, сканирование секретов и отправка - всё доступно через MCP
- Нулевая конфигурация: Сервер использует вашу существующую конфигурацию GAC (
~/.gac.env, настройки провайдера и т.д.)
MCP-сервер запускается командой uvx gac serve и общается через stdio - стандартный транспорт MCP.
Добавьте в файл .mcp.json вашего проекта или глобальный ~/.claude/claude_code_config.json:
{
"mcpServers": {
"gac": {
"command": "uvx",
"args": ["gac", "serve"]
}
}
}Или если GAC установлен глобально:
{
"mcpServers": {
"gac": {
"command": "gac",
"args": ["serve"]
}
}
}Добавьте в настройки MCP Cursor (.cursor/mcp.json):
{
"mcpServers": {
"gac": {
"command": "uvx",
"args": ["gac", "serve"]
}
}
}Любой MCP-совместимый клиент может использовать GAC. Точка входа сервера:
command: uvx
args: ["gac", "serve"]
transport: stdio
Сервер предоставляет два инструмента:
Проверка состояния репозитория. Используйте перед коммитом, чтобы понять, что будет зафиксировано.
Параметры:
| Parameter | Type | Default | Описание |
|---|---|---|---|
format |
"summary" | "detailed" | "json" |
"summary" |
Формат вывода |
include_diff |
bool | false |
Включить полное содержимое diff |
include_stats |
bool | true |
Включить статистику изменений строк |
include_history |
int | 0 |
Количество последних коммитов для включения |
staged_only |
bool | false |
Показывать только индексированные изменения |
include_untracked |
bool | true |
Включить неотслеживаемые файлы |
max_diff_lines |
int | 500 |
Ограничить размер вывода diff (0 = без ограничения) |
Возвращает: Имя ветки, статус файлов (индексированные/неиндексированные/неотслеживаемые/конфликты), опциональное содержимое diff, опциональную статистику и опциональную историю коммитов.
Генерация сообщения коммита с помощью ИИ и опциональное выполнение коммита.
Параметры:
| Parameter | Type | Default | Описание |
|---|---|---|---|
stage_all |
bool | false |
Индексировать все изменения перед коммитом (git add -A) |
files |
list[str] | [] |
Конкретные файлы для индексации |
dry_run |
bool | false |
Предпросмотр без выполнения |
message_only |
bool | false |
Сгенерировать сообщение без коммита |
push |
bool | false |
Отправить в удалённый репозиторий после коммита |
group |
bool | false |
Разделить изменения на несколько логических коммитов |
one_liner |
bool | false |
Однострочное сообщение коммита |
scope |
string | null | null |
Область conventional commit (определяется автоматически, если не указана) |
hint |
string | "" |
Дополнительный контекст для улучшения сообщений |
model |
string | null | null |
Переопределить модель ИИ (provider:model_name) |
language |
string | null | null |
Переопределить язык сообщения коммита |
skip_secret_scan |
bool | false |
Пропустить сканирование безопасности |
no_verify |
bool | false |
Пропустить хуки pre-commit |
auto_confirm |
bool | false |
Пропустить запросы подтверждения (необходимо для агентов) |
Возвращает: Статус выполнения, сгенерированное сообщение коммита, хеш коммита (если выполнен), список изменённых файлов и предупреждения.
1. gac_status() → Посмотреть, что изменилось
2. gac_commit(stage_all=true, auto_confirm=true) → Индексировать, сгенерировать сообщение и закоммитить
1. gac_status(include_diff=true, include_stats=true) → Подробно просмотреть изменения
2. gac_commit(stage_all=true, dry_run=true) → Предпросмотр сообщения коммита
3. gac_commit(stage_all=true, auto_confirm=true) → Выполнить коммит
1. gac_status() → Посмотреть все изменения
2. gac_commit(stage_all=true, group=true, dry_run=true) → Предпросмотр логических группировок
3. gac_commit(stage_all=true, group=true, auto_confirm=true) → Выполнить групповые коммиты
1. gac_status(include_history=5) → Посмотреть недавние коммиты для ориентации по стилю
2. gac_commit(
stage_all=true,
hint="Fixes login timeout bug from issue #42",
scope="auth",
auto_confirm=true
)
MCP-сервер использует вашу существующую конфигурацию GAC. Дополнительная настройка не требуется, кроме:
- Провайдер и модель: Запустите
uvx gac initилиuvx gac modelдля настройки вашего ИИ-провайдера - API-ключи: Хранятся в
~/.gac.env(настраиваются приuvx gac init) - Дополнительные настройки: Все переменные окружения GAC применяются (
GAC_LANGUAGE,GAC_VERBOSEи т.д.)
Смотрите основную документацию для всех опций конфигурации.
Запустите uvx gac init для настройки вашего ИИ-провайдера и модели перед использованием MCP-сервера.
Либо индексируйте файлы вручную (git add), либо используйте stage_all=true в вызове gac_commit.
Убедитесь, что GAC установлен и доступен:
uvx gac --versionЕсли используете uvx, убедитесь, что uv установлен и находится в вашем PATH.
Убедитесь, что файл конфигурации MCP находится в правильном месте для вашего клиента и что путь command доступен из вашего окружения оболочки.
MCP-сервер автоматически перенаправляет весь вывод Rich-консоли в stderr для предотвращения повреждения протокола stdio. Если вы видите искажённый вывод, убедитесь, что запускаете uvx gac serve (а не uvx gac напрямую) при использовании MCP.