المطوّرون

مساعدو الذكاء الاصطناعي (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. فعّل وضع المطوّر في Settings، ثم أضف 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، وتوافق عليه في شاشتنا التي تذكر اسم التطبيق وأين سيعيدك. لا توافق إلا على تطبيق طلبت ربطه للتو. توافق على كل تطبيق مرة واحدة.

  • يعمل باسم حسابك: الأدوات لا تأخذ معرّف حساب، ولا ترى إلا طلباتك ورفّك ومنتجاتك.
  • يدوم الوصول ساعة ويتجدد لمدة سبعة أيام، ثم يطلب منك المساعد تسجيل الدخول مجددًا.
  • أزل الموصل في مساعدك لقطع الاتصال.
  • الأدوات التي تقرأ منصة (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قراءة فقط

طلب واحد بالمعرّف: بنوده وأسعاره، وحالة كل قطعة وكم وصل منها، والشحنة مع التتبّع. يكون order قيمة null لمعرّف لا يخص هذا الحساب.

idstringمطلوب
معرّف من 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 }[]?
ما تحتفظ به وبأي سعر بالدولار الأمريكي. المتوفرة بالسعر المقترح إن لم تُحدَّد.
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، أو معرّف منتج.
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 (الهودي المغسول، اشتُري في 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 بمتغيّر واحد، مخزّن في Fulfilled by NinjaBuy. راجع الصور، ثم انشره في Shopify.

حافظ على هامش 40% على كل شيء، لكن لا ترفع أي سعر أكثر من 15% دفعة واحدة.

set_sync_rule

اضبطها لكل المنتجات. الارتفاع فوق 15% يوقف المنتج مؤقتًا بدلًا من ذلك، وسأراه في list_synced_products.