خادم MCP

دع Claude أو ChatGPT أو Codex أو Gemini أو Cursor أو VS Code يقرأ بيانات شركتك في Inboxy ويجيب عن أسئلتك حول الطلبات والعملاء والمحادثات.

عمليات بصلاحيات محددة · محلي عبر STDIO ومستضاف عبر HTTPS/OAuth · الإصدار 0.2.0 على npm

@inboxychat/mcp
npx -y @inboxychat/mcp@0.2.0
في هذه الصفحة

لمن هذا

التجار وقادة الدعم والمطورون الذين يستخدمون ChatGPT أو Claude أو أي عميل يدعم بروتوكول Model Context Protocol.

ماذا يستطيع

  • نسخة المصدر هذه تضيف 80 عملية موثقة عبر SDK وCLI وMCP. تحقق بشكل منفصل من إصدار npm المثبت وتفعيل الخدمة المستضافة.
  • 27 أداة، تشمل 11 للقراءة العامة و4 للعمليات و4 إجراءات مستقلة لإرسال الرسائل والتفعيل وإرسال الحملات وجدولتها: الشركة والمفتاح، واستهلاك الباقة، والطلبات، وجهات الاتصال، والمحادثات، والرسائل، والمنتجات.
  • شركة واحدة لكل خادم يحددها مفتاح API. لا توجد أداة تقبل معرّف شركة، والتعديلات الموثقة تحتاج موافقة صريحة على المعاينة.
  • كل نتيجة موسومة كبيانات عملاء غير موثوقة، فيُطلب من النموذج ألا ينفّذ أي تعليمات مكتوبة داخل الرسائل.

نظرة عامة

العمليات الموثقة وحدود التغطية الفعلية

نسخة المصدر هذه تضيف 80 عملية موثقة عبر SDK وCLI وMCP. تحقق بشكل منفصل من إصدار npm المثبت وتفعيل الخدمة المستضافة.

التغطية: جهات الاتصال والمهام والتذاكر؛ إسناد وحالة وتصنيفات وملاحظات المحادثات وإرسال نص بإجراء مستقل؛ مسودات وإعداد ومعرفة نصية وقنوات واختبارات وتفعيل موظفي الذكاء الاصطناعي؛ الطلبات اليدوية وحالتها ودفعها وتنفيذها؛ المنتجات والتصنيفات؛ وحالة جهات الاتصال ومراحلها وإسنادها وتاجاتها وحقولها؛ وقراءة الأتمتة ومسوداتها ومحاكاتها وإيقافها وتفعيل نسختها المعتمدة؛ ومعاينة الحملات ومسوداتها وإيقافها وإلغائها وإرسالها واستئنافها وجدولتها بموافقة دقيقة. دليل 553 مسارًا هو بيانات اكتشاف وليس تغطية تنفيذية كاملة للوحة التحكم.

SDK: استخدم describeOperations() ثم prepareOperation(id, input, idempotencyKey) وexecuteOperation(id, input, { idempotencyKey, confirmation }). CLI: أوامر operations list/inspect/preview/run مع --input و--idempotency-key و--confirm. MCP: أدوات operations_list وoperation_inspect وoperation_preview وoperation_execute؛ الرسائل تستخدم message_send والتفعيل يستخدم lifecycle_activate؛ والحملات تستخدم campaign_send أو campaign_schedule. في CLI استخدم messages send بعد معاينة inbox.message.send.

اعرض المعاينة الدقيقة واحصل على موافقة المستخدم الصريحة قبل التعديل. بصمة التأكيد تربط الإدخال والمفتاح لكنها ليست إثباتًا للموافقة البشرية. احتفظ بنفس مفتاح منع التكرار عند استعادة الطلب. لا توجد إعادة محاولة تلقائية. تستمر قيود الشركة والدور والصلاحية والباقة. صلاحيات OAuth للكتابة تحتاج موافقة صريحة جديدة وتبدأ غير محددة؛ المنح القديمة لا تكتسب صلاحيات.

