أدلة تينغ · للرئيس التقني ومدير تقنية المعلومات

MCP أو API: كيف توصّلون مساعد ذكاء اصطناعي بنظام CRM بأمان؟

الجواب المختصر

استخدموا الاثنين. واجهة CRM البرمجية تبقى هي الطريق للبيانات، وخادم MCP يغلّف هذي الواجهة في كم أداة لها أسماء يقدر يستدعيها أي تطبيق ذكاء اصطناعي يدعم MCP، بدل ربط مخصص لكل تطبيق. والأمان يجي من اللي تبنونه داخل الخادم: صلاحيات المستخدم نفسه في كل طلب، وأقل حقول، ومهلة زمنية، وسجل.

من المثال العملي في هذا الدليل
شوفوه بالتفصيل

وش يعتمد عليه الاختيار

  1. وش هو MCP، ووش مو هو

    بروتوكول سياق النموذج MCP معيار مفتوح أطلقته Anthropic في نوفمبر 2024 لربط مساعدات الذكاء الاصطناعي بالأنظمة اللي فيها البيانات. وتوثيقه يقول إنه يركّز بس على بروتوكول تبادل السياق، وما يحدد كيف تستخدم تطبيقات الذكاء الاصطناعي النماذج اللغوية. يعني هو طريق دخول، مو نظام أمان.[1][2]

  2. كم تطبيق ذكاء اصطناعي بيتصل

    مساعد واحد يكلّم نظام CRM واحد يقدر يستدعي الواجهة البرمجية مباشرة. ولما يحتاج تطبيق ثاني أو ثالث، أو فريق ثاني، نفس البيانات، فخادم MCP قدام الواجهة يخلي كل واحد منهم يستخدم نفس الأدوات بدل ربط جديد كل مرة.

  3. كيف يتصل كل تطبيق

    MCP يحدد طريقتين للاتصال: stdio لخادم محلي على نفس الجهاز، وStreamable HTTP للخوادم البعيدة، وهذي تدعم طرق التوثيق المعتادة في HTTP مثل رموز الدخول (bearer tokens)، مع توصية باستخدام OAuth للحصول عليها. تأكدوا أي طريقة اتصال وأي توثيق يدعمها كل تطبيق قبل ما توعدون إنه بيتصل.[2]

  4. وش مسموح للذكاء الاصطناعي يسوي

    قراءة ملف عميل وفتح تذكرة مخاطرهم مختلفة. وتوصية OWASP في خطر الصلاحيات المفرطة إنكم تحصرون الأدوات وصلاحياتها في الحد الأدنى اللازم، وتشترطون موافقة إنسان على الإجراءات عالية الأثر قبل تنفيذها.[4]

متى يكون خادم MCP أفضل من الربط المباشر بالواجهة؟

MCP ما يلغي الواجهة البرمجية. السؤال: كل تطبيق ذكاء اصطناعي له ربط خاص فيه، أو كلهم يتشاركون خادم واحد؟

Aربط مباشر بالـ API
  • مساعد المبيعات
  • مساعد الخدمة
  • مساعد التقارير

واجهة CRM البرمجية

ثلاث عمليات ربط، كل وحدة تنبني وتتحدث وتتأمّن لحالها

Bخادم MCP
  • مساعد المبيعات
  • مساعد الخدمة
  • مساعد التقارير

خادم MCP واحد

فحص الهوية والصلاحيات في كل طلب

واجهة CRM البرمجية

التطبيق الجديد يتصل بنفس الخادم ويستخدم نفس الأدوات

السؤالربط مباشر بالواجهةخادم MCP فوق نفس الواجهة
ربط تطبيق ذكاء اصطناعي جديدتبنون ربط ثاني من الصفريتصل بنفس الخادم ويستخدم نفس الأدوات
تغيير في CRMتعدّلون كل ربطتعدّلون الخادم مرة وحدة
وين الصلاحياتموزّعة على كل ربطداخل كل أداة، في خادم واحد
وش يشوف الذكاء الاصطناعياللي يعرضه كل ربطقائمة أدوات لها أسماء، ولكل وحدة وصف ومخطط مدخلات
يناسب أكثر لماتطبيق واحد، ونظام واحد، وطلبات قليلةأكثر من تطبيق ذكاء اصطناعي أو فريق يحتاجون نفس البيانات

كيف تربطونه خطوة خطوة؟

