Skip to main content
Glama
AlekseiKastsiuk

garmonia-crm-mcp

garmonia-crm-mcp

MCP-сервер для тестирования CRM «Гармония отеля» через её внутренний API. Логинится по паролю (сессионная cookie), даёт инструменты для заказов, клиентов, брендов, календаря и универсальный доступ ко всему остальному CRUD.

Быстрая установка (одна команда, без клонирования)

Нужен только Node 18+. Ставить и клонировать репозиторий не надо — npx запустит сервер прямо из GitHub.

  1. Создай локальный файл с кредами, например ~/garmonia-crm.json:

    {
      "baseUrl": "https://адрес-crm",
      "login": "твой-логин",
      "password": "твой-пароль"
    }
  2. Добавь MCP одной командой (подставь свой путь к файлу):

    claude mcp add garmonia-crm \
      -e CRM_CONFIG="$HOME/garmonia-crm.json" \
      -- npx -y github:AlekseiKastsiuk/garmonia-crm-mcp
  3. Перезапусти Claude Code.

Креды лежат только в твоём локальном файле и никуда не отправляются — npx тянет с GitHub лишь код сервера.

Установка из исходников (альтернатива)

git clone https://github.com/AlekseiKastsiuk/garmonia-crm-mcp
cd garmonia-crm-mcp
npm install
cp crm-config.example.json crm-config.json
# открой crm-config.json и впиши baseUrl, логин и пароль своей CRM

crm-config.json — это адрес CRM и логин/пароль, в git его не коммить (он уже в .gitignore).

Подключение к Claude Code

В ~/.claude.json (или через claude mcp add) добавить сервер:

{
  "mcpServers": {
    "garmonia-crm": {
      "command": "node",
      "args": ["/полный/путь/к/garmonia-crm-mcp/server.mjs"]
    }
  }
}

Если конфиг лежит не рядом с сервером — указать путь в env:

"env": { "CRM_CONFIG": "/полный/путь/к/crm-config.json" }

После правки — перезапустить Claude Code.

Инструменты

Инструмент

Что делает

crm_login

Принудительный перелогин

crm_orders_list

Доска заказов (scope: all / free / mine)

crm_order_create

Создать заказ/лид (name, phone)

crm_order_claim

Взять заказ в работу

crm_order_set_status

Сменить статус (new/in_work/shipped/done/cancelled)

crm_order_delete

Удалить заказ навсегда (по умолчанию сначала в cancelled)

crm_orders_delete

Массово удалить заказы по списку id

crm_clients_search

Поиск клиентов

crm_client_delete

Удалить клиента

crm_brands_list / crm_brand_create / crm_brand_delete

Бренды

crm_staff_list

Сотрудники

crm_calendar_list

Календарь (задачи/звонки)

crm_request

Прямой запрос к любому /api/... (товары, категории, cold-база и т.д.)

Безопасность

  • Пароль и адрес CRM держатся в crm-config.json, который в .gitignore — в репозиторий не попадает.

  • В crm-config.example.json только плейсхолдеры, без реальных данных.

  • Перед первым пушем стоит проверить: git ls-files не должен содержать crm-config.json, а git grep -i password — только имя поля в коде.

Примечания

  • Заказы создаются публичным эндпоинтом POST /api/form-lead — авторизация не нужна.

  • Удаление заказа — это не REST, а Next.js server action (та же кнопка «Удалить» на вкладке закрытых). crm_order_delete дёргает её сам. id экшена привязан к сборке фронта; если после деплоя CRM удаление отвалится — обнови bulkDeleteActionId в crm-config.json (искать в JS-бандле по bulkDelete).

  • Товары/категории отдают листинги через серверный рендер, а не через GET API — для их создания/правки/удаления пользуйся crm_request (POST/PATCH/DELETE).