اختبارات ومعالجة معرفة الذكاء الاصطناعي قد تستهلك الرصيد. التفعيل وإسناد القنوات قد يؤثران على الردود الحية. الإرسال يحتاج موافقة على contactId وchannelId ونوع القناة والنص الكامل؛ والخادم يعيد التحقق من الوجهة. لا إرسال وسائط أو قوالب عبر المحادثات ولا حذف كيانات أو HTTP حر أو فوترة أو إدارة منصة. إرسال قوالب الحملات وجدولتها يتطلبان إجراء مستقل وموافقة على لقطة ثابتة للجمهور والمحتوى والمرسل والتوقيت. تعديل الطلبات والتاجات قد يشغّل الأتمتة؛ والحقول المخصصة تستبدل الخريطة كاملة؛ تحديث الدفع لا يخصم من مزود الدفع. استرداد وإلغاء الطلبات والتغطية الكاملة للحملات والأتمتة ما زالت مستثناة.

خادم MCP المستضاف (HTTPS مع OAuth، بلا مفتاح للصق) على https://api.inboxy.chat/mcp. تتصل به ChatGPT وclaude.ai وClaude Code وCodex وGemini CLI عبر هذا الرابط. ويمكن لأي تطبيق الاستمرار بالخادم المحلي أدناه مع مفتاح API.

@inboxychat/mcp خادم Model Context Protocol يعمل على جهازك عبر STDIO. يشغّله تطبيق الذكاء الاصطناعي عبر npx، ويقرأ Inboxy من خلال الواجهة العامة v1 بمفتاحك.

التثبيت

يحتاج Node.js ‏>= 20.3. لا حاجة لتثبيت عام؛ التطبيق يشغّل الحزمة عبر npx. للتأكد من أنه يعمل:

تشغيل تجريبي
INBOXY_API_KEY="inboxy_YOUR_KEY" npx -y @inboxychat/mcp

يطبع "inboxy-mcp: ready (...)" على stderr وينتظر التطبيق. اضغط Ctrl-C للإيقاف.

المصادقة

  1. سجّل الدخول إلى Inboxy بحساب مدير الشركة وافتح المطورون ← API keys في لوحة التحكم ‏(/developer-center/keys).
  2. اختر "أنشئ مفتاح API" وسمِّ المفتاح باسم تعرفه لاحقاً (مثل "Claude على جهازي").
  3. اختر الصلاحيات التي تحتاجها فقط. لا توجد صلاحيات افتراضية، ولا يمكن إنشاء مفتاح بلا صلاحيات. أدوات القراءة تحتاج صلاحيات ":read" ‏(contacts:read وorders:read ...).
  4. اختر مدة الصلاحية: 30 أو 90 (الافتراضي) أو 180 أو 365 يوماً أو بلا انتهاء. الافتراضي 90 يوماً.
  5. انسخ المفتاح عند ظهوره، وهو يبدأ بـ"inboxy_". احفظه في مدير أسرار أو في سلسلة مفاتيح النظام، ولا تضعه أبداً في مستودع كود.

أين يبحث الخادم عن المفتاح

الخيار الأفضل: احفظ المفتاح مرة واحدة في سلسلة المفاتيح عبر CLI، فلا يحتاج أي إعداد تطبيق أن يحتويه.

  1. المتغير INBOXY_API_KEY في قسم "env" بإعداد التطبيق (وINBOXY_API_URL اختياري).
  2. مدخل سلسلة مفاتيح النظام الذي يكتبه inboxy auth login ‏(CLI). ويختار INBOXY_PROFILE ملف التعريف.
  3. فقط على الأجهزة التي لا تملك سلسلة مفاتيح: ملف الإعداد بأذونات 0600 الذي يكتبه inboxy auth login --store file.
حفظ المفتاح في سلسلة المفاتيح
npm i -g @inboxychat/cli
inboxy auth login        # opens the browser (or paste a key when piped)

ربط تطبيق الذكاء الاصطناعي

ChatGPT (MCP المستضاف)

ChatGPT لا يشغّل عملية محلية. استخدم الخادم المستضاف. يلزم أن تكون مسؤول شركة؛ تفتح الموافقة في Inboxy ولا تشارك مفتاح API خام مع OpenAI.

  1. في ChatGPT: الإعدادات ← Apps & Connectors (أو Custom MCP) ← أضف موصلاً جديداً.
  2. رابط الخادم: https://api.inboxy.chat/mcp (يُكتشف OAuth من بيانات well-known على نفس المضيف).
  3. وافق على شاشة الموافقة في Inboxy كمسؤول شركة، ثم اسأل: "بأي شركة في Inboxy أنا متصل؟"
  4. يمكنك الإلغاء في أي وقت من المطورون ← MCP ← تطبيقات الذكاء الاصطناعي المتصلة.
