پرش به محتوا
ابدأ مجانًا

اتصال المساعد الذكي بأودو
دليل مصوَّر لخادم MCP، خطوة بخطوة

اربط Claude أو ChatGPT أو Cursor أو n8n مباشرة ببيانات ERP الحية لديك — بوصول متحكَّم به، وتأكيد بشري لكل تغيير، وتدقيق كامل. دون تثبيت أي برنامج وسيط: نفس أودو هو خادم MCP.

عرض التطبيق وشراؤه
51 أداة · بروتوكول 2026-07-28 · OAuth 2.1 · تأكيد بشري للكتابة

ما خادم MCP على Odoo؟

خادم MCP نقطة اتصال معيارية فوق Odoo تتيح لمساعد الذكاء الاصطناعي أن يقرأ بيانات نظامك فعلياً بدلاً من التخمين، وأن يُجري فيها تعديلاً — بتأكيد صريح منك. MCP اختصار لـ Model Context Protocol؛ بروتوكول مفتوح تكتشف به عملاء الذكاء الاصطناعي أدوات نظام ما وتنفذها. في نسخة Abrak، يُنفَّذ كل استدعاء بصلاحيات مستخدم Odoo نفسه المرتبط بالمفتاح، ولا يُطبَّق أي تعديل كتابي عند أول استدعاء، ويُسجَّل كل طلب — ناجحاً كان أو مرفوضاً.

  • 51 أداةقراءة، تقارير، كتابة بعد التأكيد
  • تأكيد بشريكل تغيير أولاً بعرض الفرق (diff) ثم التنفيذ
  • صلاحيات المستخدمقوائم التحكم بالوصول (ACL) وقواعد السجلات في Odoo سارية
  • تدقيق كاملتسجيل كل استدعاء، بلا تخزين للرمز (token)

لماذا الاتصال المباشر بدلاً من نسخ التقرير في نافذة الدردشة؟

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

ملاحظة أمنية مهمة: اتصال MCP ليس «إعطاء مفتاح الشركة كلها لنموذج». فمستوى الوصول هو بالضبط ما تحدده أنت على المفتاح — وفيما يلي ترى خطوة بخطوة كيف تُبقيه ضيقًا.

الإعداد في 6 خطوات

  1. تفعيل تطبيق خادم MCP: التطبيق «خادم MCP» فعّله من متجر تطبيقات Abrak؛ تظهر قائمة «خادم MCP» في شريط التطبيقات.
  2. إنشاء مفتاح واختيار مستخدم أودو: في «خادم MCP ◂ المفاتيح» اضغطوا زر «جديد» واربطوا المفتاح بمستخدم يملك أقل صلاحية لازمة — تُنفَّذ كل الاستدعاءات بصلاحية ذلك المستخدم. يُعرض نص المفتاح كاملًا مرة واحدة فقط؛ بعدها تبقى بادئته فقط في النظام.
  3. تحديد النطاق وسقف المعدل والنماذج المسموحة: اضبط النطاق على «قراءة فقط» (فلا تُدرَج أدوات الكتابة أصلاً للعميل)، واضبط سقف المعدل في الدقيقة، وقيّد عند الحاجة النماذج والمصادر المسموحة.
  4. الاختبار في المختبر قبل ربط العميل: في «خادم MCP ▸ المختبر» شغّل الأداة نفسها بالمفتاح نفسه. هذه الخطوة ليست اختيارية؛ فهي بالضبط ما يميّز «الأداة معطلة» عن «عميلي معدّ بشكل خاطئ».
  5. اتصال کلاینت هوش مصنوعی: نشانی https://<فضای-کاری>.abrak.org/mcp را با کلید به‌عنوان Bearer token در کلاینت وارد کنید — نمونه‌ی دقیق تنظیمات پایین‌تر آمده است.
  6. تأكيد التغييرات ومراجعة التدقيق: كل أداة كتابة تُرجِع في الاستدعاء الأول فرقاً (diff) فقط؛ وبعد التأكيد، يمكن تتبع الاستدعاء نفسه في «سجل الطلبات» عبر عمود «تم تطبيق الكتابة».

