# خادم MCP واتساب في مُجيب: الرابط والدخول والأدوات

> خادم MCP واتساب في مُجيب يتيح لـ Claude وChatGPT قراءة محادثات نشاطك وحجوزاته وتحسين الوكيل بإذنك. الرابط، وتسجيل الدخول OAuth، والصلاحيات، وكل الأدوات.

خادم MCP واتساب في مُجيب عنوان واحد هو `https://api.mujib.ai/mcp`، يتصل به Claude أو ChatGPT فيقرأ محادثات نشاطك على واتساب وإنستغرام وماسنجر، وحجوزاته وعملاءه وطلباته، بحساب المالك أو المدير الذي ربطه. وإذا منحته الوصول الكامل حسّن الوكيل أيضًا. ولا يرسل الخادم أي رسالة إلى عملائك.

هذه الصفحة للمطوّر: العنوان والمصادقة والصلاحيات والأدوات. أما خطوات الإضافة من داخل كل تطبيق ففي [مُجيب داخل Claude](https://docs.mujib.ai/integrations/claude/) و[مُجيب داخل ChatGPT](https://docs.mujib.ai/integrations/chatgpt/).

## ما رابط خادم MCP في مُجيب؟

الرابط `https://api.mujib.ai/mcp`، وتجده في اللوحة أيضًا: افتح «التكاملات»، ثم بطاقة «مُجيب جوّا Claude» أو «مُجيب جوّا ChatGPT»، وانسخه من «رابط الربط» بزر «انسخ الرابط».

| البند | القيمة |
| --- | --- |
| العنوان | `https://api.mujib.ai/mcp` |
| النقل | Streamable HTTP بطلبات `POST` فقط، وكل طلب مستقل بلا جلسة محفوظة |
| المصادقة | OAuth مع PKCE، والرمز في الترويسة `Authorization: Bearer <token>` |
| الصلاحيات | `mujib:read` للقراءة، و`mujib:agent` لتعديل الوكيل |

الطلب بلا رمز يعود برمز `401` وبعنوان وثيقة الاكتشاف في الترويسة `WWW-Authenticate`، وهكذا يعرف التطبيق أين يسجّل الدخول:

```bash
curl -i https://api.mujib.ai/mcp
```

```text
HTTP/1.1 401 Unauthorized
www-authenticate: Bearer resource_metadata="https://api.mujib.ai/.well-known/oauth-protected-resource/mcp"

{"error":"A Mujib sign-in is required."}
```

## أي تطبيقات تستطيع الاتصال بخادم MCP؟

يتصل به Claude وChatGPT فقط. يسجّل كل تطبيق نفسه عند أول ربط، ويقبل مُجيب التسجيل إذا كانت عناوين الرجوع كلها على `claude.ai` أو `claude.com` أو `chatgpt.com` عبر `https`.

- أي تطبيق آخر، ومنه التطبيقات التي ترجع إلى عنوان على جهازك، يُرفض تسجيله بالخطأ `invalid_redirect_uri`.
- تعرض صفحة الموافقة اسم التطبيق بحسب المكان الذي يعود إليه رمز الدخول، لا بحسب الاسم الذي سجّل به نفسه، وتعرض ذلك العنوان.
- خطوات الإضافة: [مُجيب داخل Claude](https://docs.mujib.ai/integrations/claude/) و[مُجيب داخل ChatGPT](https://docs.mujib.ai/integrations/chatgpt/).

## كيف يعمل تسجيل الدخول عبر OAuth؟

يتبع مُجيب طريقة MCP القياسية: يكتشف التطبيق خادم الدخول من الرابط نفسه، ويسجّل نفسه، ثم يرسل الشخص ليدخل ويوافق.

1. يرسل التطبيق طلبًا بلا رمز فيأتيه الرد `401` ومعه عنوان وثيقة المورد المحمي.
2. يقرأ الوثيقة `https://api.mujib.ai/.well-known/oauth-protected-resource/mcp` فيعرف خادم الدخول `https://api.mujib.ai/api/auth`.
3. يقرأ إعدادات خادم الدخول من `https://api.mujib.ai/.well-known/oauth-authorization-server/api/auth`، ويسجّل نفسه في `https://api.mujib.ai/api/auth/oauth2/register`.
4. يفتح للشخص صفحة دخول مُجيب، ويُطلب رمز التحقق بخطوتين إذا كان مفعّلًا، ثم صفحة الموافقة حيث يضغط «اسمح».
5. يستبدل التطبيق رمز التفويض برمز دخول ورمز تجديد، مع PKCE بطريقة `S256`.
6. يرسل الرمز مع كل طلب `POST` إلى `/mcp`.

هذه وثيقة المورد المحمي كما يعيدها الخادم:

```json
{
  "resource": "https://api.mujib.ai/mcp",
  "authorization_servers": ["https://api.mujib.ai/api/auth"],
  "bearer_methods_supported": ["header"],
  "dpop_signing_alg_values_supported": ["EdDSA", "ES256", "ES512", "PS256", "RS256"],
  "scopes_supported": ["mujib:read", "mujib:agent"]
}
```

يعيد مُجيب التحقق في كل طلب: هل ما زال الشخص مالكًا أو مديرًا وحسابه فعّالًا، وهل النشاط فعّال، وهل الموافقة باقية. فإذا فصلت المساعد أو تغيّر شيء من ذلك توقف الوصول من الطلب التالي.

## ما الفرق بين صلاحية `mujib:read` وصلاحية `mujib:agent`؟

`mujib:read` تتيح القراءة وحدها وهي مطلوبة في كل ربط، و`mujib:agent` تضيف أدوات تعدّل إعداد الوكيل.

| الصلاحية | ما تتيحه | في صفحة الموافقة |
| --- | --- | --- |
| `mujib:read` | 11 أداة قراءة: المحادثات والحجوزات والعملاء والطلبات وإعداد الوكيل | مطلوبة دائمًا |
| `mujib:agent` | 4 أدوات إضافية تعدّل قاعدة المعرفة والتصحيحات وتعليمات الوكيل | المربع «وصول كامل: يشوف ويحسّن الوكيل» معلَّم تلقائيًا |

- إذا أزلت العلامة من المربع قبل «اسمح» حصل التطبيق على القراءة وحدها.
- تظهر حالة كل ربط في قائمة «الموصولين»: «وصول كامل» أو «بيشوف بس — لوصول كامل افصله ووصّله من جديد»
- أدوات التعديل تحتاج إلى `mujib:agent` في الرمز وفي الموافقة الحالية معًا؛ فالموافقة الأضيق التالية تسحبها حتى من رمز قديم.

## ما الأدوات التي يقدّمها خادم MCP؟

يقدّم الخادم 15 أداة. يحصل التطبيق على مخطط مدخلات كل أداة من `tools/list`، وتحمل أدوات القراءة العلامة `readOnlyHint`.

| الأداة | ما تفعله | النوع |
| --- | --- | --- |
| `workspace_info` | اسم النشاط وفروعه وتاريخ اليوم والأقسام التي يستخدمها | قراءة |
| `waiting_for_staff` | المحادثات المحوّلة إلى موظف وتنتظر ردًا، مع العميل وقناته وآخر رسالة | قراءة |
| `activity_summary` | ملخص فترة: المحادثات والعملاء الجدد وما أنجزه الوكيل وحده والتحويلات وزمن أول رد | قراءة |
| `list_bookings` | مواعيد يوم أو أيام، بالوقت والعميل والأخصائي والفرع والحالة | قراءة |
| `find_customers` | البحث عن عميل بالاسم بأي تهجئة عربية أو بالرقم | قراءة |
| `read_conversation` | آخر رسائل محادثة عميل، مميزةً بين العميل والوكيل والفريق | قراءة |
| `customer_messages_today` | رسائل العملاء اليوم بلا أسماء، لمعرفة أكثر الأسئلة تكرارًا | قراءة |
| `list_orders` | الطلبات النشطة أو المنتهية مع مجاميع اليوم | قراءة |
| `leads_to_follow_up` | عملاء مهتمون توقفوا عن المراسلة، مع عدد الأيام منذ آخر رسالة | قراءة |
| `get_agent_setup` | تعليمات الوكيل وقواعد التحويل والكلمات المفضلة والممنوعة والتصحيحات الفعّالة | قراءة |
| `search_knowledge` | البحث في قاعدة معرفة الوكيل | قراءة |
| `add_knowledge_entry` | إضافة معلومة إلى قاعدة المعرفة | تعديل |
| `update_knowledge_entry` | تعديل عنوان معلومة أو نصها أو إيقافها | تعديل يستبدل الموجود |
| `add_agent_correction` | تصحيح قصير يتبعه الوكيل: طريقة رد أو معلومة صحيحة | تعديل |
| `update_agent_instructions` | استبدال تعليمات الوكيل أو تعليمات التحويل أو قائمتي الكلمات | تعديل يستبدل الموجود |

- `list_bookings` ترفض الطلب إذا كانت الحجوزات غير مفعّلة في نشاطك، و`list_orders` إذا لم يكن نشاطك يستقبل الطلبات.
- نتيجة الأداة نص JSON، والخطأ نتيجة فيها `isError` مع جملة قصيرة تشرح السبب.
- كل تعديل يسري على الوكيل من رده التالي، ويمكن التراجع عنه من صفحة التكاملات.

## ما حدود الاستخدام والأخطاء التي قد يتلقاها التطبيق؟

لكل ربط، أي لكل شخص مع تطبيق واحد، حد 120 طلبًا في الدقيقة.

| الحالة | الرد |
| --- | --- |
| تجاوز حد الطلبات في الدقيقة | `429` مع الترويسة `Retry-After` |
| الطلب بلا رمز | `401` مع عنوان وثيقة الاكتشاف |
| فُصل الربط، أو عُطّل حساب الشخص، أو لم يعد النشاط فعّالًا | `401` مع `error="invalid_token"`، فيطلب التطبيق الدخول من جديد |
| الشخص لم يعد مالكًا أو مديرًا | `403` مع `error="insufficient_scope"` |
| مدخلات خاطئة، أو شيء غير موجود في نشاطك | نتيجة أداة فيها `isError` |

## كيف أراجع ما قرأه المساعد وأتراجع عن تغييراته؟

كل ما يفعله المساعد يظهر في بطاقة التطبيق نفسها في صفحة «التكاملات».

1. افتح بطاقة «مُجيب جوّا Claude» أو «مُجيب جوّا ChatGPT».
2. في «شو قرأ مؤخرًا» ترى آخر الطلبات التي أرسلها المساعد، لكل منها وصف قصير من دون نص الرسائل. ويحفظ مُجيب هذا السجل 90 يومًا.
3. في «شو غيّر بالوكيل» ترى آخر التعديلات على الوكيل، من Claude أو ChatGPT، وبجانب كل منها «تراجع» ليعود الوكيل كما كان من رسالته التالية.
4. في «الموصولين» اضغط «افصل» بجانب أي شخص لتوقف وصوله فورًا.

> **ترقية الصلاحية**
>
> لا يتحول ربط القراءة إلى وصول كامل من تلقاء نفسه: افصله، ثم اربطه من جديد من داخل التطبيق واترك المربع «وصول كامل: يشوف ويحسّن الوكيل» معلَّمًا.

## الأسئلة الشائعة

### هل يستطيع خادم MCP إرسال رسائل واتساب إلى عملائي؟

لا. لا توجد بين أدواته أداة ترسل رسالة إلى عميل. يقرأ بيانات نشاطك، ويعدّل إعداد الوكيل فقط إذا منحته الوصول الكامل.

### هل أستطيع ربطه بتطبيق غير Claude وChatGPT؟

لا. يقبل مُجيب تسجيل التطبيقات التي تعود إلى مواقع Claude وChatGPT فقط، ويرفض أي تطبيق آخر.

### من يستطيع ربط مساعد بمُجيب؟

مالك الحساب والمديرون فقط، كلٌّ من حسابه. ويُطلب رمز التحقق بخطوتين إذا كان مفعّلًا.

### كيف أوقف وصول المساعد فورًا؟

افتح بطاقة التطبيق في صفحة التكاملات واضغط «افصل» بجانب الشخص. يتوقف الوصول من الطلب التالي، لا عند انتهاء صلاحية الرمز.

### هل تُحفظ المحادثات التي يقرؤها المساعد في سجل؟

يُحفظ وصف قصير لكل طلب، مثل اسم الأداة وما بحثت عنه، من دون نص الرسائل، لمدة 90 يومًا.

---

المصدر: https://docs.mujib.ai/developers/mcp/ · آخر تحديث: 2026-11-04