رابط MCP المستضاف
https://api.inboxy.chat/mcp

claude.ai (MCP المستضاف)

نفس رابط ChatGPT المستضاف. موصلات claude.ai تستخدم OAuth؛ تعرض صفحة موافقة Inboxy صلاحيات القراءة المطلوبة قبل أي منح.

  1. في Claude.ai: الإعدادات ← Connectors ← أضف موصلاً مخصصاً / خادم MCP.
  2. الصق https://api.inboxy.chat/mcp، أكمل OAuth، ووافق كمسؤول شركة.
  3. جرّب: "اعرض أقدم خمسة طلبات معلّقة." يجب أن يستدعي Claude أداة orders_list.
رابط MCP المستضاف
https://api.inboxy.chat/mcp

Claude Code

الخادم المستضاف: أضف الرابط، ثم اكتب /mcp داخل Claude Code واختر inboxy وسجّل الدخول، ووافق على شاشة الموافقة في Inboxy كمسؤول شركة. الخادم المحلي: احفظ المفتاح عبر inboxy auth login ثم أضف أمر npx.

الخادم المستضاف (OAuth)
claude mcp add --transport http inboxy https://api.inboxy.chat/mcp

ثم نفّذ /mcp داخل Claude Code لتسجيل الدخول.

المفتاح في سلسلة المفاتيح
claude mcp add inboxy -- npx -y @inboxychat/mcp
المفتاح من متغير بيئة
claude mcp add inboxy -e INBOXY_API_KEY="$INBOXY_API_KEY" -- npx -y @inboxychat/mcp

يحفظ Claude Code القيمة في إعداده الخاص. استخدم طريقة سلسلة المفاتيح إذا كان هذا الملف مشتركاً.

ملف المشروع `.mcp.json`
{
  "mcpServers": {
    "inboxy": {
      "command": "npx",
      "args": ["-y", "@inboxychat/mcp"],
      "env": { "INBOXY_API_KEY": "${INBOXY_API_KEY}" }
    }
  }
}

يستبدل Claude Code القيمة ${INBOXY_API_KEY} من بيئة الطرفية، فيبقى المفتاح خارج الملف.

Claude Desktop

الإعدادات ← Developer ← Edit Config، أضف الخادم إلى claude_desktop_config.json ثم أعد تشغيل Claude Desktop. لا يستبدل Claude Desktop صيغة ${VAR}: احفظ المفتاح عبر inboxy auth login واحذف "env"، أو ضع المفتاح في "env" وأبقِ الملف خاصاً.

claude_desktop_config.json
{
  "mcpServers": {
    "inboxy": {
      "command": "npx",
      "args": ["-y", "@inboxychat/mcp"]
    }
  }
}

إذا لم يجد Claude Desktop الأمر npx فاستخدم مساره الكامل (نفّذ which npx).

Codex (OpenAI Codex CLI)

يتصل Codex بالخادم المستضاف عبر HTTPS ويسجّل الدخول بـOAuth في المتصفح؛ وافق على شاشة الموافقة في Inboxy كمسؤول شركة. يحتاج إصداراً حديثاً من Codex CLI: حدّثه إذا لم يتعرّف على --url أو codex mcp login.

الخادم المستضاف (OAuth)
codex mcp add inboxy --url https://api.inboxy.chat/mcp
codex mcp login inboxy
~/.codex/config.toml
[mcp_servers.inboxy]
url = "https://api.inboxy.chat/mcp"

الخادم نفسه مكتوباً في ملف إعداد Codex. نفّذ codex mcp login inboxy بعد حفظه.

الخادم المحلي بمفتاح API
codex mcp add inboxy --env INBOXY_API_KEY="$INBOXY_API_KEY" -- npx -y @inboxychat/mcp

يحفظ Codex القيمة في ~/.codex/config.toml، فأبقِ هذا الملف خاصاً. إذا كان المفتاح في سلسلة المفاتيح (inboxy auth login) فاحذف --env.

Gemini CLI

يتصل Gemini CLI بالخادم المستضاف عبر HTTPS. بعد إضافته شغّل gemini ونفّذ /mcp auth inboxy لتسجيل الدخول بـOAuth، ثم وافق على شاشة الموافقة في Inboxy كمسؤول شركة.

الخادم المستضاف (OAuth)
gemini mcp add --transport http inboxy https://api.inboxy.chat/mcp