دليل مصوَّر — خطوة بخطوة

📸 للتكبير، انقر على أي صورة — يُفتح ألبوم بملء الشاشة، ويمكنك التنقل بين كل الخطوات بأسهم اليسار/اليمين (أو مفاتيح الأسهم).

الخطوتان 2 و3: إنشاء المفتاح، اختيار المستخدم، وتقييد نطاق الصلاحية

قائمة مفاتيح خادم MCP في Odoo بأعمدة: بادئة المفتاح، مستخدم Odoo، نطاق القراءة والكتابة، الحد الأقصى للمعدل، عدد الاستدعاءات، وآخر استخدام
1. قائمة المفاتيح هي لوحة العمل اليومية: ترى أي مستخدم مرتبط بكل مفتاح، ونطاقه، وعدد مرات استخدامه، وآخر استخدام له. لا يظهر نص المفتاح كاملًا هنا — بل البادئة فقط.
نموذج مفتاح MCP في Odoo: عنوان خادم مساحة العمل، مستخدم Odoo، بادئة المفتاح، تاريخ الانتهاء، اختيار نطاق القراءة فقط أو القراءة والكتابة، الحد الأقصى لمعدل الطلبات في الدقيقة، المصادر المسموح بها، وتبويب الطرق المسموح بها
2. على نموذج المفتاح، يُكتب عنوان خادم مساحة العمل هذه أعلى النموذج لتجنّب الخطأ الإملائي. النطاق وتاريخ الانتهاء وحد المعدّل والمصادر المسموح بها وحتى قائمة الطرق المسموح بها (مثل sale.order:action_confirm) كلها تُضبط هنا.

الخطوة 4: المختبر — تشغيل فعلي للأداة قبل ربط العميل

مختبر خادم MCP في أودو: اختيار المفتاح وأداة jalali_convert، شرح ثنائي اللغة (فارسي وإنجليزي) للأداة، وعرض مخطط JSON للمدخلات
3. تختار الأداة فترى فورًا الوصف الثنائي اللغة ومخطط JSON للمدخلات — وهو ما يراه النموذج أيضًا. تكتب الوسائط في المحرر أعلاه.
نتيجة تشغيل الأداة jalali_convert في مختبر MCP: مخرج JSON يتضمن التاريخ الشمسي والتاريخ الميلادي واسم الشهر بالفارسية ويوم الأسبوع
4. النتيجة هي بالضبط ما يحصل عليه العميل أيضًا: النص وstructuredContent معًا. يُنشئ تبويب «curl» الأمر المكافئ لتتمكن من إعادة إنتاج هذا الاستدعاء نفسه خارج Odoo.

الخطوة 6: تأكيد بشري قبل الكتابة، والتدقيق

رد تأكيد الكتابة في خادم MCP لـ Odoo: الحقل resultType بالقيمة input_required مع وصف دقيق للسجل المزمع إنشاؤه، بالفارسية والإنجليزية
5. أهم صورة في هذه الصفحة. تم استدعاء الأداة create_records ولم يُنشأ أي سجل: الاستجابة هي resultType: "input_required" ونصها يوضح بالضبط أي سجل بأي قيم سيُنشأ — بالفارسية والإنجليزية. لا يُكتب شيء حتى تؤكد.
سجل طلبات خادم MCP في Odoo بأعمدة: الوقت، المفتاح، العميل، طريقة JSON-RPC، الأداة، النموذج، رمز الحالة، سبب الرفض، الكتابة المنفّذة، ومدة التنفيذ
6. كل استدعاء — ناجحًا كان أم مرفوضًا — سطر واحد. يفصل عمود «تم تطبيق الكتابة» المعاينة عن التغيير الفعلي، ويوضح عمود «سبب الرفض» سبب الرفض (Unauthorized، MethodNotFound، InvalidParams وما شابه). الرمز نفسه لا يُحفظ أبدًا.

