Entwickler

KI-Assistenten (MCP)

Verbinde Claude, ChatGPT oder Cursor mit deinem NinjaBuy-Konto und frag in normalen Worten: wo eine Bestellung ist, was in deinem Regal liegt, ob sich ein Angebot zu verkaufen lohnt, und stell es in deinen Shop.
Auf dieser Seite
  1. 1Verbinden
  2. 2Anmeldung und Zugriff
  3. 3Nichts hier gibt Geld aus
  4. 4Tools
  5. 5Was du fragen kannst

Verbinden

Eine Serveradresse für jeden Assistenten. Du meldest dich mit deinem NinjaBuy-Konto an; es gibt keinen Schlüssel zum Einfügen.

https://www.ninjabuy.com/mcp

Claude

  1. Öffne Settings › Connectors und wähle Add custom connector.
  2. Füg die Adresse oben ein und füg sie hinzu.
  3. Melde dich mit deiner NinjaBuy-Telefonnummer an und wähle dann Allow access.

ChatGPT

  1. Schalte in den Einstellungen den Entwicklermodus ein und füg dann einen benutzerdefinierten MCP-Server hinzu.
  2. Füg die Adresse oben ein und wähle OAuth als Anmeldung.
  3. Melde dich mit deiner NinjaBuy-Telefonnummer an und wähle dann Allow access.

Cursor

Füge den Server unter Cursor Settings › MCP oder in ~/.cursor/mcp.json hinzu. Cursor öffnet beim ersten Mal die NinjaBuy-Anmeldung in deinem Browser.

~/.cursor/mcp.json
{
  "mcpServers": {
    "ninjabuy": {
      "url": "https://www.ninjabuy.com/mcp"
    }
  }
}

Claude Code und andere Kommandozeilen-Assistenten

Terminal
claude mcp add --transport http ninjabuy https://www.ninjabuy.com/mcp

Menünamen ändern sich mit Updates der Assistenten; such nach „custom connector“ oder „custom MCP server“.

Anmeldung und Zugriff

Der Assistent meldet sich mit OAuth 2.1 an: Er registriert sich selbst, schickt dich zu ninjabuy.com, und du gibst ihn auf unserem eigenen Bildschirm frei, der die App nennt und wohin sie dich zurückschickt. Erlaube nur eine App, die du gerade verbinden wolltest. Du gibst jede App einmal frei.

  • Er handelt als dein Konto: Die Tools nehmen keine Konto-ID und sehen nur deine Bestellungen, dein Regal und deine Produkte.
  • Der Zugriff gilt eine Stunde und verlängert sich sieben Tage lang; danach bittet dich der Assistent, dich erneut anzumelden.
  • Entferne den Connector in deinem Assistenten, um ihn zu trennen.
  • Die Tools, die einen Marktplatz lesen (product, analyze_product, import_product, push_to_shopify), teilen sich das Kontingent der API von 30 pro Minute: Rate-Limits.

Nichts hier gibt Geld aus

Kein Tool bezahlt, gibt einen Versand auf oder gibt dein Guthaben aus. Wenn etwas bezahlt werden muss, nennt die Antwort die Seite, auf der du das tust: den Checkout aus dem Warenkorb, den Versand von deiner Lagerseite. push_to_shopify listet ein Produkt als Entwurf, nichts geht also in den Verkauf, bis du es veröffentlichst.

Tools

Jede Antwort trägt requestId (gib sie an, wenn du uns schreibst) und warnings, Wissenswertes, das den Aufruf nicht gestoppt hat. Eine lange Antwort wird bei etwa 6.000 Tokens mit truncated: true abgeschnitten; Listen nehmen dann ein kleineres limit.

ToolWas es tut
list_ordersMeine NinjaBuy-Bestellungen auflisten
orderEine NinjaBuy-Bestellung
warehouseMein NinjaBuy-Lager
productVarianten eines Produkts lesen
add_to_cartZu meinem NinjaBuy-Warenkorb hinzufügen
search_productsProdukte suchen
analyze_productEin Produkt analysieren
import_productEin Produkt importieren
push_to_shopifyAn Shopify übertragen
list_synced_productsMeine synchronisierten Produkte auflisten
set_sync_ruleEine Sync-Regel festlegen