ثم نفّذ /mcp auth inboxy داخل Gemini CLI.

~/.gemini/settings.json
{
  "mcpServers": {
    "inboxy": {
      "httpUrl": "https://api.inboxy.chat/mcp"
    }
  }
}
الخادم المحلي بمفتاح API
{
  "mcpServers": {
    "inboxy": {
      "command": "npx",
      "args": ["-y", "@inboxychat/mcp"],
      "env": { "INBOXY_API_KEY": "$INBOXY_API_KEY" }
    }
  }
}

يقرأ Gemini CLI القيمة $INBOXY_API_KEY من بيئة الطرفية، فيبقى المفتاح خارج الملف.

Cursor

`~/.cursor/mcp.json` أو .cursor/mcp.json
{
  "mcpServers": {
    "inboxy": {
      "command": "npx",
      "args": ["-y", "@inboxychat/mcp"]
    }
  }
}

مع حفظ المفتاح في سلسلة المفاتيح. وإلا أضف "env": { "INBOXY_API_KEY": "..." } وأبقِ الملف خارج git.

VS Code

.vscode/mcp.json
{
  "inputs": [
    { "type": "promptString", "id": "inboxy-key", "description": "Inboxy API key", "password": true }
  ],
  "servers": {
    "inboxy": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@inboxychat/mcp"],
      "env": { "INBOXY_API_KEY": "${input:inboxy-key}" }
    }
  }
}

يطلب VS Code المفتاح مرة واحدة ويحفظه بأمان. احذف "inputs" و"env" إذا كان المفتاح في سلسلة المفاتيح.

البدء السريع

  1. أنشئ مفتاحاً بصلاحيات القراءة التي تريدها.
  2. احفظه: inboxy auth login.
  3. أضف الخادم إلى تطبيقك (أعلاه).
  4. اسأل: "بأي شركة في Inboxy أنا متصل؟" فيستدعي التطبيق company_get.

أدلة الاستخدام

أسئلة للتجربة

  • "كم طلباً ما زال معلقاً؟ اعرض أقدم خمسة." ‏(orders_list)
  • "ابحث عن العميل صاحب الرقم 9665... واعرض طلباته." ‏(contacts_search وorders_list)
  • "لخّص محادثات واتساب غير المقروءة اليوم." ‏(conversations_list وconversation_messages)
  • "كم بقي لي من حدود باقتي؟" ‏(usage_get)
  • "هل المنتج ذو الرمز ABC-1 متوفر؟" ‏(products_search)

عدة شركات (للوكالات)

احفظ ملف تعريف لكل شركة عبر inboxy auth login --profile client-a، ثم أضف خادماً لكل شركة مع ضبط INBOXY_PROFILE.

خادم لكل شركة
claude mcp add inboxy-client-a -e INBOXY_PROFILE=client-a -- npx -y @inboxychat/mcp
claude mcp add inboxy-client-b -e INBOXY_PROFILE=client-b -- npx -y @inboxychat/mcp

المرجع

الأدوات

القوائم تستخدم المؤشرات: limit من 1 إلى 50 (الافتراضي 20)؛ وأعد meta.nextCursor في cursor. أداة operation_execute موسومة بأنها قد تعدّل البيانات؛ الاكتشاف والمعاينة للقراءة فقط.

