/ الدليل / الملعب / mcp-server-odoo
● مجتمع ivnvxd ⚡ فوري

mcp-server-odoo

بواسطة ivnvxd · ivnvxd/mcp-server-odoo

الاستعلام عن أي نموذج Odoo ERP وتحديثه بأمان من المحادثة — الطلبات والجهات الاتصال والمنتجات — مع اختيار ذكي للحقول وضمانات القراءة فقط.

يتصل mcp-server-odoo بأي نسخة Odoo 16+ عبر XML-RPC. يوفر البحث في السجلات والقراءة والإنشاء والتحديث والحذف مع الاختيار التلقائي للحقول ذات المعنى لكل نموذج، بالإضافة إلى وضع YOLO-read لأي إصدار Odoo. استخدم مصادقة مفتاح API (موصى به) أو اسم مستخدم/كلمة مرور.

لماذا تستخدمه

الميزات الأساسية

عرض مباشر

كيف يبدو في الممارسة

server-odoo.replay ▶ جاهز
0/0

التثبيت

اختر العميل

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "server-odoo": {
      "command": "uvx",
      "args": [
        "mcp-server-odoo"
      ],
      "_inferred": true
    }
  }
}

افتح Claude Desktop → Settings → Developer → Edit Config. أعد التشغيل بعد الحفظ.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "server-odoo": {
      "command": "uvx",
      "args": [
        "mcp-server-odoo"
      ],
      "_inferred": true
    }
  }
}

يستخدم Cursor نفس مخطط mcpServers مثل Claude Desktop. إعدادات المشروع أولى من الإعدادات العامة.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "server-odoo": {
      "command": "uvx",
      "args": [
        "mcp-server-odoo"
      ],
      "_inferred": true
    }
  }
}

انقر على أيقونة MCP Servers في شريط Cline الجانبي، ثم "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "server-odoo": {
      "command": "uvx",
      "args": [
        "mcp-server-odoo"
      ],
      "_inferred": true
    }
  }
}

نفس الصيغة مثل Claude Desktop. أعد تشغيل Windsurf لتطبيق التغييرات.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "server-odoo",
      "command": "uvx",
      "args": [
        "mcp-server-odoo"
      ]
    }
  ]
}

يستخدم Continue مصفوفة من كائنات الخادم بدلاً من خريطة.

~/.config/zed/settings.json
{
  "context_servers": {
    "server-odoo": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-server-odoo"
        ]
      }
    }
  }
}

أضف إلى context_servers. يعيد Zed التحميل تلقائيًا عند الحفظ.

claude mcp add server-odoo -- uvx mcp-server-odoo

أمر من سطر واحد. تحقق باستخدام claude mcp list. احذف باستخدام claude mcp remove.

حالات الاستخدام

استخدامات عملية: mcp-server-odoo

الإجابة على أسئلة المبيعات العفوية من Odoo

👤 مديرو العمليات والمؤسسون الذين يستخدمون Odoo كمصدر الحقيقة لهم ⏱ ~10 min beginner

متى تستخدمه: 'ما هي أفضل 5 عملاء في الأسبوع الماضي من حيث الإيرادات؟' — بدون كتابة XML-RPC.

المتطلبات الأساسية
  • مفتاح API لـ Odoo — Odoo: ملف المستخدم > التفضيلات > مفاتيح API > جديد
  • متغيرات البيئة ODOO_URL, ODOO_DB, ODOO_API_KEY — عيّنها في إعدادات عميل MCP الخاص بك
الخطوات
  1. قائمة النماذج المتاحة
    list_models — أي نماذج Odoo يمكننا الاستعلام عنها في هذه النسخة؟✓ تم النسخ
    → كتالوج النماذج مع الأوصاف
  2. تشغيل الاستعلام
    في sale.order، ابحث عن الطلبات مع date_order بين يوم الاثنين الماضي واليوم، قسّم حسب partner_id، اجمع amount_total، أفضل 5.✓ تم النسخ
    → قائمة العملاء المرتبة مع الإجماليات
  3. التنقيب بعمق
    للعميل الأول، أظهر آخر 3 طلبات مع بنود الطلب الخاصة بهم.✓ تم النسخ
    → تفصيل مفصل

النتيجة: إجابة تجارية من بيانات ERP دون مغادرة المحادثة.

المزالق
  • إجماليات العملات المتعددة لا تُحول — حدد currency_id في المرشح، أو حول في طبقة LLM
  • ODOO_YOLO=true خطر في الإنتاج — استخدم ODOO_YOLO=read أو اتركه غير معيّن؛ فعّل الوصول الكامل فقط في قاعدة بيانات التجريب
اجمعها مع: notion

تنظيف رؤساء CRM القديمة في Odoo

👤 عمليات المبيعات ⏱ ~30 min intermediate

متى تستخدمه: تتراكم الرؤساء بدون نشاط؛ تريد إعادة تعيينها أو أرشفتها.

الخطوات
  1. البحث عن رؤساء قديمة
    في crm.lead، ابحث عن رؤساء حيث stage_id ليست 'Won' والنشاط الأخير قبل أكثر من 60 يوماً.✓ تم النسخ
    → قائمة الرؤساء القديمة
  2. اقترح إجراءات
    صنّف كل واحد: أرشفة، إعادة تعيين لزعيم الفريق، أو التواصل مع المالك الحالي.✓ تم النسخ
    → التصنيف حسب الرأس
  3. تطبيق على دفعات (اقرأ فقط أولاً!)
    تشغيل جاف فقط: أظهر ما قد يتغير إذا أرشفت حاوية 'archive'.✓ تم النسخ
    → ملخص التشغيل الجاف؛ ثم تأكد قبل update_record