list_ordersnur lesend

Die Bestellungen des Kontos, neueste zuerst: Status, Zahlungsstatus, was noch offen ist, die Artikel und die Seite jeder Bestellung. Folge cursor, solange has_more true ist.

cursorstring?
Aus der vorherigen Antwort; für die erste Seite weglassen.
limitnumber?
1 bis 25. Ohne Angabe 25.
list_orders antwortet
{
  "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": []
}

ordernur lesend

Eine Bestellung per ID: ihre Positionen und Preise, der Status jedes Artikels und wie viele angekommen sind, und die Sendung mit Sendungsverfolgung. order ist null für eine ID, die nicht zu diesem Konto gehört.

idstringerforderlich
Eine ID aus list_orders.
order antwortet
{
  "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": []
}

warehousenur lesend

Alles, was in unserem Lager eingetroffen ist: Fotos, wie viele angekommen sind, versandbereit oder in einer Sendung, Gewicht, deklarierter Wert, ob bezahlt und wann die kostenlose Lagerung endet.

Keine Eingaben.

warehouse antwortet
{
  "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": []
}

productnur lesend

Liest ein Angebot aus jedem Produktlink (Taobao, Tmall, Weidian, 1688, dem Link oder Kurzlink eines anderen Einkaufsagenten oder einer NinjaBuy-Produktseite): Titel, Bilder, Verkäufer und jede Variante mit skuId, Bezeichnung, CN¥-Preis und Bestand.

