Разработчикам
ИИ-ассистенты (MCP)
Подключить
Один адрес сервера для всех ассистентов. Вы входите с аккаунтом NinjaBuy; никакой ключ вставлять не нужно.
https://www.ninjabuy.com/mcp
Claude
- Откройте Settings › Connectors и выберите Add custom connector.
- Вставьте адрес выше и добавьте его.
- Войдите по номеру телефона NinjaBuy, затем выберите Allow access.
ChatGPT
- Включите режим разработчика в настройках, затем добавьте custom MCP server.
- Вставьте адрес выше и выберите OAuth для входа.
- Войдите по номеру телефона NinjaBuy, затем выберите Allow access.
Cursor
Добавьте сервер в Cursor Settings › MCP или в ~/.cursor/mcp.json. При первом запуске Cursor откроет вход в NinjaBuy в браузере.
{
"mcpServers": {
"ninjabuy": {
"url": "https://www.ninjabuy.com/mcp"
}
}
}Claude Code и другие ассистенты командной строки
claude mcp add --transport http ninjabuy https://www.ninjabuy.com/mcpНазвания пунктов меню меняются с обновлениями ассистентов; ищите «custom connector» или «custom MCP server».
Вход и доступ
Ассистент входит через OAuth 2.1: регистрирует себя, направляет вас на ninjabuy.com, и вы одобряете его на нашем экране, где указаны приложение и адрес, куда оно вас вернёт. Разрешайте только приложение, которое вы только что сами попросили подключить. Каждое приложение одобряется один раз.
- Он действует как ваш аккаунт: инструменты не принимают ID аккаунта и видят только ваши заказы, полку и товары.
- Доступ действует час и продлевается в течение семи дней; затем ассистент попросит войти снова.
- Чтобы отключить, удалите коннектор в своём ассистенте.
- Инструменты, читающие маркетплейс (product, analyze_product, import_product, push_to_shopify), делят с API лимит 30 запросов в минуту: Лимиты запросов.
Здесь ничего не тратит деньги
Ни один инструмент не платит, не оформляет отправку и не тратит баланс. Когда что-то нужно оплатить, ответ называет страницу, где это делается: оформление из корзины, отправка — со страницы склада. push_to_shopify выставляет товар как черновик, поэтому ничего не поступит в продажу, пока вы его не опубликуете.
Инструменты
Каждый ответ содержит requestId (указывайте его, когда пишете нам) и warnings — то, что стоит знать, но не остановило вызов. Длинный ответ обрезается примерно на 6 000 токенов с truncated: true; тогда списки берут меньший limit.
| Инструмент | Что делает |
|---|---|
| list_orders | Покажи мои заказы NinjaBuy |
| order | Один заказ NinjaBuy |
| warehouse | Мой склад NinjaBuy |
| product | Прочитать варианты товара |
| add_to_cart | Добавить в мою корзину NinjaBuy |
| search_products | Найти товары |
| analyze_product | Анализ товара |
| import_product | Импорт товара |
| push_to_shopify | Отправить в Shopify |
| list_synced_products | Покажи мои синхронизированные товары |
| set_sync_rule | Задать правило синхронизации |
list_ordersтолько чтение
Заказы аккаунта, от новых к старым: статус, статус оплаты, что ещё не оплачено, товары и страница каждого заказа. Следуйте по cursor, пока has_more равно true.
cursorstring?- Из предыдущего ответа; для первой страницы не указывайте.
limitnumber?- От 1 до 25. По умолчанию 25.
{
"orders": [
{
"id": "j57a9x2b",
"number": 1012,
"kind": "procurement",
"total": "¥57.00",
"orderStatus": { "status": "ordered" },
"paymentStatus": { "status": "paid" },
"amountDue": null,
"itemCount": 1,
"items": [
{
"id": "P1012-1",
"title": "Heavyweight washed hoodie",
"quantity": 1,
"options": ["Black", "M"],
"status": "ordered"
}
],
"url": "https://www.ninjabuy.com/me/orders/j57a9x2b"
}
],
"cursor": "eyJvIjoyNX0",
"has_more": true,
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}orderтолько чтение
Один заказ по id: его позиции и цены, статус каждого товара и сколько прибыло, а также отправление с трекингом. order равен null для id, который не принадлежит этому аккаунту.
idstringобязательно- ID из list_orders.
{
"order": {
"id": "j57c4k1m",
"number": 1019,
"kind": "shipout",
"orderStatus": { "status": "ready" },
"paymentStatus": { "status": "paid" },
"shipment": {
"state": "shipped",
"destinationCountry": "US",
"weightGrams": 176,
"trackingNumbers": ["YT2630812345678"],
"shippedAt": 1793685600000
},
"url": "https://www.ninjabuy.com/me/orders/j57c4k1m"
},
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}warehouseтолько чтение
Всё, что прибыло на наш склад: фото, сколько прибыло, сколько можно отправить или уже в отправлении, вес, объявленная стоимость, оплачено ли и когда заканчивается бесплатное хранение.
Без входных данных.
{
"items": [
{
"id": "P1012-1",
"order": 1012,
"title": "Heavyweight washed hoodie",
"photos": [
{
"type": "image",
"url": "https://media.ninjabuy.com/qc/P1012-1/1.webp"
}
],
"received": 1,
"availableToShip": 1,
"inShipment": 0,
"unitWeightGrams": 176,
"declaredUnitValue": "¥38.00",
"paid": true,
"freeStorageUntil": "2026-12-02T03:20:11.000Z"
}
],
"warehouseUrl": "https://www.ninjabuy.com/me/warehouse",
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}productтолько чтение
Читает карточку по любой ссылке на товар (Taobao, Tmall, Weidian, 1688, ссылка или короткая ссылка другого агента по покупкам, страница товара NinjaBuy): название, изображения, продавец и каждый вариант с его skuId, названием, ценой в CN¥ и остатком.
linkstringобязательно- Ссылка на товар, до 2 048 символов.
{
"product": {
"handle": "weidian-7750970856",
"title": "重磅水洗连帽卫衣",
"seller": "Ruoyi Studio",
"variants": [
{
"skuId": "5187209554",
"label": "Black / M",
"priceMinor": 3800,
"price": "¥38.00",
"inStock": true
},
{
"skuId": "5187209555",
"label": "Black / L",
"priceMinor": 3800,
"price": "¥38.00",
"inStock": false
}
],
"url": "https://www.ninjabuy.com/products/weidian-7750970856"
},
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}add_to_cartзапись
Кладёт варианты одной карточки в корзину, чтобы закупить заранее и хранить на вашей полке. Ничего не покупается: в ответе — страница корзины, где вы оформляете заказ.
handlestringобязательно- Из product.
lines{ skuId, quantity }[]обязательно- От 1 до 100 строк; количество от 1 до 9 999. Если вариант уже в корзине, количество добавляется.
{
"added": 1,
"cartUrl": "https://www.ninjabuy.com/cart",
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}search_productsтолько чтение
Поиск по ключевым словам на Taobao или 1688, как на ninjabuy.com. Вставленная ссылка возвращает этот товар.
querystringобязательно- От 2 до 120 символов или ссылка.
providerstring?- taobao или 1688. По умолчанию taobao.
pagenumber?- От 0 до 20.
{
"kind": "products",
"products": [
{
"handle": "taobao-781204556120",
"title": "Heavyweight cotton hoodie, washed",
"price": { "amount": "45.00", "currency": "CNY" },
"marketplace": "taobao",
"url": "https://www.ninjabuy.com/products/taobao-781204556120"
}
],
"page": 0,
"totalCount": 1840,
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}analyze_productтолько чтение
Во что обходится одна продажа каждого варианта с доставкой до двери покупателя и цена, сохраняющая вашу маржу на маркетплейсе. Ничего не сохраняется. Те же цифры, что и в анализе импорта.
linkstringобязательно- Ссылка на товар.
weight_gnumberобязательно- Вес одной единицы в упаковке, в граммах.
ship_tostring?- Двухбуквенный код страны. По умолчанию US.
lanestring?- saver или fast.
marketplacestring?- ebay, shopify, amazon или tiktok.
margin_percentnumber?- Целевая маржа. По умолчанию 30.
{
"title": "重磅水洗连帽卫衣",
"shipTo": "US",
"marketplace": "ebay",
"brandHint": null,
"variants": [
{
"sku": "5187209554",
"label": "Black / M",
"inStock": true,
"procurement": "57.00",
"parcel": "134.52",
"landedUsd": "27.71",
"suggestedPrice": "49.99",
"marginPercent": "30.16"
}
],
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}import_productзапись
Импортирует карточку с анализом, как в Imports API. Бесплатно. Возвращает импорт, чтобы отправить или пересчитать цену.
linkstringобязательно- Ссылка на товар или таблица находок.
weight_gnumberобязательно- Вес одной единицы в упаковке, в граммах.
ship_tostring?- Двухбуквенный код страны. По умолчанию US.
lanestring?- saver или fast.
marketplacestring?- ebay, shopify, amazon или tiktok.
margin_percentnumber?- Целевая маржа. По умолчанию 30.
{
"import": {
"id": "imp_2c9d",
"status": "ready",
"title": "重磅水洗连帽卫衣",
"variants": 6,
"inStock": 5
},
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}push_to_shopifyзапись
Сохраняет импорт как товар и выставляет его в магазин Shopify как черновик с запасом на локации Fulfilled by NinjaBuy. Повторная отправка его обновляет. Те же правила, что и у Отправить в Shopify.
import_idstringобязательно- Из import_product.
variants{ sku, price }[]?- Какие оставить и по какой цене в US$. Если не указано — товары в наличии по рекомендуемой цене.
titlestring?- Ваше название.
shopstring?- Нужно, если привязано несколько магазинов.
{
"product": "prd_8f2k",
"shopify": {
"status": "draft",
"variants": 5,
"adminUrl": "https://admin.shopify.com/store/acme-goods/products/8812042"
},
"skipped": [{ "sku": "5187209555", "reason": "sold_out" }],
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}list_synced_productsтолько чтение
Ваши товары с последней проверкой, изменениями себестоимости и остатками, чтобы было видно, что изменилось.
statusstring?- active или paused.
changed_sincestring?- Дата: только товары, у которых с тех пор изменились себестоимость или остатки.
cursorstring?- Из предыдущего ответа; для первой страницы не указывайте.
limitnumber?- От 1 до 25. По умолчанию 25.
{
"products": [
{
"id": "prd_1x0a",
"title": "Canvas Tote",
"status": "active",
"lastCheckedAt": "2026-11-04T02:10:00Z",
"costChange": {
"from": "¥42.00",
"to": "¥48.00",
"action": "repriced",
"price": { "from": "$18.99", "to": "$20.99" }
}
}
],
"cursor": null,
"has_more": false,
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}set_sync_ruleзапись
Что делать, когда продавец поднимает цену: пересчитать цену с сохранением маржи, поставить на паузу или только сообщить вам. Для всех товаров или одного. Те же поля, что и в Правилах синхронизации.
applies_tostringобязательно- all или ID товара.
on_cost_increasestringобязательно- reprice, pause или notify.
keep_margin_percentnumber?- При reprice.
max_increase_percentnumber?- При reprice: выше — пауза.
{
"rule": {
"id": "rule_default",
"appliesTo": "all",
"onCostIncrease": {
"action": "reprice",
"keepMarginPercent": 40,
"maxIncreasePercent": 15
}
},
"requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
"warnings": []
}Что спросить
Какие мои заказы ещё ждут продавца?
Два: #1012 (толстовка washed, выкуплена 1 ноября) и #1015 (две холщовые сумки). Оба оплачены и заказаны у продавца; ни один ещё не дошёл до склада.
Стоит ли продавать эту толстовку на eBay? weidian.com/item.html?itemID=7750970856, около 180 г в упаковке.
Одна продажа в США стоит 191,52 CN¥ с доставкой, около $27.71. При цене $49.99 eBay оставляет себе около $7.20, а вы получаете $15.08 — маржа 30%. Black / L распродан. Брендовых слов в названии нет.
Хорошо. Выставь Black / M в моём Shopify за $49.99, название «Heavyweight Washed Hoodie».
Готово: это черновик на acme-goods.myshopify.com с 1 вариантом, запас на Fulfilled by NinjaBuy. Проверьте фото и опубликуйте его в Shopify.
Держи маржу 40% на всё, но никогда не поднимай цену больше чем на 15% за раз.
Задано для всех товаров. Рост выше 15% вместо этого ставит товар на паузу, и я увижу это в list_synced_products.