1القراءة

  1. ابدؤوا ببيانات افتراضية وأداة قراءة وحدة

    مثلاً أداة get_customer اللي تاخذ رقم العميل customer_id بس. لا تبدؤون بحذف السجلات ولا بأي شي يحرّك فلوس.

  2. استخدموا حزمة SDK الرسمية بلغة فريقكم

    اتبعوا دليل البداية الحالي لبناء الخادم في توثيق MCP، وسجّلوا نسخة حزمة SDK في مشروع تجريبي قبل ما يلمس أي شي بيانات حقيقية.[2]

  3. أعطوا كل أداة اسم ووصف ومخطط مدخلات واضح

    get_customer تاخذ customer_id وبس، ووصفها يقول إنها ترجّع ملف عميل مسموح للمستخدم الحالي يشوفه. ولا تخلّون النموذج يختار الشركة أو الكيان من نص السؤال أبداً.

2الصلاحيات

  1. افحصوا الهوية والصلاحيات داخل الخادم

    خذوا هوية المستخدم وكيانه وصلاحياته من تسجيل الدخول، وهو مصدر موثوق، وتأكدوا إن هذا المستخدم مسموح له يشوف هذا العميل قبل ما ترجّعون أي شي. وصف الأداة، أو رسالة الموافقة في تطبيق الذكاء الاصطناعي، مو هو الفحص. وإرشادات الأمان في MCP واضحة إن الخادم ما يقبل رموز دخول ما انصدرت له.[3]

  2. رجّعوا أقل حقول، مع حدود

    رجّعوا بس الحقول اللي يحتاجها الطلب، وحطّوا مهلة زمنية وحد لحجم النتيجة، واكتبوا رسائل خطأ ما تكشف بيانات ولا أسرار.

3الإطلاق

  1. اربطوا تطبيق واحد، وبعدها الثاني

    تأكدوا إن أول تطبيق يشوف الأدوات ويستخدمها صح. ولا تربطون الثاني إلا بعد ما تتأكدون إنه يدعم نفس طريقة الاتصال والتوثيق.

  2. بعدها أضيفوا أداة كتابة وحدة

    أداة مثل create_ticket تغيّر بيانات، فتحتاج صلاحيات أضيق، وموافقة إنسان لما يكون الأثر كبير، وحماية من التنفيذ مرتين.[4]

  3. سجّلوا كل طلب

    سجّلوا مين طلب، وأي أداة، ومتى، والنتيجة، بدون ما تسجّلون ملف العميل كامل أو أي رمز دخول.

أداة وحدة، مثل ما يشوفها تطبيق الذكاء الاصطناعي

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

tools/list → get_customerjson
{
  "name": "get_customer",
  "title": "Customer file",
  "description": "One customer file the signed-in user may see: name, owner, open orders, balance.",
  "inputSchema": {
    "type": "object",
    "properties": {
      "customer_id": {
        "type": "string",
        "description": "The CRM customer ID, for example C10482"
      }
    },
    "required": ["customer_id"]
  }
}

ترتيب الفحوصات داخل الأداة

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

get_customer handler (sketch)python
def get_customer(request, args):
    user = verify_token(request)          # issued to THIS server; reject any other token
    if user is None:
        return error("Please sign in again")   # no tool runs without a valid identity

    record = crm.get_customer(args["customer_id"], timeout_s=5)
    if record is None or not user.may_view(record):   # entity, branch and role
        log(user.id, "get_customer", args["customer_id"], "refused")
        return error("Customer not found or not available to you")

    log(user.id, "get_customer", args["customer_id"], "ok")
    return pick(record, "name", "owner", "open_orders", "overdue_balance")

وش يتغير للشركات في السعودية

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

  • أكثر من كيان على نظام CRM واحد

    لما شركات المجموعة تتشارك نظام CRM واحد، فالكيان جزء من هوية المستخدم اللي تجي من تسجيل الدخول، مو من كلام السؤال. وبكذا الخادم يرفض أي طلب لعميل كيان ثاني، مهما كان مكتوب في الطلب.

  • سجلات العملاء ومكان تشغيل النموذج

    الأداة اللي ترجّع ملفات العملاء ترسل بيانات شخصية للمكان اللي يشتغل فيه نموذج الذكاء الاصطناعي. وإذا كان خارج المملكة، فالمادة التاسعة والعشرون من نظام حماية البيانات الشخصية (الصادر بالمرسوم الملكي رقم م/19 وتاريخ 9/2/1443هـ، والمعدل بالمرسوم الملكي رقم م/148 وتاريخ 5/9/1444هـ) تحدد شروط النقل، ومنها توفر مستوى مناسب لحماية البيانات الشخصية، وأن يقتصر النقل على الحد الأدنى من البيانات الشخصية اللي تدعو الحاجة له، ولائحة نقل البيانات الشخصية إلى خارج المملكة تحدد حالات الإعفاء من هالشرطين والضمانات المطلوبة فيها (المادة الرابعة). وإرجاع أقل حقول ممارسة هندسية سليمة تتماشى مع شرط الحد الأدنى، أما هل النقل مسموح أو لا فهذا سؤال لمستشاركم القانوني.[5][6]

  • أسئلة بالعربي وأسماء أدوات بالإنجليزي

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

