garmonia-crm-mcp
garmonia-crm-mcp
MCP-сервер для тестирования CRM «Гармония отеля» через её внутренний API. Логинится по паролю (сессионная cookie), даёт инструменты для заказов, клиентов, брендов, календаря и универсальный доступ ко всему остальному CRUD.
Быстрая установка (одна команда, без клонирования)
Нужен только Node 18+. Ставить и клонировать репозиторий не надо — npx
запустит сервер прямо из GitHub.
Создай локальный файл с кредами, например
~/garmonia-crm.json:{ "baseUrl": "https://адрес-crm", "login": "твой-логин", "password": "твой-пароль" }Добавь MCP одной командой (подставь свой путь к файлу):
claude mcp add garmonia-crm \ -e CRM_CONFIG="$HOME/garmonia-crm.json" \ -- npx -y github:AlekseiKastsiuk/garmonia-crm-mcpПерезапусти 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, логин и пароль своей CRMcrm-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.
Инструменты
Инструмент | Что делает |
| Принудительный перелогин |
| Доска заказов (scope: all / free / mine) |
| Создать заказ/лид (name, phone) |
| Взять заказ в работу |
| Сменить статус (new/in_work/shipped/done/cancelled) |
| Удалить заказ навсегда (по умолчанию сначала в cancelled) |
| Массово удалить заказы по списку id |
| Поиск клиентов |
| Удалить клиента |
| Бренды |
| Сотрудники |
| Календарь (задачи/звонки) |
| Прямой запрос к любому |
Безопасность
Пароль и адрес 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).