MCP
يعرّض Chamilo 3.0 خادم MCP حتى تتمكّن مساعدات ووكلاء الذكاء الاصطناعي (موصّلات Claude وChatGPT أو أي عميل متوافق مع MCP) من العمل داخل المنصة نيابةً عن مستخدم مصادق عليه، باستخدام صلاحيات ذلك المستخدم نفسه — دون حساب خدمة منفصل أو وصول مرتفع.
ما يضيفه MCP إلى Chamilo
MCP (Model Context Protocol) معيار مفتوح يتيح لعملاء الذكاء الاصطناعي استدعاء مجموعة محددة من «الأدوات» يعرّضها خادم. خادم MCP في Chamilo يمكن الوصول إليه عبر نقطة نهاية واحدة، /mcp، ويعرّض مجموعة منتقاة من أدوات إدارة المقررات الموجهة للمعلمين وليس سطح واجهة برمجة التطبيقات بالكامل.
القدرات المتاحة
كل استدعاء يُنفَّذ بصفت المستخدم المتصل، لذا لا ترى الأداة ولا تعدّل إلا المقررات التي يديرها ذلك المستخدم. مجموعة الأدوات الحالية:
Current user
إرجاع هوية المستخدم المصادق عليه وأدواره
Teacher courses
سرد المقررات التي يديرها المستخدم كمعلم
Course overview
إرجاع معلومات المقرر الأساسية وعدد الموارد
Create course
إنشاء مقرر جديد وفق قواعد إنشاء المقررات في المنصة
Create course assignment
إنشاء واجب مسودة أو منشور مع وصف ودرجة قصوى
Create course test
إنشاء اختبار اختيار من متعدد بمساعدة الذكاء الاصطناعي من وصف موضوع أو مستند موجود
Get course test response status
الإبلاغ عن الطلاب الذين أجابوا أو قيد التقدم أو معلّقين على اختبار
Get user course test score
إرجاع أحدث وأفضل درجات مكتملة لطالب في اختبار
Create training satisfaction survey
إنشاء استبيان رضا من سبعة أسئلة
Create course learning path
إنشاء مسار تعلّم من صفحات يقدّمها عميل MCP
List documents
سرد المستندات في أداة المستندات بالمقرر
Read course document
إرجاع محتوى HTML والعنوان والبيانات الوصفية لمستند قابل للتحرير
Edit course document
استبدال محتوى HTML الكامل لمستند موجود قابل للتحرير
Create course document
إنشاء مستند HTML بمساعدة الذكاء الاصطناعي في مجلد المستندات الجذر
Create course illustration
توليد رسم توضيحي بالذكاء الاصطناعي لموضوع وحفظه كمستند
Illustrate document paragraph
إدراج صورة أو فيديو موجود قبل فقرة في مستند أو بعدها
Find recent course forum activity
العثور على منشورات منتدى حديثة ومرئية متعلقة بموضوع
Review course quality
تحليل مسارات التعلّم والمستندات والاختبارات والواجبات والاستبيانات في مقرر، وإرجاع توصيات للتحسين
هذه القائمة ينتقيها فريق نواة Chamilo، وليست قابلة للتوسيع من المستخدم داخل المنصة — لا يمكن للمعلمين إضافة أدواتهم الخاصة.
كيف يتصل المستخدمون
مفتاح MCP API الشخصي
يولّد كل مستخدم مفتاحه الخاص ضمن الشبكة الاجتماعية > مفتاح MCP API:
النقر على Generate API key ينشئ مفتاحًا ويعرضه مرة واحدة — يخزّن Chamilo بعد ذلك نسخة مقنّعة فقط، لذا يجب نسخ المفتاح الكامل وتخزينه بأمان فورًا.
توليد مفتاح جديد يلغي فورًا المفتاح السابق.
تعرض الصفحة حالة المفتاح (نشط/غير نشط)، ونقطة نهاية MCP المراد تهيئتها في العميل، وتواريخ الإنشاء وآخر استخدام.
لوحة Remote MCP connection توضح بالضبط ما يُوضع في عميل MCP: عنوان URL لنقطة النهاية وترويسة
Authorization: Bearer <your MCP API key>.
كما تشير الصفحة نفسها، يصادق المفتاح على العميل بصفته حساب ذلك المستخدم — ولا يمنح أي صلاحية لا يملكها الحساب أصلًا.
OAuth 2.1 (العملاء والموصّلات البعيدة)
بالنسبة لعملاء MCP الذين يدعمون اكتشاف OAuth والتسجيل الديناميكي للعميل (بدل مفتاح يُلصق يدويًا)، يعمل Chamilo أيضًا كخادم تفويض OAuth 2.1: يكتشف العميل نقاط نهاية Chamilo، ويسجّل نفسه، ويعيد توجيه المستخدم إلى /oauth/authorize للموافقة على الوصول. تظهر التطبيقات المعتمدة ضمن الشبكة الاجتماعية > التطبيقات المصرّح بها، حيث يمكن للمستخدم إلغاء أي منها لم يعد يستخدمه أو لا يتعرّف عليه.
اعتبارات الأمان
لا تصعيد للصلاحيات. كل استدعاء لأداة MCP وكل تطبيق مصرَّح له عبر OAuth يعمل بصلاحيات مستخدم Chamilo المتصل نفسه — لا يمكن لمفتاح API شخصي أو لتطبيق مصرَّح له أن يفعل أكثر مما يستطيع ذلك المستخدم فعله يدويًا أصلًا.
حامل فقط، ومحدود المعدّل. يقبل
/mcpفقط اعتمادًا من نوع Bearer — مفتاح MCP API شخصي، أو رمز وصول OAuth، أو (في بيئة التطوير) JWT. تُحدَّد محاولات المصادقة بمعدّل لكل عنوان IP لإبطاء تخمين الاعتمادات.سطح عام ضيق. الحركة غير المصادق عليها الوحيدة التي يقبلها
/mcpهي طلبOPTIONSالتمهيدي؛ وكل استدعاء فعلي يتطلبROLE_USER. نقاط نهاية اكتشاف OAuth، وتسجيل العميل الديناميكي، والرموز عامة عمدًا، كما تقتضي مواصفات OAuth 2.1 / MCP — وهذا لا يمنح الوصول بحد ذاته، بل يتيح للعميل فقط معرفة كيفية بدء تدفق التفويض.حماية إعادة ربط DNS معطّلة عمدًا لـ
/mcp. الحزمة التي تنفّذ MCP تقيّد عادةً نقطة النهاية بـlocalhostما لم تُضبط قائمة ثابتة بأسماء المضيفين المسموح بها — وهذا لا يناسب بوابة Chamilo متعددة عناوين URL يمكن الوصول إليها تحت أسماء مضيفين كثيرة. يعطّل Chamilo ذلك الفحص لأنه زائد هنا: كل طلب إلى/mcpيتطلب أصلًا اعتماد Bearer بغض النظر عن ترويسةHost/Origin، وهجوم إعادة ربط DNS (الذي يعتمد على مصادقة محيطة بأسلوب ملفات تعريف الارتباط ترافق مضيفًا مزوَّرًا) لا يستطيع تزوير رمز حامل لا يملكه أصلًا.
إعداد خادم MCP
بخلاف معظم التكاملات في هذا الدليل، لا يملك MCP صفحة إعدادات في لوحة الإدارة — يُضبط على مستوى الملف، في config/packages/mcp.yaml، ويتطلب وصولًا عبر الصدفة إلى الخادم:
app، version، description
الهوية التي يبلّغها Chamilo لعملاء MCP المتصلين
client_transports.stdio / client_transports.http
أي وسائل النقل نشطة؛ يفعّل Chamilo كليهما افتراضيًا
http.path
نقطة نهاية HTTP لـ MCP (/mcp افتراضيًا)
http.allowed_hosts
قائمة السماح بمضيفي إعادة ربط DNS — تُضبط على false في Chamilo (انظر اعتبارات الأمان أعلاه)
http.session.store، .directory، .ttl
أين تُحفظ حالة جلسة MCP ولأي مدة
لتعطيل خادم MCP بالكامل، اضبط client_transports.http: false (وstdio: false إذا كان ينبغي إيقاف نقل واجهة سطر الأوامر أيضًا) ثم امسح ذاكرة التخزين المؤقت:
نصائح
عامل مفتاح MCP API ككلمة مرور — أي شخص يحمله يمكنه التصرف باسم ذلك المستخدم عبر أي عميل MCP.
شجّع المستخدمين على مراجعة التطبيقات المصرَّح لها دوريًا وإلغاء أي شيء لا يتعرّفون عليه.
انظر إعداد الذكاء الاصطناعي لموفّري الذكاء الاصطناعي الذين يدعمون أدوات توليد المحتوى (إنشاء الاختبارات، إنشاء المستندات، الرسوم التوضيحية) المذكورة أعلاه.
آخر تحديث
هل كان هذا مفيدا؟