npm package: @golddeity/gitdigester
Description: Git helper MCP server with Weaviate integration for AI agents
Author: Ilya Galenduhin
Latest version: 1.0.9

# MCP Git Digester

Git интеграция для ИИ агентов, реализованная как MCP (Model Context Protocol) сервер. Позволяет агентам работать с Git репозиториями, создавать коммиты с улучшенными сообщениями с помощью LLM, и отправлять уведомления в Slack.

## Особенности

- Интеграция с Git для коммитов, пушей и управления репозиториями
- Семантическое улучшение коммит-сообщений с помощью LLM
- Сохранение истории коммитов в Weaviate для векторного поиска
- Отправка уведомлений о коммитах в Slack
- Поддержка различных методов аутентификации Git (SSH, HTTPS с токеном, HTTPS с паролем)
- Работа с несколькими репозиториями

## Установка и запуск

### Использование без установки через npx

Самый простой способ запустить MCP Git Digester - через npx:

```bash
NODE_OPTIONS="--experimental-vm-modules" npx @golddeity/gitdigester@latest \
  --openai-api-key <ключ> \
  --openai-base-url <url> \
  --repo <путь_к_репозиторию>
```

### Локальная установка (не рекомендуется)

Если вы хотите установить пакет глобально:

```bash
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 Registry создайте запись в файле `mcp.json`:

```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-репозиторию

## Интеграция с агентами

### Пример использования в Claude

```
Для создания коммита и отправки изменений используйте формат:
git push main [сообщение коммита] имя_репозитория

Примеры:
git push main [Добавлены новые функции для обработки данных] my-project
git push develop [Исправлен баг в функции авторизации] my-project

Для просмотра доступных репозиториев:
list repositories
```

### Пример использования в других агентах

```javascript
// Пример вызова через MCP клиент
const result = await mcpClient.call("git_push_origin", {
  branchName: "main",
  commitData: "Добавлены новые функции для обработки данных",
  repositoryName: "my-project"
});
```

## Доступные инструменты

### git_push_origin

Создает коммит с улучшенным сообщением и пушит изменения в указанную ветку.

Параметры:
- `branchName`: Название ветки
- `commitData`: Сообщение коммита
- `repositoryName`: Имя репозитория (обязательно, найдите доступные репозитории с помощью инструмента list_repositories)

### git_create_repo

Инициализирует Git репозиторий и пушит его в удаленный репозиторий.

Параметры:
- `repositoryUrl`: URL репозитория
- `localPath`: (опционально) Локальный путь для репозитория

### list_repositories

Выводит список доступных Git репозиториев.

## Требования

- Node.js 18+
- Git
- Доступ к API ключам (OpenAI, Weaviate, Slack)

## Лицензия

MIT