تسجيل دخول موحَّد: حساب Odoo نفسه، للدردشة ومساعد الذكاء الاصطناعي معًا

صفحة دخول مساعد الذكاء الاصطناعي من Abrak بحقلي البريد الإلكتروني وكلمة المرور وزر منفصل «تابع مع Abrak» للدخول الموحّد
7. Odoo Abrak هو مزوّد الهوية عبر OpenID Connect. زر «المتابعة مع Abrak» في المحادثة يُدخل المستخدم بنفس حساب Odoo — على خادم OAuth 2.1 نفسه الذي يستخدمه خادم MCP.
صفحة الموافقة على وصول OAuth في Odoo: يطلب تطبيق Claude صلاحيتي mcp:read وmcp:write، ويظهر حساب المستخدم admin الذي يسجل الدخول، وتظهر زرا «أسمح» و«أرفض»
8. تظهر هذه الصفحة نفسها عندما يتصل claude.ai بـhttps://mcp.abrak.org/mcp — الاكتشاف التلقائي (RFC 9728) يرسل العميل إلى هنا تحديدًا. اسم التطبيق، الحساب الذي سجّل الدخول، النطاقات المطلوبة، والعنوان الدقيق الذي يُصدَر له الرمز (RFC 8707) كلها معروضة قبل التأكيد.

أمر جاهز في لوحة المعلومات، دون كتابة موجّه

نتيجة تشغيل الأمر الجاهز «نظرة عامة على العمل» في لوحة خادم MCP: لوحة المؤشرات تشمل العملاء المحتملين المفتوحين والمستحقات المتأخرة والفواتير غير المسددة والطلبات المؤكدة وعروض الأسعار المفتوحة والأنشطة المفتوحة والمتأخرة بالأرقام الفارسية
9. من بين 24 أمرًا جاهزًا، يُنفَّذ أمر «نظرة عامة على الأعمال» بنقرة واحدة — دون أي موجّه. المخرجات لوحة مؤشرات، لا JSON خام؛ ويمكن استدعاء الأمر نفسه أيضًا عبر مساعد الذكاء الاصطناعي.
نتيجة الأداة explain_denial في مختبر MCP على مفتاح للقراءة فقط: الحقل allowed يساوي false، وطبقة mcp_scope، وإرشاد بالفارسية والإنجليزية لإنشاء مفتاح بنطاق القراءة والكتابة أو تعديله
10. مفتاح للقراءة فقط يحاول تعديل سجل؛ فيقول explain_denial: allowed: false، وأن طبقة الرفض هي mcp_scope، مع توضيح دقيق لما يجب تغييره — لا مجرد رمز 404 جاف.

الخطوة 5 حسب نوع العميل — إعدادات دقيقة

في جميع الأمثلة التالية، استبدل mycompany.abrak.org بعنوان مساحة عملك وKEY بالمفتاح الذي أنشأته في الخطوة 2. العنوان نفسه مكتوب أيضًا على نموذج المفتاح.

Claude Code (سطر الأوامر)

claude mcp add --transport http abrak https://mycompany.abrak.org/mcp \
  --header "Authorization: Bearer KEY"

ملف .mcp.json — قابل للمشاركة مع زملاء الفريق

{
  "mcpServers": {
    "abrak": {
      "type": "http",
      "url": "https://mycompany.abrak.org/mcp",
      "headers": {
        "Authorization": "Bearer KEY"
      }
    }
  }
}

تقبل معظم تطبيقات سطح المكتب ومحررات الشيفرة (ومنها Cursor وWindsurf) البنية نفسها؛ ويختلف فقط موضع ملف الإعدادات.

اختبار مباشر بـ curl — لتشخيص مشكلة الشبكة

curl -X POST https://mycompany.abrak.org/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer KEY" \
  -H "MCP-Protocol-Version: 2026-07-28" \
  -H "Mcp-Method: tools/list" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'

