
A production-ready connector for RetailCRM's API v5 that surfaces 15 tools across orders, customers, products, reference data, and analytics. You get full CRUD on orders and customers, product listing, warehouse and payment type lookups, plus summary stats for date ranges. Two prompt skills handle daily order reviews and quick customer searches. Built with retry logic for rate limits and server errors, 15-second timeouts, and supports both stdio and HTTP streaming modes. Useful if you're running a RetailCRM store and want Claude to handle order updates, customer merges, or pull sales reports without jumping into the admin panel.
Если вы искали, как подключить RetailCRM к нейросети, поднять заказ или карточку клиента и не собирать отчёты руками — это оно. 39 инструментов и 2 навыка поверх API v5: заказы, клиенты, товары, складские остатки, оплаты, задачи, справочники и аналитика. Спрашиваете «что с заказом 12345» — получаете статус, состав и оплату одним ответом.
Промышленный MCP-сервер для e-commerce CRM RetailCRM. 39 инструментов + 2 навыка-промпта для работы с заказами, клиентами, товарами, остатками, оплатами, задачами, справочниками и аналитикой через API v5.
Читающие инструменты возвращают компактную структурированную сводку только из тех полей, которые нужны агенту, а не весь ответ RetailCRM. Подробность настраивается на каждый вызов:
| Параметр | Что делает |
|---|---|
| (по умолчанию) | detail:"summary" — ключевые поля + блок pagination |
detail:"full" | Все структурированные поля (позиции, доставка, оплаты, адрес…) |
raw:true | Нетронутый ответ RetailCRM (для отладки) |
⚠️ v3 ломает совместимость с v2: по умолчанию отдаётся структурированная сводка, а не сырой JSON. Передайте
raw:true, чтобы вернуть прежний формат.
| Инструмент | Описание |
|---|---|
list_orders | Список заказов по статусу, клиенту, номеру, периоду |
get_order | Один заказ по ID или externalId |
create_order | Создать заказ; привязать существующего клиента (customer_id/customer_external_id) или завести нового прямо в вызове |
update_order | Изменить статус, клиента, доставку, комментарии |
orders_history | История изменений заказов, включая смены статусов (инкрементальная синхронизация) |
| Инструмент | Описание |
|---|---|
list_customers | Поиск клиентов по имени, e-mail, телефону, дате |
get_customer | Один клиент по ID или externalId |
create_customer | Создать клиента |
update_customer | Изменить существующего клиента |
merge_customers | Объединить дубли (разрушающая операция) |
customers_history | Лог изменений клиентов (прирост/отток, инкрементальная синхронизация) |
| Инструмент | Описание |
|---|---|
list_products | Товары каталога по названию, группе, активности, цене |
list_product_groups | Дерево товарных категорий |
store_inventories | Остатки и себестоимость по торговым предложениям и складам |
| Инструмент | Описание |
|---|---|
order_payment_create | Зафиксировать оплату по заказу |
order_payment_edit | Изменить оплату |
order_payment_delete | Удалить оплату (разрушающая операция) |
| Инструмент | Описание |
|---|---|
customer_notes_list / customer_notes_create / customer_notes_delete | Произвольные заметки по клиенту |
tasks_list / tasks_create / tasks_edit | Задачи и напоминания |
| Инструмент | Описание |
|---|---|
list_segments | Сегменты клиентов (RFM и маркетинговые когорты) |
list_costs / create_cost | Записи расходов для аналитики маржи |
| Инструмент | Описание |
|---|---|
files_list / files_get / files_upload | Прикрепление и получение файлов (загрузка сырым octet-stream) |
| Инструмент | Описание |
|---|---|
list_statuses / list_delivery_types / list_payment_types / list_stores | Справочники статусов, доставок, оплат и магазинов |
list_sites | Сайты, доступные ключу API (для заполнения параметра site) |
list_countries / list_order_types / list_order_methods | Справочники адресов и заказов |
| Инструмент | Описание |
|---|---|
get_orders_summary | Статистика заказов за период: точное количество и выручка, средний чек, распределение по статусам |
get_customers_summary | Количество новых клиентов за период |
| Навык | Описание |
|---|---|
new-orders | Быстрый ежедневный обзор сегодняшних заказов |
customer-search | Найти клиента по имени, e-mail или телефону |
site в инструментах создания и изменения (см. list_sites).yourstore из yourstore.retailcrm.ru).| Переменная | Обяз. | Описание |
|---|---|---|
RETAILCRM_DOMAIN | да | Домен вашего RetailCRM (например, yourstore.retailcrm.ru) |
RETAILCRM_API_KEY | да | Ключ API (передаётся в заголовке X-API-KEY) |
RETAILCRM_READONLY | нет | 1 — оставить только читающие инструменты (скрыть create/update/merge/delete) |
RETAILCRM_RATE_LIMIT | нет | Клиентское ограничение запросов в секунду (RetailCRM допускает ~10/с) |
PORT / HOST | нет | Привязка HTTP-сервера (по умолчанию 3000 / 127.0.0.1, только в режиме --http) |
RETAILCRM_HTTP_ALLOWED_HOSTS | нет | Разрешённые значения Host через запятую для защиты от DNS-rebinding |
RETAILCRM_DNS_PROTECTION | нет | off — отключить защиту от DNS-rebinding (HTTP-режим) |
RETAILCRM_URLпо-прежнему принимается как запасной вариант дляRETAILCRM_DOMAIN.
{
"mcpServers": {
"retailcrm": {
"command": "npx",
"args": ["-y", "@theyahia/retailcrm-mcp"],
"env": {
"RETAILCRM_DOMAIN": "yourstore.retailcrm.ru",
"RETAILCRM_API_KEY": "your-api-key"
}
}
}
}
Запуск в виде HTTP-сервера вместо stdio:
RETAILCRM_DOMAIN=yourstore.retailcrm.ru \
RETAILCRM_API_KEY=your-key \
npx @theyahia/retailcrm-mcp --http
POST /mcp — эндпоинт MCP Streamable HTTP (stateless: на каждый запрос создаётся новый сервер)GET /health — проверка состояния (JSON с версией и числом инструментов)GET/DELETE /mcp — 405 (в stateless-режиме не используются)127.0.0.1:3000. Защита от DNS-rebinding для локальных привязок включена по умолчанию.npx @smithery/cli install @theyahia/retailcrm-mcp
1. Обзор заказов за день: «Покажи все заказы, созданные сегодня, в статусе „новый“. Дай итоговое количество и выручку.»
2. Клиент и его история заказов: «Найди клиента с почтой anna@example.com. Покажи полный профиль и последние заказы.»
3. Проверка остатков: «Есть ли товар с externalId SKU-42 в наличии и на каком складе?»
RetailCRM не умеет создавать вебхуки через API. Используйте Триггеры в админке (Настройки → Триггеры), чтобы отправлять HTTP-запросы на внешние эндпоинты по событиям заказов и клиентов.
isError: true, чтобы агент мог исправиться сам (например, повторить с by:"externalId").npm install
npm test # vitest (на моках; живой ключ API не нужен)
npm run lint # eslint
npm run typecheck # tsc --noEmit
npm run dev # dev-режим stdio (tsx)
npm run build # очистка + сборка в dist/
MIT
RETAILCRM_URL*secretAPI key for the service