يُغيِّر بروتوكول سياق النموذج (MCP) معنى “مساعد الذكاء الاصطناعي” بالنسبة لمستخدمي Odoo. بدلاً من تصدير ملفات CSV ووصف المشكلات لروبوت محادثة، يتمتع وكيل الذكاء الاصطناعي بوصول مباشر وموثَّق إلى نسخة Odoo الخاصة بك — بنفس الصلاحيات التي يمتلكها المستخدم البشري، عبر طبقة ORM ذاتها. Odoo Surface MCP هو خادم MCP مفتوح المصدر يجعل هذا واقعاً، اليوم، على Odoo 17+.
فيما يلي حالات استخدام ملموسة في خمسة مجالات يكون فيها التأثير فورياً. يُبيِّن كل مثال طلب اللغة الطبيعية، وما يفعله الوكيل في الخلفية، وما ينتج عن ذلك.
المحاسبة
فرز الذمم المدينة المتقادمة
“أرني جميع فواتير العملاء المتأخرة منذ أكثر من 30 يوماً، وانشر تذكيراً متابعةً على أعلى 3 فواتير من حيث المبلغ المستحق.”
يبحث الوكيل في account.move عن الفواتير الصادرة غير المدفوعة التي تجاوزت تاريخ استحقاقها، ويرتبها حسب الرصيد المستحق، وينشر ملاحظةً موحدةً في المحادثة لكل منها — كل ذلك دون أن يلمس أي إنسان الواجهة. مهمة تستغرق 15 دقيقة من الفلترة اليدوية تتحول إلى جملة واحدة.
فاتورة المورد من محادثة
“تلقيت للتو فاتورةً من شركة 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 بـ 5 أجهزة لابتوب بسعر 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. يتولى الخادم المصادقة وإدارة الجلسات والتخزين المؤقت — وكيل الذكاء الاصطناعي الخاص بك يتحدث إليه فحسب.