إذا أعاد هذا الأمر قائمة الأدوات، فهذا يعني أن الخادم والمفتاح يعملان بسلامة، وأي مشكلة تواجهها مصدرها إعدادات العميل. رأسا Mcp-Method وMCP-Protocol-Version إلزاميان في نسخة البروتوكول 2026-07-28، والعملاء المتوافقون يرسلانهما تلقائيًا.

n8n والأتمتة

في n8n استخدموا عقدة MCP Client: العنوان هو نفسه /mcp لمساحة العمل، والمصادقة عبر Header بالشكل Authorization: Bearer KEY. لهذا الاستخدام أنشئوا مفتاحًا منفصلًا بنطاق للقراءة فقط حتى يمكنكم في السجلّ فصل حركة الأتمتة عن حركة البشر.

العملاء السحابيون (claude.ai وChatGPT في المتصفح)

تتصل هذه من خوادمها الخاصة وليس من جهازكم — ولا تفتح اتصالاً مع عنوان IP داخل إيران. العنوان الدائم https://mcp.abrak.org/mcp صُمم لهذا الغرض بالضبط (خلف Cloudflare، دون اعتماد على عنوان IP الخادم). في claude.ai أدخلوا هذا العنوان من قائمة إضافة الموصل؛ يقوم العميل بمصافحة الاكتشاف (RFC 9728) بنفسه ويوصلكم إلى صفحة تأكيد Odoo نفسها — الخطوة 7 في هذه الصفحة بصورة حقيقية. أما عميل سطح المكتب وواجهة الأوامر CLI فلا يحتاجان هذا العنوان المنفصل، ويكفيهما نفس عنوان /mcp الخاص بمساحة العمل.

استكشاف الأخطاء — رسالة خطأ بلغة مفهومة

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

ماذا سترونالمعنى الحقيقيالعمل الصحيح
العميل لا يتصل إطلاقًا العميل سحابي ويتصل من خادمه الخاص، لا من جهازك اختبر أولًا بأمر curl أعلاه من الشبكة نفسها؛ إذا استجاب curl، فالمشكلة في مسار شبكة العميل لا في الخادم
رسالة «المفتاح ليس مفتاح MCP ولا مفتاح API صالحاً» مفتاح خاطئ أو منتهي الصلاحية أو معطّل — أو تابع لمساحة عمل أخرى تحقق من المفتاح في «المفاتيح» وتأكد أن اسم المضيف هو نفسه اسم مساحة العمل
قائمة الأدوات أقصر من المتوقع المفتاح للقراءة فقط؛ أدوات الكتابة غير مدرجة عمدًا إذا احتجت فعلًا إلى الكتابة، اجعل نطاق المفتاح «قراءة وكتابة»
الأداة تعمل لكن النتيجة فارغة إما أنه لا توجد بيانات، أو أن قاعدة سجل أخفتها عن هذا المستخدم تميّز الاستجابة نفسها بين الاثنين؛ وللتفاصيل استدعِ الأداة explain_denial
خطأ إصدار بروتوكول غير مدعوم العميل يعلن إصدارًا غير صالح من البروتوكول حدّث العميل؛ فالخادم يتفاوض مع الإصدارات الأقدم لكنه يرفض الإصدار غير الصالح
خطأ تجاوز حد المعدل (Rate Limit) عدد الاستدعاءات في الدقيقة تجاوز حد المفتاح ارفع سقف المعدل في نموذج المفتاح، أو أنشئ مفتاحًا منفصلًا للأتمتة

