Разработчикам

ИИ-ассистенты (MCP)

Подключите Claude, ChatGPT или Cursor к аккаунту NinjaBuy и спрашивайте простыми словами: где заказ, что на вашей полке, стоит ли продавать товар — и выставляйте его в магазин.
На этой странице
  1. 1Подключить
  2. 2Вход и доступ
  3. 3Здесь ничего не тратит деньги
  4. 4Инструменты
  5. 5Что спросить

Подключить

Один адрес сервера для всех ассистентов. Вы входите с аккаунтом NinjaBuy; никакой ключ вставлять не нужно.

https://www.ninjabuy.com/mcp

Claude

  1. Откройте Settings › Connectors и выберите Add custom connector.
  2. Вставьте адрес выше и добавьте его.
  3. Войдите по номеру телефона NinjaBuy, затем выберите Allow access.

ChatGPT

  1. Включите режим разработчика в настройках, затем добавьте custom MCP server.
  2. Вставьте адрес выше и выберите OAuth для входа.
  3. Войдите по номеру телефона NinjaBuy, затем выберите Allow access.

Cursor

Добавьте сервер в Cursor Settings › MCP или в ~/.cursor/mcp.json. При первом запуске Cursor откроет вход в NinjaBuy в браузере.

~/.cursor/mcp.json
{
  "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.
Отвечает list_orders
{
  "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
{
  "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только чтение

Всё, что прибыло на наш склад: фото, сколько прибыло, сколько можно отправить или уже в отправлении, вес, объявленная стоимость, оплачено ли и когда заканчивается бесплатное хранение.

Без входных данных.

Отвечает 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
{
  "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. Если вариант уже в корзине, количество добавляется.
Отвечает add_to_cart
{
  "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.
Отвечает search_products
{
  "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.
Отвечает analyze_product
{
  "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_product
{
  "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?
Нужно, если привязано несколько магазинов.
Отвечает push_to_shopify
{
  "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.
Отвечает list_synced_products
{
  "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: выше — пауза.
Отвечает set_sync_rule
{
  "rule": {
    "id": "rule_default",
    "appliesTo": "all",
    "onCostIncrease": {
      "action": "reprice",
      "keepMarginPercent": 40,
      "maxIncreasePercent": 15
    }
  },
  "requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
  "warnings": []
}

Что спросить

Какие мои заказы ещё ждут продавца?

list_orders

Два: #1012 (толстовка washed, выкуплена 1 ноября) и #1015 (две холщовые сумки). Оба оплачены и заказаны у продавца; ни один ещё не дошёл до склада.

Стоит ли продавать эту толстовку на eBay? weidian.com/item.html?itemID=7750970856, около 180 г в упаковке.

analyze_product

Одна продажа в США стоит 191,52 CN¥ с доставкой, около $27.71. При цене $49.99 eBay оставляет себе около $7.20, а вы получаете $15.08 — маржа 30%. Black / L распродан. Брендовых слов в названии нет.

Хорошо. Выставь Black / M в моём Shopify за $49.99, название «Heavyweight Washed Hoodie».

import_productpush_to_shopify

Готово: это черновик на acme-goods.myshopify.com с 1 вариантом, запас на Fulfilled by NinjaBuy. Проверьте фото и опубликуйте его в Shopify.

Держи маржу 40% на всё, но никогда не поднимай цену больше чем на 15% за раз.

set_sync_rule

Задано для всех товаров. Рост выше 15% вместо этого ставит товар на паузу, и я увижу это в list_synced_products.