الأداةالصلاحيةيقرأ
company_get—الشركة المتصلة والمفتاح المستخدم (الاسم والصلاحيات وتاريخ الانتهاء) وحدود الطلبات
usage_getanalytics:readالباقة وفترة الفوترة والاستهلاك مقابل كل حد
orders_listorders:readالطلبات من الأحدث؛ مع تصفية بالحالة والدفع والتنفيذ والمصدر والمتجر والعميل والنص والتاريخ
order_getorders:readطلب واحد بالمنتجات والإجماليات والعميل والتتبع
contacts_searchcontacts:readجهات الاتصال بالاسم أو الهاتف أو البريد؛ مع تصفية بالحالة ومرحلة العميل والوسوم والتاريخ
contact_getcontacts:readجهة اتصال واحدة بالوسوم والحقول المخصصة وإجمالي الطلبات
conversations_listconversations:readمحادثات صندوق الوارد مع آخر رسالة؛ مع تصفية بالحالة والقناة والموظف المسؤول وغير المقروء والنص والتاريخ
conversation_getconversations:readمحادثة واحدة: العميل والقناة والحالة والتصنيفات وآخر رسالة
conversation_messagesmessages:readرسائل محادثة واحدة من الأحدث
products_searchproducts:readمنتجات الكتالوج بالاسم أو رمز SKU
product_getproducts:readمنتج واحد بالسعر والمخزون والمتجر المصدر
tickets_listtickets:readتذاكر العملاء مع التصفية بالحالة أو الأولوية أو العميل أو المسؤول أو النص
ticket_gettickets:readتذكرة واحدة بحالتها وأولويتها والعميل والموعد
tasks_listtasks:readمهام الفريق مع التصفية بالحالة أو الأولوية أو المسؤول أو الموعد أو المتأخرة
task_gettasks:readمهمة واحدة بموعدها والمسؤول عنها وما ترتبط به
campaigns_listcampaigns:readحملات واتساب بأعداد المرسل والمستلم والمقروء والفاشل
campaign_getcampaigns:readحملة واحدة ونتائجها
templates_listtemplates:readقوالب واتساب (ميتا) بحالتها وفئتها وجودتها
appointments_listmeetings:readمواعيد التقويم بوقتها والعميل وتأكيده
operations_list—اكتشاف 25 عملية موثقة؛ عرض البيانات الوصفية لا يمنح إذن التنفيذ
operation_inspect—عرض مخطط الإدخال والصلاحية المطلوبة والآثار والتحذيرات
operation_preview—التحقق محليًا ومعاينة الطلب وبصمة تأكيده
operation_execute—تنفيذ عملية محددة بصلاحيتها المطلوبة؛ التعديلات تتطلب موافقة صريحة وبصمة التأكيد ومفتاح منع التكرار
message_sendmessages:sendإجراء مستقل لإرسال نص فعلي: يتطلب الموافقة على المستلم والقناة والمحتوى ومنع التكرار
lifecycle_activate—تفعيل حي مستقل بموافقة دقيقة على المخطط والنسخة أو القنوات ومنع التكرار
campaign_sendcampaigns:writeإرسال أو استئناف لقطة الحملة المعتمدة بدقة فقط
campaign_schedulecampaigns:writeاعتماد تسليم مستقبلي للجمهور والمحتوى والمرسل والتوقيت المعتمدين بدقة

متغيرات البيئة

المتغيرالمعنى
INBOXY_API_KEYمفتاح API
INBOXY_API_URLأصل الواجهة (الافتراضي https://api.inboxy.chat)
INBOXY_PROFILEملف التعريف المحفوظ المستخدم
INBOXY_TIMEOUT_MSمهلة كل طلب (الافتراضي 20000)

الحدود والأمان

نتائج الأدوات تحتوي نصوصاً كتبها العملاء. كل نتيجة تبدأ بتنبيه "UNTRUSTED DATA" وتوضع داخل كتلة <inboxy_data>، ويُطلب من النموذج ألا ينفّذ أي تعليمات بداخلها. راجع ما يفعله مساعدك بالبيانات.

  • التعديلات محدودة بدليل العمليات الموثقة مع التأكيد الصريح.
  • قراءة واحدة من الواجهة لكل استدعاء أداة، ولا شيء غيرها.
  • تنطبق على المفتاح حدود الطلبات نفسها الخاصة بواجهة REST.
  • HTTPS فقط (وhttp لـlocalhost)؛ تُرفض إعادة التوجيه؛ ولا يظهر المفتاح في النتائج أو الأخطاء أو السجلات.
  • إلغاء الطلب في التطبيق يوقف طلب HTTP.

حل المشكلات

نفّذ inboxy doctor لفحص المفتاح والرابط نفسيهما اللذين يستخدمهما الخادم.

العَرَضالحل
inboxy-mcp: no API keyاضبط INBOXY_API_KEY في إعداد التطبيق، أو نفّذ inboxy auth login.
Inboxy error API_TOKEN_REQUIREDالمفتاح غير معروف أو ملغى أو منتهٍ. أنشئ مفتاحاً جديداً.
Inboxy error INSUFFICIENT_PERMISSIONSالمفتاح لا يملك الصلاحية التي تحتاجها الأداة (راجع الجدول أعلاه).
spawn npx ENOENTالتطبيق لا يجد npx. استخدم مساره الكامل مع Node.js ‏>= 20.3.

أنشئ مفتاح API

ينشئ مدير الشركة المفاتيح من صفحة المطورين في لوحة التحكم.