النتيجة: خط أنابيب أنظف مع تغييرات قابلة للتدقيق.

المزالق
  • أرشفة رؤساء تعتمد عليها فرق أخرى — قم بتشغيل جاف أولاً دائماً؛ ضع علامات على الرؤساء المؤرشفة بدلاً من الحذف

صياغة متابعات للفواتير غير المدفوعة

👤 حسابات القبض والمالية ⏱ ~25 min intermediate

متى تستخدمه: تشغيل حصار شهري.

الخطوات
  1. سحب الفواتير المتأخرة
    في account.move، ابحث عن الفواتير حيث state='posted'، payment_state='not_paid'، invoice_date_due < اليوم - 15.✓ تم النسخ
    → قائمة متأخرة مع الشريك + المبلغ
  2. صياغة متابعة مهذبة لكل عميل
    لكل واحد، صيغ بريداً إلكترونياً باللغة المفضلة للعميل باستخدام إعدادات ODOO_LOCALE.✓ تم النسخ
    → نص الصياغة لكل فاتورة

النتيجة: رسائل بريد إلكتروني للحصار جاهزة للإرسال (الإنسان يراجع بعد ذلك).

التركيبات

اجمعها مع خوادم MCP أخرى لتحقيق نتائج x10

server-odoo + notion

سحب لقطة المبيعات من Odoo، نشر في Notion للمصالح

قم بتشغيل مبيعات الشهر الماضي حسب فئة المنتج من Odoo، انشرها كجدول Notion تحت المالية / الشهري.✓ تم النسخ
server-odoo + postgres

مقابلة بيانات Odoo مع نسخة مستودع للتحليل الثقيل

للعملاء الـ 10 الأوائل في Odoo، اسحب عدد جلسات الويب الخاصة بهم من قاعدة بيانات تحليلات Postgres.✓ تم النسخ

الأدوات

ما يوفره هذا الـ MCP

الأداةالمدخلاتمتى تستدعيهاالتكلفة
list_models (none) اكتشاف التشغيل الأول استدعاء XML-RPC واحد
search_records model: str, domain?: filter, fields?: str[], limit?: int أي استعلام قراءة استدعاء XML-RPC واحد
get_record model, id معرّف معروف، تحتاج إلى تفاصيل كاملة استدعاء واحد
create_record model, values: object فقط مع ODOO_YOLO=true أو مفتاح API يمنح الكتابة استدعاء واحد (كتابة)
update_record model, id, values الكتابات — تأكد أولاً استدعاء واحد (كتابة)
delete_record model, id نادراً — الأرشفة أفضل عادةً استدعاء واحد (كتابة، مدمرة)
list_resource_templates (none) استكشاف معرفات موارد URI المتاحة مجاني

التكلفة والحدود

تكلفة التشغيل

حصة API
محدود بخادم Odoo؛ بدون تكلفة لكل استدعاء
الرموز لكل استدعاء
استجابات الحقول الذكية تحافظ على الاستجابات أقل من 1000 رمز لكل سجل
التكلفة المالية
مجاني؛ تحتاج إلى نسخة Odoo (مجتمع أو مؤسسة)
نصيحة
مرر دائماً fields= صريحة على النماذج الكبيرة مثل product.template لتجنب سحب 200 حقل.

الأمان

الصلاحيات والأسرار ونطاق الأثر

الحد الأدنى من الصلاحيات: مفتاح API أو مستخدم بحقوق القراءة على النماذج التي تستعلم عنها
تخزين بيانات الاعتماد: ODOO_API_KEY في متغير البيئة؛ لا تلتزم به أبداً بـ repo
نقل البيانات الخارجي: استدعاءات إلى نسخة Odoo الخاصة بك فقط
لا تمنح أبدًا: ODOO_YOLO=true في الإنتاج

استكشاف الأخطاء

الأخطاء الشائعة وحلولها

الوصول مرفوض على النموذج

مستخدم مفتاح API ليس لديه حقوق الوصول لذلك النموذج. امنح أو غيّر المستخدم.

تحقق: Odoo: الإعدادات > المستخدمون > حقوق الوصول
قاعدة البيانات غير موجودة

عيّن ODOO_DB بشكل صريح؛ الكشف التلقائي يفشل عندما يكون قائمة قواعد البيانات معطلة.

تحقق: curl -d '{"jsonrpc":"2.0","method":"call","params":{"service":"db","method":"list"}}' $ODOO_URL/jsonrpc
وحدة MCP Odoo غير مثبتة

في الوضع القياسي، ثبّت وحدة مجتمع mcp_odoo، أو التبديل إلى وضع ODOO_YOLO=read.

تحقق: Odoo: التطبيقات > البحث عن mcp_odoo

البدائل

mcp-server-odoo مقابل البدائل

البديلمتى تستخدمهاالمقايضة
XML-RPC مباشر عبر fetch MCPتحتاج فقط إلى استعلام محدد واحدبدون اختيار ذكي للحقول؛ ثقيل الصيغة النمطية
postgres MCP على قاعدة بيانات Odooتريد SQL خام ويمكنك الاتصال بـ Postgres الأساسيتجاوز Odoo ACLs — خطر دون رعاية

المزيد

الموارد

📖 اقرأ ملف README الرسمي على GitHub

🐙 تصفح القضايا المفتوحة

🔍 تصفح أكثر من 400 خادم MCP و Skills