خادم MCP
دع Claude أو ChatGPT أو Codex أو Gemini أو Cursor أو VS Code يقرأ بيانات شركتك في Inboxy ويجيب عن أسئلتك حول الطلبات والعملاء والمحادثات.
عمليات بصلاحيات محددة · محلي عبر STDIO ومستضاف عبر HTTPS/OAuth · الإصدار 0.2.0 على npm
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 للإيقاف.
المصادقة
- سجّل الدخول إلى Inboxy بحساب مدير الشركة وافتح المطورون ← API keys في لوحة التحكم (/developer-center/keys).
- اختر "أنشئ مفتاح API" وسمِّ المفتاح باسم تعرفه لاحقاً (مثل "Claude على جهازي").
- اختر الصلاحيات التي تحتاجها فقط. لا توجد صلاحيات افتراضية، ولا يمكن إنشاء مفتاح بلا صلاحيات. أدوات القراءة تحتاج صلاحيات ":read" (contacts:read وorders:read ...).
- اختر مدة الصلاحية: 30 أو 90 (الافتراضي) أو 180 أو 365 يوماً أو بلا انتهاء. الافتراضي 90 يوماً.
- انسخ المفتاح عند ظهوره، وهو يبدأ بـ"inboxy_". احفظه في مدير أسرار أو في سلسلة مفاتيح النظام، ولا تضعه أبداً في مستودع كود.
أين يبحث الخادم عن المفتاح
الخيار الأفضل: احفظ المفتاح مرة واحدة في سلسلة المفاتيح عبر CLI، فلا يحتاج أي إعداد تطبيق أن يحتويه.
- المتغير
INBOXY_API_KEYفي قسم "env" بإعداد التطبيق (وINBOXY_API_URLاختياري). - مدخل سلسلة مفاتيح النظام الذي يكتبه
inboxy auth login(CLI). ويختار INBOXY_PROFILE ملف التعريف. - فقط على الأجهزة التي لا تملك سلسلة مفاتيح: ملف الإعداد بأذونات 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.
- في ChatGPT: الإعدادات ← Apps & Connectors (أو Custom MCP) ← أضف موصلاً جديداً.
- رابط الخادم:
https://api.inboxy.chat/mcp(يُكتشف OAuth من بيانات well-known على نفس المضيف). - وافق على شاشة الموافقة في Inboxy كمسؤول شركة، ثم اسأل: "بأي شركة في Inboxy أنا متصل؟"
- يمكنك الإلغاء في أي وقت من المطورون ← MCP ← تطبيقات الذكاء الاصطناعي المتصلة.
https://api.inboxy.chat/mcpclaude.ai (MCP المستضاف)
نفس رابط ChatGPT المستضاف. موصلات claude.ai تستخدم OAuth؛ تعرض صفحة موافقة Inboxy صلاحيات القراءة المطلوبة قبل أي منح.
- في Claude.ai: الإعدادات ← Connectors ← أضف موصلاً مخصصاً / خادم MCP.
- الصق
https://api.inboxy.chat/mcp، أكمل OAuth، ووافق كمسؤول شركة. - جرّب: "اعرض أقدم خمسة طلبات معلّقة." يجب أن يستدعي Claude أداة orders_list.
https://api.inboxy.chat/mcpClaude Code
الخادم المستضاف: أضف الرابط، ثم اكتب /mcp داخل Claude Code واختر inboxy وسجّل الدخول، ووافق على شاشة الموافقة في Inboxy كمسؤول شركة. الخادم المحلي: احفظ المفتاح عبر inboxy auth login ثم أضف أمر npx.
claude mcp add --transport http inboxy https://api.inboxy.chat/mcpثم نفّذ /mcp داخل Claude Code لتسجيل الدخول.
claude mcp add inboxy -- npx -y @inboxychat/mcpclaude mcp add inboxy -e INBOXY_API_KEY="$INBOXY_API_KEY" -- npx -y @inboxychat/mcpيحفظ Claude Code القيمة في إعداده الخاص. استخدم طريقة سلسلة المفاتيح إذا كان هذا الملف مشتركاً.
{
"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" وأبقِ الملف خاصاً.
{
"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.
codex mcp add inboxy --url https://api.inboxy.chat/mcp
codex mcp login inboxy[mcp_servers.inboxy]
url = "https://api.inboxy.chat/mcp"الخادم نفسه مكتوباً في ملف إعداد Codex. نفّذ codex mcp login inboxy بعد حفظه.
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 كمسؤول شركة.
gemini mcp add --transport http inboxy https://api.inboxy.chat/mcpثم نفّذ /mcp auth inboxy داخل Gemini CLI.
{
"mcpServers": {
"inboxy": {
"httpUrl": "https://api.inboxy.chat/mcp"
}
}
}{
"mcpServers": {
"inboxy": {
"command": "npx",
"args": ["-y", "@inboxychat/mcp"],
"env": { "INBOXY_API_KEY": "$INBOXY_API_KEY" }
}
}
}يقرأ Gemini CLI القيمة $INBOXY_API_KEY من بيئة الطرفية، فيبقى المفتاح خارج الملف.
Cursor
{
"mcpServers": {
"inboxy": {
"command": "npx",
"args": ["-y", "@inboxychat/mcp"]
}
}
}مع حفظ المفتاح في سلسلة المفاتيح. وإلا أضف "env": { "INBOXY_API_KEY": "..." } وأبقِ الملف خارج git.
VS Code
{
"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" إذا كان المفتاح في سلسلة المفاتيح.
البدء السريع
- أنشئ مفتاحاً بصلاحيات القراءة التي تريدها.
- احفظه:
inboxy auth login. - أضف الخادم إلى تطبيقك (أعلاه).
- اسأل: "بأي شركة في 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_get | analytics:read | الباقة وفترة الفوترة والاستهلاك مقابل كل حد |
orders_list | orders:read | الطلبات من الأحدث؛ مع تصفية بالحالة والدفع والتنفيذ والمصدر والمتجر والعميل والنص والتاريخ |
order_get | orders:read | طلب واحد بالمنتجات والإجماليات والعميل والتتبع |
contacts_search | contacts:read | جهات الاتصال بالاسم أو الهاتف أو البريد؛ مع تصفية بالحالة ومرحلة العميل والوسوم والتاريخ |
contact_get | contacts:read | جهة اتصال واحدة بالوسوم والحقول المخصصة وإجمالي الطلبات |
conversations_list | conversations:read | محادثات صندوق الوارد مع آخر رسالة؛ مع تصفية بالحالة والقناة والموظف المسؤول وغير المقروء والنص والتاريخ |
conversation_get | conversations:read | محادثة واحدة: العميل والقناة والحالة والتصنيفات وآخر رسالة |
conversation_messages | messages:read | رسائل محادثة واحدة من الأحدث |
products_search | products:read | منتجات الكتالوج بالاسم أو رمز SKU |
product_get | products:read | منتج واحد بالسعر والمخزون والمتجر المصدر |
tickets_list | tickets:read | تذاكر العملاء مع التصفية بالحالة أو الأولوية أو العميل أو المسؤول أو النص |
ticket_get | tickets:read | تذكرة واحدة بحالتها وأولويتها والعميل والموعد |
tasks_list | tasks:read | مهام الفريق مع التصفية بالحالة أو الأولوية أو المسؤول أو الموعد أو المتأخرة |
task_get | tasks:read | مهمة واحدة بموعدها والمسؤول عنها وما ترتبط به |
campaigns_list | campaigns:read | حملات واتساب بأعداد المرسل والمستلم والمقروء والفاشل |
campaign_get | campaigns:read | حملة واحدة ونتائجها |
templates_list | templates:read | قوالب واتساب (ميتا) بحالتها وفئتها وجودتها |
appointments_list | meetings:read | مواعيد التقويم بوقتها والعميل وتأكيده |
operations_list | — | اكتشاف 25 عملية موثقة؛ عرض البيانات الوصفية لا يمنح إذن التنفيذ |
operation_inspect | — | عرض مخطط الإدخال والصلاحية المطلوبة والآثار والتحذيرات |
operation_preview | — | التحقق محليًا ومعاينة الطلب وبصمة تأكيده |
operation_execute | — | تنفيذ عملية محددة بصلاحيتها المطلوبة؛ التعديلات تتطلب موافقة صريحة وبصمة التأكيد ومفتاح منع التكرار |
message_send | messages:send | إجراء مستقل لإرسال نص فعلي: يتطلب الموافقة على المستلم والقناة والمحتوى ومنع التكرار |
lifecycle_activate | — | تفعيل حي مستقل بموافقة دقيقة على المخطط والنسخة أو القنوات ومنع التكرار |
campaign_send | campaigns:write | إرسال أو استئناف لقطة الحملة المعتمدة بدقة فقط |
campaign_schedule | campaigns: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
ينشئ مدير الشركة المفاتيح من صفحة المطورين في لوحة التحكم.
