MCP-коннектор — AI-сотрудник для вашего магазина
Подключите ChatGPT, Claude или другой совместимый MCP-клиент к данным вашего аккаунта и получайте отчёты, рекомендации по ценам и аудит дозаказов. AI-агент видит разрешённые продажи, остатки, конкурентов и юнит-экономику — и работает с этим как штатный аналитик.
Что это под капотом: сервис выставляет MCP-сервер (Model Context Protocol), к которому подключается AI-приложение. Авторизация — OAuth 2.1 с PKCE и DCR. Никаких токенов в открытую, всё по стандарту RFC 8707.
Что AI-агент умеет уже сейчас
После подключения у AI-агента появляются 59 инструментов. В Claude также доступны 3 готовых сценария (slash-команды).
⚠️ Права: чтение и изменение — разные разрешения
С версии 1.6.0 доступ разделён. На экране согласия видно, что именно вы разрешаете:
- Только чтение — агент смотрит продажи, остатки, цены, юнит-экономику, конкурентов, отзывы. Ничего не меняет.
- Чтение и изменение — вдобавок может править карточки и цены, публиковать ответы покупателям, включать и останавливать рекламу.
Предпросмотр (dry_run) работает всегда: он показывает, что произойдёт,
но ничего не отправляет на площадку. Инструменты записи по умолчанию
запускаются именно в режиме предпросмотра — отправка требует явного
подтверждения.
Если вы подключали коннектор до версии 1.6.0 — переподключите его. Старый токен продолжит читать, но изменения выполнять не сможет.
Готовые сценарии Claude
В чате с Claude введите:
Можно передать параметры: /atools price_audit shop_id=...
Инструменты, которые AI-агент может вызывать сам
Когда вы спрашиваете «сколько я заработал на этой неделе?» или «почему товар просел в выдаче?» — агент сам выбирает нужные инструменты. Помечены: ✏️ — меняет данные на площадке (нужно разрешение на изменение).
Продажи и деньги
get_sales_summary(period)— выручка, единицы, возвраты, средний чекlist_top_products(period, by)— топ по выручке, единицам или просадкеget_business_pulse(period)— комплексная сводка одним вызовомget_finance_snapshot(period)— начисления, комиссии, услуги, чистая выплатаget_returns_summary(period)— возвраты в штуках за зрелое окно
Каталог и карточки
list_products(search, brand, ...)— поиск по каталогуget_product(sku)— карточка SKU: цена, продажи, остаткиproducts_full(...)— полные карточки из снапшотов: атрибуты, хештеги, габариты, ошибкиlist_product_groups()— группы вариантовget_variants(offer_id)— состав склейки и кто внутри забирает показыget_media(offer_id)— сколько фото и чего не хватает по мнению Ozoncontent_gaps()— аудит контента каталога: 9 проверокproduct_errors()— ошибки карточек (окно «Ошибки в товаре»)- ✏️
update_product(changes, dry_run)— правка карточек с обязательным предпросмотром - ✏️
bulk_update_product(...)— массовая правка фоном; небольшой батч Claude дожидается сам - ✏️
refresh_products_full()— обновить снапшоты карточек из Ozon (точечный ресинк Claude дожидается сам)
Цены и юнит-экономика
get_unit_economics(sku)— себестоимость, цена, маржа, комиссияget_pricing_health()— убыточные, мёртвые, низкомаржинальные позицииget_price_history(sku, days)— история изменений ценыlist_price_lists()— загруженные прайсы поставщиковanchor_test(...)— прогноз цены покупателя при новом якореcompetitor_prices(sku)— наши листинги на Ozon / WB / Яндексе рядом
Выдача и продвижение
product_queries(...)— поисковые запросы товаров живьём из Seller APIget_sales_funnel(...)— где теряется покупатель: искали → смотрели → заказалиranking_factors(offer_id)— что тянет товар вниз в выдачеseo_overview(...)— SEO-картина: позиции недели, видимость, воронка, рекламный CTR, диагноз шагаseo_query_history(query)— динамика запроса: спрос/позиции по неделям, дневные позиции из выдачи, события атрибуцииseo_serp(query)— последний снимок выдачи по боевому запросу: кто выше нас и чем отличаетсяseo_keyword_coverage(offer_id)— покрытие карточки её запросами и канибализация склейкиseo_keyword_economics(query)— деньги запроса: GMV, медианная цена выдачи, маржа, вердикт «двигать ли»seo_semantic_expand(offer_id)— упущенная семантика: дырки выдачи и запросы соседей по склейкеseo_propose_experiment(...)— предложить SEO-правку в Inbox (применяется только после подтверждения владельцем)
Реклама
get_ad_performance(period, group_by)— расходы, заказы, ДРР, ROMIlist_ad_campaigns()— кампании Ozon Performance: тип, статус, бюджеты- ✏️
set_ad_campaign_state(campaign_id, active)— запустить или остановить кампанию list_promotions()— акции Ozon: где участвуем и куда можем войти
Склад и снабжение
get_stock_status(low_only=true)— остаток на СВОЁМ складе и что дозаказать (⚠ не склад Ozon: остаток площадки идёт отдельным полем)list_reorder_recommendations()— что дозаказатьget_supply_plan()— что и в какой кластер везтиlist_inbound_shipments()— контейнеры в путиlist_supplier_orders()— заказы поставщикамlist_fbo_supplies()— поставки FBO и черновики
Конкуренты
get_competitor_snapshot(sku)— наша цена против конкурентовlist_competitor_alerts(threshold_pct)— где мы дороже на ≥ N%
Отзывы
list_reviews(...)— отзывы с полным текстом, оценкой и признаком ответа- ✏️
draft_review_reply(analysis_id)— черновик ответа (покупателю не уходит) - ✏️
reply_to_review(analysis_id, text)— опубликовать ответ продавца
Диагностика
diagnose_sku(sku)— полный паспорт одного товара: продажи, маржа, цена, реклама, отзывы, остаток
Wildberries
get_wb_stock(low_only)— остатки WB по nm_id с разрезом по складамlist_wb_listings(...)— каталог WB-карточек
Авито
get_avito_status()— канал Авито: объявления XML-фида (публикуется / снято по остатку / не готово) и пайплайн оптовых сделок с суммамиget_avito_deals(status, limit)— оптовые сделки со строками, договорными суммами и номером складского Расхода
База знаний
search_knowledge(query)— поиск по справочной базе площадокlist_knowledge_topics()— оглавление базыget_glossary_term(slug)— точное определение термина- ✏️
record_observation(...)— записать наблюдение о магазине - ✏️
give_feedback(...)— подтвердить или отклонить знание
Служебные
whoami— кто я, к чему есть доступ, лимитыlist_shops()— какие магазины подключены
✅ Инструменты работают только по тем кабинетам, которые вы отметили на экране согласия. Доступ к чужим магазинам невозможен даже внутри одной компании.
⚠️ Часть данных зависит от вашего тарифа Ozon: без подписки Premium не приходят позиции в выдаче и уникальные просмотры, без Premium Plus — метрики корзины, без «Управления отзывами» — сами отзывы. Инструменты прямо называют недостающую подписку, а не показывают пустоту молча.
Как подключить
Адрес MCP-сервера для всех клиентов: https://atools.vip/mcp
ChatGPT
- Откройте Settings → Apps → Advanced settings и включите Developer mode.
- Перейдите в Settings → Apps → Create.
- Укажите endpoint
https://atools.vip/mcp. - Запустите проверку инструментов и пройдите авторизацию.
Доступность custom MCP apps зависит от тарифа и настроек workspace. Актуальный путь настройки проверяйте в официальной документации OpenAI.
Claude
- Откройте claude.ai.
- Перейдите в Settings → Connectors → Add custom connector.
- Введите URL
https://atools.vip/mcp. - Пройдите авторизацию и выберите доступные магазины.
Другой MCP-клиент
- В настройках приложения добавьте remote MCP-сервер
https://atools.vip/mcp. - Убедитесь, что клиент поддерживает Streamable HTTP и OAuth 2.1 с PKCE и DCR.
- Пройдите авторизацию.
- Проверьте, что клиент получил список инструментов.
Авторизация
Откроется наша страница с consent screen — там показано:
- Какой AI-клиент запрашивает доступ
- Куда вас перенаправят после одобрения — точный домен (антифишинг). Если хост незнакомый — нажмите «Отменить»
- ⚠️ Предупреждение если коннектор зарегистрирован недавно (< 7 дней) — лишний сигнал, что это может быть фишинг
- Какие магазины Ozon и WB-аккаунты вы предоставляете (можно отметить только нужные)
- Какие права получит агент: только чтение или чтение и изменение (правка карточек и цен, ответы покупателям, управление рекламой) — список прав на экране соответствует тому, что токен реально сможет делать
Нажмите «Разрешить». Клиент получит refresh token на 90 дней и access token на 15 минут; совместимые приложения обновляют его автоматически.
Проверка
В новом чате подключённого приложения напишите:
Покажи список моих магазинов через atools
AI-агент должен вызвать list_shops и вернуть список ваших Ozon-магазинов.
Если что-то пошло не так — см. раздел «Типовые проблемы» ниже.
Как пользоваться
Сценарий 1 — еженедельный CEO-отчёт
В понедельник утром:
/atools weekly_pulse
Агент за 1 запрос получит get_business_pulse (выручка + топ-движение + критические остатки) и потом может уточнить детали через list_top_products(by="drop_pct") для просевших SKU. Через 30-60 секунд у вас на руках:
- Headline: что важно за неделю
- Что стало хуже (с конкретными SKU и цифрами)
- Что стало лучше
- 3-5 рекомендуемых действий по приоритету
Сценарий 2 — аудит цен
/atools price_audit
Агент вызовет get_pricing_health, найдёт loss-leaders + low-margin SKU, для топ-10 проблемных проверит get_competitor_snapshot — и выдаст таблицу с рекомендацией повысить/понизить/архивировать.
Сценарий 3 — обзор дозаказов
/atools reorder_review
Сгруппирует:
- Закажи сегодня — стоковт ≤ 7 дней без входящих поставок
- На неделе — стоковт 7-14 дней
- Можно отложить — > 30 дней
- Сезонные риски — то, что может скоро вырасти
Сценарий 4 — свободные вопросы
Можно просто спрашивать естественным языком:
- «Какие SKU потеряли больше 30% выручки на этой неделе?»
- «Покажи топ-5 товаров по марже»
- «У меня хватит остатков «Кружка-1» до конца месяца?»
- «Сравни мои цены на SKU-12345 с конкурентами»
AI-агент сам выбирает инструменты.
Routines — Claude как сотрудник на расписании
Claude Code Routines (research preview, Anthropic, апрель 2026) запускают чат-сессию автоматически — по cron, API-триггеру или GitHub-событию. Ваш ноутбук может быть выключен.
Пример: еженедельный отчёт каждый понедельник
- В Claude Code:
/schedule create - Cron:
0 9 * * MON(каждый понедельник 9:00) - Подключите коннектор
atools.vip/mcp - Промпт:
/atools weekly_pulse - Опционально: подключите Telegram connector от Anthropic — Claude будет сразу постить отчёт в ваш канал.
Лимиты Routines (на стороне Anthropic):
- Pro: 5 запусков / день
- Max: 15 / день
- Team / Enterprise: 25 / день
⚠️ Важно про безопасность Routines
В обычном чате Claude спрашивает разрешение перед каждым tool-вызовом. В Routines — НЕ спрашивает. Поэтому пишущие инструменты вынесены в отдельное право «чтение и изменение» (выдаётся на экране согласия) и по умолчанию работают в режиме предпросмотра dry_run: расписание не сможет молча менять цены или отвечать покупателям — отправка требует явного подтверждения.
Управление подключениями
Где посмотреть, что AI-агент делает
В сервисе: меню аватар (правый верхний угол) → «Личные настройки» → «Подключения AI (MCP)» или прямо /account/settings. Там виден:
- Список активных коннекторов с client_id и временем подключения
- Сколько магазинов получил каждый
- Счётчик запросов за 24ч + время последнего вызова
- Кнопка «Отозвать» — мгновенно убивает refresh + все живые access JWT
- Раскрывающийся раздел «Показать активность» — последние 50 tool-вызовов: time / tool / статус / размер ответа KB / латенси
«+ Подключить» открывает окно со скопируемым URL https://atools.vip/mcp и отдельными инструкциями для ChatGPT, Claude и других MCP-клиентов.
Если коннектор «застрял»
Зайдите на /account/settings и нажмите «Отозвать». Все access JWT текущей сессии моментально отправятся в revocation set, refresh token и цепочка его ротации будут аннулированы. Затем добавьте MCP-сервер заново в настройках своего AI-приложения.
Лимиты по умолчанию
- 100 запросов в минуту на токен — защита от runaway-loop в Routine
- 5000 запросов в день — потолок суточного «трафика» AI
- 5 регистраций коннектора в минуту с одного IP (30/день) — защита от спама подключений; обычный пользователь регистрирует коннектор раз в год, так что лимит в 30/день — это с большим запасом
Лимиты можно увеличить на тарифе Team/Enterprise (V1.0.5).
Безопасность и приватность
Что AI-агент видит
- Список ваших магазинов Ozon (из тех, что вы дали при consent)
- Продажи, остатки, юнит-экономика, цены, конкурентные снапшоты, реорды, FBO supplies
- Email и роль (owner / member / superuser) — чтобы знать, чьи данные показывать
Чего AI-агент НЕ видит и не получит даже теоретически
- API-ключи Ozon / Performance API — никогда не выходят из БД
- Telegram-бот токен — никогда
- Чужие компании — токен жёстко связан с вашим
company_idи подмножеством магазинов - Содержимое других подключений в вашем AI-приложении
- Записи
/adminи/superadmin— скрыты от MCP surface
Что записывается
Каждый tool-вызов пишется в mcp_tool_call_log:
- token JTI (можно отозвать конкретный токен)
- tool name + хеш параметров
- размер ответа в байтах
- латенси
- статус (ok / unauthorized / rate_limited / tool_error)
Эти логи доступны вам в разделе «Показать активность» на /account/settings. Для compliance можно показать аудитору, какие данные AI-клиент запрашивал за последний месяц.
Почему мы не используем готовые OAuth-фреймворки
В коннекторе своя реализация OAuth 2.1 на PyJWT. FastMCP-builtin OAuth-прокси сейчас имеет открытый security advisory (токены скоупятся на base_url, а не на resource indicator). Мы пишем сами, чтобы:
- Жёстко енфорсить RFC 8707 Resource Indicators (
audclaim в JWT) - Криптографически изолировать MCP-токены от приложения: токены коннектора подписаны отдельным ключом и не работают против обычного API приложения — утёкший токен нельзя переиграть на запись в кабинет.
- Полная прозрачность кода — security-критичный путь не должен зависеть от чужих обновлений
Дополнительные защиты consent UI
- Имя коннектора и названия магазинов рендерятся через
createElement + textContent— XSS даже от вредоносного DCR-имени невозможен - Строгий CSP (
default-src 'self') +X-Frame-Options: DENY+Referrer-Policy: no-referrerна consent-странице - Первый пользователь, давший consent, становится владельцем коннектора и единственным, кто может его отозвать с
/account/settings. Не «потерянных» коннекторов с NULL-владельцем больше нет.
Типовые проблемы
Не подключается — AI-приложение сообщает, что MCP-сервер недоступен
- Проверьте URL: должен быть
https://atools.vip/mcp(без слеша в конце). - Проверьте статус сервиса — иногда мы выкатываем обновления и /mcp моргает на 30-60 секунд.
- Если есть VPN или корпоративный прокси, приложение может не достучаться до нашего сервера. Попробуйте другую сеть.
Подключилось, но AI-агент говорит «у меня нет инструментов atools»
Проверьте, что приложение Ozon-Tools включено именно в текущем чате или workspace. В ChatGPT откройте Settings → Apps, в Claude — Settings → Connectors.
whoami возвращает пустой список магазинов
На consent screen вы не отметили ни одного. Отзовите коннектор и подключите заново.
Routine падает с ошибкой 429
Превышен дневной лимит 5000 запросов. Обычно это означает плохо написанный промпт, который зацикливает агента. Сократите частоту запуска или дайте Routine более конкретные инструкции «вызвать get_business_pulse один раз и остановиться».
Token не обновляется — приложение каждые 15 минут просит войти
Скорее всего, refresh token был отозван или клиент не поддерживает его обновление. Отзовите подключение в сервисе и добавьте MCP-сервер заново.
В отчёте по weekly_pulse пусто — «нет данных»
Проверьте, что синхронизация Ozon у вас отрабатывает (Аналитика → Продажи). Tool'ы читают из тех же таблиц.
Цена в get_price_history показывается с before=null
Самая первая запись цены не имеет «было». Это нормально для свежезавезённого SKU.
Для разработчиков и ops
Полная техническая документация по локальной разработке (cloudflared/ngrok туннели), staging cutover (28-пунктовый чеклист) и production rollout — в файле backend/MCP_DEV.md репозитория. Там же — troubleshooting: что делать если iss mismatch, 429 на легальном трафике, redis=no в проде.
Что появится в следующих релизах
- Каталоги приложений — после периода стабильной работы подготовим публикацию в каталогах поддерживаемых AI-клиентов, чтобы URL не приходилось вводить вручную
- Reviews data source — когда появится sync per-review строк,
list_reviewsначнёт возвращать реальные данные без изменения схемы tool'а - V2 — write tools — отдельный коннектор
atools-write, который сможет менять цены, создавать поставки, отвечать на отзывы. Через elicitation (подтверждение от пользователя) или explicit-approval scope. - Plugin marketplace — пакет MCP + skills + готовые сценарии для поддерживаемых AI-платформ