اختبار الصلاحيات في ربع ساعة، معبّى

الشكلمثال عملي

Ting

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

الحالةالطلب (افتراضي)النتيجة الصحفي هذي التجربة
طلب مسموحسارة، مبيعات راسخ للسيارات، تطلب عميل راسخ للسيارات رقم C10482يرجع الملف بأربعة حقول بسنجح
خارج صلاحياتهاسارة تطلب عميل راسخ التجارية رقم C20931ينرفض قبل ما تطلع أي بيانات من الخادمفشل وانصلح
طلب ناقصحقل رقم العميل (customer_id) فاضي أو مكتوب غلطرسالة خطأ واضحةنجح
CRM بطيء أو واقفCRM ما رد خلال خمس ثوانيمهلة زمنية ورسالة آمنة، بدون تكرار لا نهائينجح
دخول غير صالحجلسة منتهية، أو تطبيق مو معتمدما تشتغل أي أداةنجح
نفس الطلب من تطبيقينسارة تسأل نفس السؤال في تطبيقين ذكاء اصطناعينفس النتيجة ونفس الصلاحياتنجح

القراراربطوا أول تطبيق. الفشل الوحيد ما سرّب شي من السجل نفسه: رسالة الخطأ كانت «غير مسموح» للأرقام الموجودة و«ما انوجد» للأرقام غير الموجودة، وهذا كشف أي أرقام موجودة عند كيان ثاني. الحين رسالة وحدة للحالتين، والحالة نجحت.

المصدر: مثال توضيحي: مو عميل لتينغ ولا بيانات عميل.

أسئلة تتكرر

هل MCP يلغي الواجهة البرمجية لنظام CRM؟
لا. خادم MCP يستدعي نفس الواجهة. اللي يتغير هو طريقة وصول تطبيقات الذكاء الاصطناعي لنظام CRM، مو طريقة عرض CRM لبياناته.
هل ربط MCP آمن من نفسه؟
ما فيه بروتوكول يخلي الربط آمن لحاله. فحص صلاحيات المستخدم، وإرجاع أقل حقول، والمهلة الزمنية، والسجل، كلها شغل الخادم حقكم، والخطوات فوق تغطي كل وحدة منها.
نحتاج MCP إذا عندنا تطبيق ذكاء اصطناعي واحد بس؟
مو بالضرورة. الربط المباشر بالواجهة أبسط لتطبيق واحد ونظام واحد. وMCP يستاهل لما أكثر من تطبيق ذكاء اصطناعي أو فريق يحتاجون نفس الأدوات.

وش تسوي تينغ هنا، ووش ما تسويه

وش نسوي

  • نحدد الأدوات والصلاحيات وقواعد الموافقة في مخطط حل الذكاء الاصطناعي، وبعدها نبني الخادم على الواجهة البرمجية الحالية لنظام CRM عندكم.
  • نسوي اختبارات الصلاحيات على بيانات افتراضية أول، وبعدها على النطاق الحي المتفق عليه، قبل ما يتصل أي تطبيق، ونسلّم السجلات وأدلة التشغيل.

وين تساعد تينغ: تنفيذ حلول الذكاء الاصطناعي المخصّصة

وش ما نسوي

  • ما نعطي تطبيق ذكاء اصطناعي حساب مشترك يشوف كل شي في CRM عندكم.
  • ما نربط أدوات الكتابة قبل ما تنجح أدوات القراءة في اختباراتها.

المصادر

مصادر أصلية فقط، وكل واحد منها قرأناه كامل في التاريخ المذكور.

  1. إطلاق بروتوكول سياق النموذج MCP (25 نوفمبر 2024)Anthropic · تاريخ المراجعة
  2. نظرة على بنية MCP: المضيف والعميل والخادم والأدوات وطرق الاتصالبروتوكول سياق النموذج (MCP) · تاريخ المراجعة
  3. أفضل ممارسات الأمان: تمرير رموز الدخول وتقليل نطاق الصلاحياتبروتوكول سياق النموذج (MCP) · تاريخ المراجعة
  4. LLM06:2025 الصلاحيات المفرطة (Excessive Agency)مشروع OWASP لأمن الذكاء الاصطناعي التوليدي · تاريخ المراجعة
  5. نظام حماية البيانات الشخصية (المرسوم الملكي م/19 وتاريخ 1443/2/9هـ، والمعدّل بالمرسوم الملكي م/148 وتاريخ 1444/9/5هـ)هيئة الخبراء بمجلس الوزراء · تاريخ المراجعة
  6. لائحة نقل البيانات الشخصية إلى خارج المملكة، الإصدار 2.0 (أغسطس 2024)سدايا · تاريخ المراجعة

جاهزين تطبّقون هذا
على سير عملكم؟

تواصلوا معنا