Git интеграция для ИИ агентов, реализованная как MCP (Model Context Protocol) сервер. Позволяет агентам работать с Git репозиториями, создавать коммиты с улучшенными сообщениями с помощью LLM, и отправлять уведомления в Slack.
- Интеграция с Git для коммитов, пушей и управления репозиториями
- Семантическое улучшение коммит-сообщений с помощью LLM
- Сохранение истории коммитов в Weaviate для векторного поиска
- Отправка уведомлений о коммитах в Slack
- Поддержка различных методов аутентификации Git (SSH, HTTPS с токеном, HTTPS с паролем)
- Работа с несколькими репозиториями
Самый простой способ запустить MCP Git Digester - через npx:
NODE_OPTIONS="--experimental-vm-modules" npx @golddeity/gitdigester@latest \
--openai-api-key <ключ> \
--openai-base-url <url> \
--repo <путь_к_репозиторию>
Если вы хотите установить пакет глобально:
npm install -g @golddeity/gitdigester
NODE_OPTIONS="--experimental-vm-modules" mcp-git --openai-api-key <ключ> --openai-base-url <url> --repo <путь_к_репозиторию>
Вместо передачи параметров в командной строке, вы можете создать файл .env
в корне вашего проекта со следующими переменными:
OPENAI_BASE_URL=https://api.openai.com
OPENAI_API_KEY=your_openai_api_key_here
WEAVIATE_INSTANCE_URL=your_weaviate_instance_url_here
WEAVIATE_INSTANCE_API_KEY=your_weaviate_api_key_here
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/TXXXXXXXX/BXXXXXXXX/XXXXXXXXXXXXXXXX
Для использования с MCP Registry создайте запись в файле mcp.json
:
{
"mcpServers": {
"gitdigester": {
"command": "npx",
"args": [
"-y",
"@golddeity/gitdigester@latest",
"--openai-api-key=${OPENAI_API_KEY}",
"--openai-base-url=${OPENAI_BASE_URL}",
"--weaviate-key=${WEAVIATE_INSTANCE_API_KEY}",
"--weaviate-url=${WEAVIATE_INSTANCE_URL}",
"--slack-webhook=${SLACK_WEBHOOK_URL}",
"--git-auth-method=ssh",
"--git-ssh-key=${HOME}/.ssh/id_rsa",
"--git-repos-paths=${WORKSPACES_DIR},${HOME}/Projects"
]
}
}
}
Агент сможет автоматически обнаружить и запустить MCP сервер через команду:
npx @modelcontextprotocol/registry scan
Полный список параметров:
-
--openai-api-key <key>
: OpenAI API ключ -
--openai-base-url <url>
: OpenAI базовый URL -
--weaviate-key <key>
: Weaviate API ключ -
--weaviate-url <url>
: Weaviate URL -
--slack-webhook <url>
: Slack Webhook URL -
--git-auth-method <method>
: Метод аутентификации Git (ssh, https-token, https-password) -
--git-username <username>
: Git username для HTTPS аутентификации -
--git-token <token>
: Git personal access token для HTTPS аутентификации -
--git-ssh-key <path>
: Путь к SSH ключу -
--git-repos-paths <paths>
: Пути к репозиториям (через запятую) -
--repo <path>
: Абсолютный путь к текущему git-репозиторию
Для создания коммита и отправки изменений используйте формат:
git push main [сообщение коммита] имя_репозитория
Примеры:
git push main [Добавлены новые функции для обработки данных] my-project
git push develop [Исправлен баг в функции авторизации] my-project
Для просмотра доступных репозиториев:
list repositories
// Пример вызова через MCP клиент
const result = await mcpClient.call("git_push_origin", {
branchName: "main",
commitData: "Добавлены новые функции для обработки данных",
repositoryName: "my-project"
});
Создает коммит с улучшенным сообщением и пушит изменения в указанную ветку.
Параметры:
-
branchName
: Название ветки -
commitData
: Сообщение коммита -
repositoryName
: Имя репозитория (обязательно, найдите доступные репозитории с помощью инструмента list_repositories)
Инициализирует Git репозиторий и пушит его в удаленный репозиторий.
Параметры:
-
repositoryUrl
: URL репозитория -
localPath
: (опционально) Локальный путь для репозитория
Выводит список доступных Git репозиториев.
- Node.js 18+
- Git
- Доступ к API ключам (OpenAI, Weaviate, Slack)
MIT