ما الذي يميّز خادم MCP هذا عن البقية؟

  • الكتابة ثنائية المرحلة بتوقيع مشفّر: الاستدعاء الأول يُعيد فقط الفرق (diff). ما يُنفَّذ بعد التأكيد هو بالضبط ما تم توقيعه، لا ما يُرسَل في المحاولة الثانية — فلا يستطيع النموذج تبديل الوسائط بين العرض والتنفيذ.
  • رسالة رفض تشرح فعلياً: بدلاً من «Access denied»، يوضح الرد أي طبقة (نطاق المفتاح، سياسة النموذج، صلاحيات Odoo، أو قاعدة السجل)، واسم القاعدة الدقيق، وأي مجموعة غائبة — بلغتين، إضافة إلى أداة explain_denial التي تجيب عن هذا قبل المحاولة.
  • اختيار حقول واعٍ بميزانية الرموز (tokens): تُقلَّم الردود وفق سقف الرموز، ويُبلغ الخادم صراحة بما حُذف — لا أن يُسقِط نصف البيانات بصمت.
  • متعدد المستأجرين فعليًا: تُحدَّد مساحة العمل من اسم المضيف. إذا وصل طلب إلى عقدة خاطئة، يُعلن الرد العنوان الصحيح؛ والمفتاح لا يستطيع أبدًا الإشارة إلى قاعدة بيانات أخرى.
  • حزمة إيران: التاريخ الهجري الشمسي ثنائي الاتجاه، الفترات الفارسية («الربع الماضي»، «مرداد»)، الريال والتومان مع ذكر الوحدة، دورة الشيكات، ملخص الرواتب والتأمين، الحالة وإرسال الرسائل النصية.

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

مقالات مرجعية وتعليمية عن MCP

هوش مصنوعی در کسب و کار ایرانی؛ راهنمای عملی ERP + AI

کاربرد هوش مصنوعی در کسب و کارهای ایرانی ۱۴۰۵: چت بات فروش، AI Agent روی CRM، گزارش لحظه ای با MCP و نقشه راه ورود کم ریسک به اتوماسیون هوشمند.

OIDC یا SAML برای ورود یکپارچه ERP؟

SAML و OIDC هر دو «ورود یکپارچه» را حل می‌کنند، ولی برای یک ERP که قرار است به دستیار هوش مصنوعی هم توکن بدهد، تفاوتشان فقط تشریفاتی نیست. مقایسه‌ی مبتنی بر مستندات رسمی هر دو پروتکل.

لماذا يجب أن تكون أداة MCP لديكم «واعية بميزانية الرموز»؟

كل حقل لا تُرجعه أداة MCP هو رمز (توكن) لم يُنفَق. لماذا يُعدّ اختيار الحقول الافتراضية أهم قرار تصميمي في خادم MCP على ERP.

عزل البيانات في خادم MCP متعدد المستأجرين: أبعد من مجرد «أي قاعدة بيانات»

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

جميع التطبيقات ←

الأسئلة الشائعة عن خادم MCP

برای وصل‌کردن دستیار هوش مصنوعی به اودو دقیقاً چه چیزی لازم است؟

سه چیز: اپ «سرور MCP» روی فضای کاری‌تان فعال باشد، یک کلید MCP بسازید و نشانی /mcp فضای کاری‌تان را با همان کلید در کلاینت هوش مصنوعی وارد کنید. هیچ برنامه‌ی واسطی روی کامپیوتر شما نصب نمی‌شود — خودِ اودو سرور MCP است.

نشانی سرور MCP من چیست؟

نشانی همان دامنه‌ی فضای کاری خودتان به‌علاوه‌ی /mcp است؛ مثلاً اگر با mycompany.abrak.org وارد می‌شوید، نشانی سرور https://mycompany.abrak.org/mcp می‌شود. همین نشانی روی فرم هر کلید MCP هم نوشته شده تا اشتباه تایپ نشود.

کلید را به‌صورت Bearer بدهم یا از OAuth استفاده کنم؟

هر دو کار می‌کند. کلاینت‌های دسکتاپ و CLI (مثل Claude Code، Cursor، n8n) معمولاً یک هدر Authorization: Bearer <کلید> می‌گیرند — ساده‌ترین راه. کلاینت‌هایی که خودشان جریان ورود دارند از OAuth استفاده می‌کنند: کاربر یک بار صفحه‌ی تأیید فارسی را می‌بیند و اجازه می‌دهد؛ پشت صحنه همان سیاست کلید، نرخ و ممیزی اعمال می‌شود.