linkstringerforderlich
Ein Produktlink, bis zu 2.048 Zeichen.
product antwortet
{
  "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_cartschreibend

Legt Varianten eines Angebots in den Warenkorb, um sie vorab zu kaufen und in deinem Regal zu lagern. Es wird nichts gekauft: Die Antwort ist die Warenkorbseite, auf der du bezahlst.

handlestringerforderlich
Aus product.
lines{ skuId, quantity }[]erforderlich
1 bis 100 Positionen; Menge 1 bis 9.999. Eine Variante, die schon im Warenkorb liegt, wird aufaddiert.
add_to_cart antwortet
{
  "added": 1,
  "cartUrl": "https://www.ninjabuy.com/cart",
  "requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
  "warnings": []
}

search_productsnur lesend

Stichwortsuche auf Taobao oder 1688, dieselbe Suche wie auf ninjabuy.com. Ein eingefügter Link liefert dieses Produkt.

querystringerforderlich
2 bis 120 Zeichen oder ein Link.
providerstring?
taobao oder 1688. Ohne Angabe taobao.
pagenumber?
0 bis 20.
search_products antwortet
{
  "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_productnur lesend

Was ein Verkauf jeder Variante bis zur Haustür des Käufers kostet und der Preis, der deine Marge auf deinem Marktplatz hält. Nichts wird gespeichert. Dieselben Werte wie die Importanalyse.

linkstringerforderlich
Ein Produktlink.
weight_gnumbererforderlich
Verpacktes Gewicht eines Stücks, in Gramm.
ship_tostring?
Zweistelliges Land. Ohne Angabe US.
lanestring?
saver oder fast.
marketplacestring?
ebay, shopify, amazon oder tiktok.
margin_percentnumber?
Die Marge, auf die bepreist wird. Ohne Angabe 30.
analyze_product antwortet
{
  "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_productschreibend

Importiert ein Angebot mit seiner Analyse, wie über die Imports-API. Kostenlos. Antwortet mit dem Import, um ihn zu übertragen oder neu zu bepreisen.

linkstringerforderlich
Ein Produktlink oder eine Fundstücke-Tabelle.
weight_gnumbererforderlich
Verpacktes Gewicht eines Stücks, in Gramm.
ship_tostring?
Zweistelliges Land. Ohne Angabe US.
lanestring?
saver oder fast.
marketplacestring?
ebay, shopify, amazon oder tiktok.
margin_percentnumber?
Die Marge, auf die bepreist wird. Ohne Angabe 30.
import_product antwortet
{
  "import": {
    "id": "imp_2c9d",
    "status": "ready",
    "title": "重磅水洗连帽卫衣",
    "variants": 6,
    "inStock": 5
  },
  "requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
  "warnings": []
}

push_to_shopifyschreibend

Speichert einen Import als Produkt und listet es als Entwurf in deinem Shopify-Shop, bevorratet am Standort Fulfilled by NinjaBuy. Erneutes Übertragen aktualisiert es. Gleiche Regeln wie bei An Shopify übertragen.

import_idstringerforderlich
Aus import_product.
variants{ sku, price }[]?
Welche behalten werden und zu welchem US$-Preis. Ohne Angabe die vorrätigen zum Preisvorschlag.
titlestring?
Dein Titel.
shopstring?
Nötig, wenn mehrere Shops verknüpft sind.
push_to_shopify antwortet
{
  "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_productsnur lesend

Deine Produkte mit ihrer letzten Prüfung, Kostenänderungen und Bestand, damit du siehst, was sich bewegt hat.

statusstring?
active oder paused.
changed_sincestring?
Ein Datum: nur Produkte, deren Kosten oder Bestand sich seitdem geändert haben.
cursorstring?
Aus der vorherigen Antwort; für die erste Seite weglassen.
limitnumber?
1 bis 25. Ohne Angabe 25.
list_synced_products antwortet
{
  "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_ruleschreibend

Was zu tun ist, wenn ein Verkäufer einen Preis erhöht: neu bepreisen, um eine Marge zu halten, pausieren oder dich nur informieren. Für jedes Produkt oder eins. Dieselben Felder wie Sync-Regeln.

applies_tostringerforderlich
all oder eine Produkt-ID.
on_cost_increasestringerforderlich
neu bepreisen, pausieren oder benachrichtigen.
keep_margin_percentnumber?
Mit reprice.
max_increase_percentnumber?
Mit reprice: darüber pausieren.
set_sync_rule antwortet
{
  "rule": {
    "id": "rule_default",
    "appliesTo": "all",
    "onCostIncrease": {
      "action": "reprice",
      "keepMarginPercent": 40,
      "maxIncreasePercent": 15
    }
  },
  "requestId": "5f7c2a1e-3b8d-4c61-9a0f-2e4d6b8c1a37",
  "warnings": []
}

Was du fragen kannst

Welche meiner Bestellungen warten noch auf einen Verkäufer?

list_orders

Zwei: #1012 (der Washed Hoodie, gekauft am 1. Nov.) und #1015 (zwei Canvas-Taschen). Beide sind bezahlt und beim Verkäufer bestellt; noch keine ist im Lager angekommen.

Lohnt es sich, diesen Hoodie auf eBay zu verkaufen? weidian.com/item.html?itemID=7750970856, verpackt etwa 180 g.

analyze_product

Ein Verkauf in die USA kostet 191,52 CN¥ bis zur Haustür, etwa 27,71 $. Bei 49,99 $ behält eBay etwa 7,20 $ und dir bleiben 15,08 $, eine Marge von 30 %. Black / L ist ausverkauft. Keine Markennamen im Titel.

Gut. Stell Black / M für 49,99 $ in meinen Shopify-Shop, Titel „Heavyweight Washed Hoodie“.

import_productpush_to_shopify

Erledigt: Es ist ein Entwurf auf acme-goods.myshopify.com mit 1 Variante, bevorratet bei Fulfilled by NinjaBuy. Prüf die Fotos und veröffentliche es dann in Shopify.

Halte überall 40 % Marge, aber erhöhe einen Preis nie um mehr als 15 % auf einmal.

set_sync_rule

Für alle Produkte festgelegt. Ein Anstieg über 15 % pausiert stattdessen das Produkt, und ich sehe es in list_synced_products.