يغيّر بروتوكول سياق النموذج (MCP) معنى «مساعد الذكاء الاصطناعي» لمستخدمي Odoo. فبدلاً من تصدير ملفات CSV وشرح المشكلات لروبوت محادثة، يصل وكيل الذكاء الاصطناعي مباشرةً، وبعد المصادقة، إلى نسخة Odoo لديك — بالصلاحيات نفسها التي يملكها المستخدم البشري، وعبر طبقة ORM ذاتها. Odoo Surface MCP هو خادم MCP مفتوح المصدر يجعل هذا واقعاً، اليوم، على Odoo 17+.
فيما يلي حالات استخدام ملموسة في خمسة مجالات يكون فيها التأثير فورياً. يُبيِّن كل مثال طلب اللغة الطبيعية، وما يفعله الوكيل في الخلفية، وما ينتج عن ذلك.
المحاسبة
فرز الذمم المدينة المتقادمة
«أرني جميع فواتير العملاء المتأخرة أكثر من 30 يوماً، وسجّل ملاحظة متابعة على أكبر 3 فواتير من حيث المبلغ المستحق.»
يبحث الوكيل في account.move عن فواتير العملاء غير المدفوعة التي تجاوزت تاريخ استحقاقها، ويرتّبها حسب الرصيد المستحق، ويسجّل ملاحظة موحّدة في سجل المراسلات لكل منها — دون أن يفتح أحد الواجهة. ومهمة تستغرق ربع ساعة من التصفية اليدوية تصبح جملة واحدة.
فاتورة المورد من محادثة
“تلقيت للتو فاتورةً من شركة Acme Ltd بمبلغ 12,450 ريال سعودي مقابل خدمات تقنية المعلومات، بتاريخ اليوم. أنشئ مسودة فاتورة المورد.”
يُحدِّد الوكيل المورد من res.partner، وينشئ مسودة account.move من نوع in_invoice بالسطر والمبلغ الصحيحين، ويتركها في حالة المسودة للمراجعة والترحيل. لا تنقل في النماذج، ولا بحث عن الحقول.
تنظيف مسودات نهاية الشهر
“اسرد جميع قيود اليومية التي لا تزال في حالة المسودة من الشهر الماضي.”
بحث فوري في account.move مع تصفية حسب الفترة والحالة — قائمة واضحة يراجعها المحاسب دون التنقل بين التقارير أو ضبط عوامل التصفية يدوياً.
المبيعات
عرض سعر من ملاحظات المحادثة
“أنشئ عرض سعر لشركة الاتصالات السعودية: 10 وحدات من حامل الخادم A و 5 وحدات من UPS Pro، خصم 10%، صالح لمدة 14 يوماً.”
يُحدِّد الوكيل العميل والمنتجات، وينشئ sale.order بأسطر الطلب، ويطبق الخصم، ويحدد تاريخ الصلاحية — من جملة واحدة إلى عرض سعر كامل في حالة المسودة، جاهز للإرسال.
متابعة عروض الأسعار المرسلة والراكدة
“ابحث عن جميع عروض الأسعار في حالة مُرسَل التي لم تُحدَّث خلال الـ 7 أيام الماضية وانشر ملاحظة متابعة على كل منها.”
يبحث الوكيل في sale.order عن العروض المرسلة الراكدة، ويسجّل تذكيراً في سجل مراسلات كل منها. ومهمة كانت ستشغل مندوب المبيعات 20 دقيقة تُنجز في ثوانٍ — ويمكن تشغيلها قبل كل اجتماع مبيعات أسبوعي.
ملخص العميل قبل المكالمة
“ما هو وضع الطلبات والفواتير الحالية لشركة الراجحي للتجارة؟”
يقرأ الوكيل بيانات الشريك، ويجلب طلبات المبيعات المفتوحة والفواتير المرتبطة بها، ويعيد المبالغ والحالات وتواريخ الاستحقاق في ملخص نظيف — بالضبط ما يحتاجه مدير المبيعات قبل 5 دقائق من مكالمة عميل.
المشتريات
أمر شراء من عرض أسعار
«أنشئ أمر شراء لشركة Dell Arabia بخمسة حواسيب محمولة بسعر 4,200 ريال سعودي للجهاز، والتسليم المتوقع خلال أسبوعين.»
ينشئ الوكيل purchase.order بالمورد الصحيح وسطر المنتج والسعر والتاريخ المجدول — محفوظاً في حالة المسودة ليؤكده مدير المشتريات. لا قوائم منسدلة، ولا إعادة تحميل للصفحات، ولا نسخ ولصق من البريد الإلكتروني.
مُستَلَم ولم يُفوتَر بعد
“أرني جميع أوامر الشراء من هذا الشهر التي تم استلامها ولم تُفوتَر بعد.”
تصفية على purchase.order بالشرط invoice_status = to invoice ضمن الشهر الحالي، والناتج هو بالضبط القائمة التي يحتاجها فريق الحسابات الدائنة لمتابعة فواتير الموردين — دون تصدير أي تقرير.
تسليمات الموردين المتأخرة
“أي الموردين لديهم أوامر شراء مفتوحة بتواريخ تسليم مضت بالفعل؟”
يستعرض الوكيل سطور أوامر الشراء المتأخرة مجمَّعةً حسب المورد. من هناك، يمكن للذكاء الاصطناعي فوراً نشر ملاحظات المتابعة أو وضع علامة على السجلات للتصعيد — كل ذلك في نفس الجلسة.
المخزون
فحص مستوى المخزون حسب الفئة
“ما هو المخزون الحالي المتوفر لجميع المنتجات في فئة الإلكترونيات؟”
يستعلم الوكيل من stock.quant مع التصفية حسب فئة المنتج، ويعيد الكميات المتوفرة لكل منتج في كل موقع — أسرع من فتح شاشة تقارير المخزون وضبط عوامل التصفية.
تحويل داخلي
“أنشئ تحويلاً داخلياً بـ 20 وحدة من الصنف X من المستودع الرئيسي إلى فرع الرياض.”
ينشئ الوكيل stock.picking من النوع الداخلي، ويحدّد موقعي المصدر والوجهة، ويضيف سطر الحركة، ويحفظه مسودةً — جاهزاً ليؤكده أمين المستودع ميدانياً.
تنبيه ما دون نقطة إعادة الطلب
“اسرد جميع المنتجات التي يقل مخزونها الحالي عن نقطة إعادة الطلب.”
بالجمع بين قواعد stock.warehouse.orderpoint وبيانات stock.quant الحالية، يعرض الوكيل كل منتج يحتاج إلى إعادة تزويد — وهي مهمة تتطلب عادةً فتح تقرير إعادة التزويد ثم التصفية والتصدير.
الموقع الإلكتروني والمدونة
صفحة هبوط من ملخص
«أنشئ صفحة هبوط غير منشورة على /ramadan-offer، فيها قسم رئيسي بارز، وثلاث بطاقات للميزات، وزر يدعو إلى التواصل.»
ينشئ الوكيل ir.ui.view بقالب QWeb مكتمل البنية يستخدم الكتل الجاهزة الأصلية في Odoo، ثم ينشئ سجل website.page المرتبط به — فتكون الصفحة كاملة وقابلة للتحرير في محرر الموقع خلال ثوانٍ. وقد أُنشئت هذه المقالة بالطريقة نفسها.
تعديلات محتوى دقيقة
«غيّر العنوان الرئيسي في القسم البارز من صفحة /services إلى شعارنا الجديد.»
يجلب الوكيل arch_db للصفحة، ويعدّل العنصر المطلوب بعينه في الذاكرة، ثم يحفظه في تحديث واحد — دون فتح محرر الموقع، ودون حذف كتل بالخطأ، ودون خطر نشر مسودة معيبة سهواً.
رفع الصور وتضمينها
“ارفع صورة المنتج من خادمنا وضمِّنها في صفحة /products/erp.”
يستخدم الوكيل fetch_and_upload لتخزين الصورة كـ ir.attachment في Odoo، ثم يرجع إليها عبر /web/image/{id} — تظل جميع الأصول داخل Odoo، مملوكةً وقابلةً للوصول دون تبعيات خارجية.
البدء
كل حالات الاستخدام أعلاه تعمل على أي نسخة Odoo 17 أو أحدث. أضف هذا المقطع إلى إعدادات عميل MCP لديك (Claude Desktop أو Cursor أو أي أداة متوافقة مع MCP) ثم أعد التشغيل:
{
"mcpServers": {
"odoo-surface": {
"command": "npx",
"args": ["-y", "@suco/odoo-surface-mcp@latest"],
"env": {
"ODOO_URL": "https://your-odoo.com",
"ODOO_DB": "your_database",
"ODOO_USER": "admin",
"ODOO_PASSWORD": "admin"
}
}
}
}
مفتوح المصدر برخصة MIT. يتولّى الخادم المصادقة وإدارة الجلسات والتخزين المؤقت، ولا يفعل وكيل الذكاء الاصطناعي لديك سوى أن يتخاطب معه.