تفاوت کلید «فقط خواندن» و «خواندن و نوشتن» چیست؟

کلید فقط‌خواندنی ابزارهای نوشتن را اصلاً نمی‌بیند — در فهرست ابزارهای کلاینت ظاهر نمی‌شوند، پس مدل حتی نمی‌تواند تلاش کند. کلید خواندن و نوشتن آن‌ها را می‌بیند، ولی هر نوشتنی در فراخوانی اول فقط یک پیش‌نمایش برمی‌گرداند و تا تأیید صریح شما اعمال نمی‌شود. برای شروع همیشه فقط‌خواندنی بسازید.

چطور می‌فهمم دستیار چه کاری کرده است؟

منوی «لاگ درخواست‌ها» هر فراخوانی را ثبت می‌کند: کدام کلید، کدام ابزار، کدام مدل، چه مدت طول کشید، چه کد وضعیتی برگشت، دلیل رد شدن و — مهم‌تر از همه — ستون «نوشتن اعمال شد» که پیش‌نمایش را از تغییر واقعی جدا می‌کند. خودِ توکن هرگز ذخیره نمی‌شود.

دستیار ابزارها را نمی‌بیند یا فهرست خالی است — چه کنم؟

معمولاً یکی از این سه: کلید غیرفعال یا منقضی است؛ کلید فقط‌خواندنی است و شما دنبال ابزار نوشتن می‌گردید؛ یا مدل موردنظر در فهرست «مدل‌های مجاز» کلید نیست. ابزار explain_denial دقیقاً می‌گوید کدام لایه جلوی کار را گرفته و چه باید عوض شود.

کلاینت می‌گوید به سرور نمی‌رسد — مشکل از کجاست؟

اول تشخیص بدهید کلاینت از کجا وصل می‌شود. کلاینت دسکتاپ از کامپیوتر خود شما وصل می‌شود و مستقیم به نشانی فضای کاری می‌رسد. اما کانکتورهای ابری (claude.ai یا ChatGPT در مرورگر) از سرورهای خودشان وصل می‌شوند و به آی‌پی ایران اتصال باز نمی‌کنند؛ برای آن‌ها یک نشانی بیرونی جداگانه لازم است که با پشتیبانی ابرک هماهنگ می‌شود.

چند درخواست در دقیقه مجاز است؟

روی هر کلید یک «سقف نرخ» تنظیم می‌کنید (پیش‌فرض ۶۰ درخواست در دقیقه). شمارش روی خود پایگاه‌داده انجام می‌شود، پس با چند worker هم درست کار می‌کند. عبور از سقف یک خطای استاندارد برمی‌گرداند، نه قطع بی‌توضیح اتصال.

آیا روی اودوی نصب‌شده روی سرور خودم هم کار می‌کند؟

بله. افزونه یک ماژول استاندارد اودو ۱۹ است و روی نصب اختصاصی هم نصب می‌شود. روی نصب چنددیتابیسی، فضای کاری از روی نام میزبان تشخیص داده می‌شود و اگر درخواست به نود اشتباه برسد، به‌جای پاسخ اشتباه، نشانی درست اعلام می‌شود.

داده‌ی من برای آموزش مدل هوش مصنوعی استفاده می‌شود؟

خیر. سرور MCP داده را به مدل نمی‌فرستد؛ کلاینت شماست که تصمیم می‌گیرد چه چیزی را به مدل بدهد. سیاست نگهداری و آموزش داده، سیاست همان سرویس هوش مصنوعی است که خودتان انتخاب کرده‌اید — ابرک در این مسیر فقط پاسخ‌دهنده‌ی ابزار است و هر فراخوانی را برای شما لاگ می‌کند.

اربط مساعد الذكاء الاصطناعي الخاص بك بنظام ERP

عرض التطبيق وشراؤه