الإضافات مقابل MCP مقابل المهارات في Codex: أيّها تحتاج؟
يوفّر Codex ثلاث طرق لتوسيع الوكيل: المهارات التي تحمل إجراءاتك، وخوادم MCP التي تصل إلى الأنظمة الحية، والإضافات التي تجمع الاثنين لفريق كامل. يوضّح هذا المقال شكل كل واحدة منها على القرص، وتكلفتها من حيث السياق، وكيفية الاختيار بينها.
افتح متصفح الإضافات في Codex وسترى المهارات وخوادم MCP والإضافات مدرجة جنبًا إلى جنب، وكأنها ثلاث نسخ من الشيء نفسه. لكنها ليست كذلك. والخلط بينها هو ما يدفع الناس إلى كتابة ملف تعليمات من 400 سطر حين كانوا يحتاجون إلى موصّل من عشرة أسطر، أو إلى ربط خادم حين كانت قائمة مراجعة من صفحة واحدة ستكفي.
إليك الخلاصة السريعة قبل التفاصيل. المهارة تعلّم Codex كيف ينجز مهمة. خادم MCP يمنح Codex وصولًا حيًّا إلى أداة أو مصدر بيانات. الإضافة هي الحاوية التي تضم المهارات والخوادم واتصالات التطبيقات معًا، حتى يتمكن شخص آخر من تثبيتها بخطوة واحدة. يوضّح بقية المقال شكل كل واحدة على القرص، وتكلفتها من حيث السياق، ومواضع تعطّلها، وكيفية اختيار الأنسب لعملك.
الجواب المختصر
ثلاثة أشياء على طاولة عمل واحدة تجعل الفرق سهل التذكّر. المفتاح أداة تمدّ يدك إليها. الدفتر يخبرك كيف تنفّذ المهمة. الصندوق حزمة جهّزها أحدهم ليسلّمها إلى زميل.
جملة واحدة لكل منها
المهارة: مجلد يحتوي على ملف SKILL.md يخبر Codex متى وكيف يشغّل سير عمل قابلًا للتكرار.
خادم MCP: برنامج قيد التشغيل يعرض أدوات وبيانات على Codex عبر Model Context Protocol.
الإضافة: حزمة قابلة للتثبيت يمكن أن تحتوي على مهارات وخوادم MCP واتصالات تطبيقات و hooks.
لا تحلّ أي واحدة منها محل الأخرى. الإضافة ليست نوعًا رابعًا من القدرات. إنها حاوية للنوعين الأولين، مع اتصالات التطبيقات، ومعها رقم إصدار.
تشبيه المطبخ
المهارة بطاقة وصفة: خطوات مرتبة، وكميات، ووصف لما يعنيه "الانتهاء". خادم MCP جهاز مثبّت في الجدار: يقوم بأشياء لا يستطيع الطاهي فعلها يدويًا، مثل الخلط أو التبريد. الإضافة وجبة جاهزة: البطاقة والمكوّنات وملاحظة عن الجهاز الذي تحتاجه، كلها في علبة واحدة.
💡 قاعدة عامة: إذا كانت المشكلة "Codex لا يعرف إجراءاتنا"، فاكتب مهارة. وإذا كانت "Codex لا يستطيع الوصول إلى ذلك النظام"، فأضف خادم MCP. وإذا كانت "يسألني زملائي باستمرار كيف ضبطتُ هذا"، فابنِ إضافة.
ماذا يفعل MCP فعلًا
بروتوكول Model Context Protocol معيار مفتوح، قدّمته Anthropic في أواخر 2024، يتيح لعميل الذكاء الاصطناعي التخاطب مع أدوات خارجية عبر واجهة مشتركة واحدة. Codex يؤدي دور العميل. أما الخادم فهو ما توجّهه إليه: موصّل GitHub، أو جسر قاعدة بيانات، أو بحث في التوثيق، أو مولّد صور.
وصول حي، لا تعليمات
يجيب خادم MCP عن سؤال واحد: ماذا يمكنك أن تفعل الآن، وبأي بيانات؟ يسرد الخادم الأدوات بأسمائها وأوصافها ومخططات مدخلاتها. وحين يقرر Codex أن أداة تناسب المهمة، يستدعيها ويقرأ النتيجة. لا يوجد في الخادم ما يخبر بكيفية استخدام فريقك لها. خادم قاعدة البيانات سينفّذ أي استعلام تسمح به، لكنه لن يخبر Codex بأن أحدًا لا يلمس جداول الفوترة بعد ظهر يوم الجمعة.
هذه الفجوة هي سبب تكامل الخوادم والمهارات بهذا الشكل. الخادم يوفّر الوصول، والمهارة توفّر الحكم.
شكل الإعدادات
يخزّن Codex إعدادات MCP في ~/.codex/config.toml، ويمكن وضع إعدادات خاصة بالمشروع في .codex/config.toml. الخادم المحلي الذي يشغّله Codex بنفسه (STDIO) يبدو هكذا:
يمكنك أيضًا تشغيل codex mcp add <name> -- <command> لكتابة الإدخال نيابةً عنك، وcodex mcp list لعرض ما هو مضبوط، وcodex mcp login <server-name> لتشغيل OAuth للخوادم التي تحتاجها.
بعض الإعدادات تستحق الانتباه. startup_timeout_sec القيمة الافتراضية له 10 ثوانٍ، وقد تكون ضيقة لتحميل npx بطيء في أول مرة. tool_timeout_sec القيمة الافتراضية له 60 ثانية، وهي ستقطع المهام الطويلة مثل تصيير الفيديو. ويتيح لك enabled_tools وdisabled_tools تقليص الخادم إلى الاستدعاءات التي تريد فعلًا أن يراها الوكيل.
تكاليف MCP حقيقية. كل خادم متصل يضيف تعريفات أدوات يجب أن يحملها النموذج، وعملية أو قفزة شبكية قد تفشل، وحدّ ثقة جديدًا. والخادم القادر على الكتابة في مستودعك قادر أيضًا على كتابة ما لم تقصده.
ما المهارة فعلًا
مجلد يحتوي على SKILL.md
المهارة مجلد. بداخله ملف SKILL.md يبدأ بترويسة YAML قصيرة، محصورة بين سطرين من الفواصل في أعلى الملف. تحتوي الترويسة على name وdescription:
name: release-notes
description: Use when the user asks for release notes or a changelog built from merged pull requests. Do not use for commit message drafts.
تحت الترويسة، تكون التعليمات نصًا بصيغة markdown عاديًا:
1. List the pull requests merged since the last tag.
2. Group them under Added, Changed and Fixed.
3. Write one plain sentence per item.
4. Save the result to docs/releases/<version>.md.
يمكن أن يحتوي المجلد أيضًا على سكربتات ومستندات مرجعية وقوالب وأصول تشير إليها التعليمات. يبحث Codex عن المهارات في .agents/skills داخل المستودع (مجلد العمل ومجلداته الأم وجذر المستودع)، وفي $HOME/.agents/skills للمهارات الشخصية، وفي /etc/codex/skills للمهارات المشتركة على مستوى الجهاز، وفي المجموعة المدمجة التي تأتي مع Codex.
لماذا تكلّف المهارات سياقًا قليلًا
تستخدم المهارات الكشف التدريجي. في بداية الجلسة، لا يرى Codex سوى قائمة بأسماء المهارات وأوصافها، وهذه القائمة محدودة بنحو 2% من نافذة السياق (أو 8,000 حرف حين يكون حجم النافذة غير معروف). ولا يُحمَّل الملف الكامل SKILL.md إلا بعد اختيار المهارة. تعمل الفكرة كفهرس البطاقات: تقرأ البطاقات حتى تجد الدرج الصحيح، ثم تسحب الملف كاملًا.
والنتيجة عملية. يمكنك إبقاء عشرات المهارات مثبّتة دون أن تدفع ثمن كلها في كل طلب. كما أن سطر description هو ما يقوم بالعمل الثقيل. الوصف الغامض مثل "يساعد في التوثيق" لن يُفعَّل أبدًا. أما الوصف الدقيق الذي يحدد متى تُستخدم المهارة ومتى تُترك فيُفعَّل بثبات.
التشغيل الصريح والضمني
هناك طريقتان لتشغيل المهارة. صريح: اكتب $release-notes في Codex CLI أو في امتداد IDE (ChatGPT يستخدم @release-notes). ضمني: يختار Codex المهارة بنفسه حين يطابق طلبك وصفها. ملف agents/openai.yaml اختياري يعدّل طريقة ظهور المهارة في الواجهة، وسياسة استدعائها، والأدوات التي تعتمد عليها.
💡 إذا لم تُفعَّل المهارة بنفسها أبدًا، فأعد كتابة الوصف قبل إعادة كتابة التعليمات. الوصف هو المحفّز.
ما تجمعه الإضافة
وصل دعم الإضافات إلى Codex في مارس 2026، وضمّت مجموعة الإطلاق التي تزيد على 20 إضافة كلًا من Box وFigma وLinear وNotion وSentry وSlack وGmail وHugging Face. سبب وجود الإضافات هو التوزيع. يمكن نسخ المهارة إلى مجلد، ويمكن لصق الخادم في ملف إعدادات، لكن تسليم الاثنين إلى عشرة زملاء بإصدارات متطابقة أمر مرهق وسهل الخطأ.
plugin.json في الجذر هو ملف البيان (manifest)، ويبقى .codex-plugin/plugin.json مدعومًا كخيار احتياطي. يحتوي على name بصيغة kebab case، وversion، وdescription، وبيانات المؤلف. تُوضع المهارات في skills/<skill-name>/SKILL.md ويُلتقط منها تلقائيًا دون الحاجة إلى تصريح. وتُوضع خوادم MCP في mcp.json تحت mcpServers، مع "type": "streamable-http" للنقاط البعيدة. تشغّل hooks أوامر عند نقاط محددة من دورة الحياة.
للاختبار محليًا، أضف إدخالًا يشير فيه source.path إلى مجلدك في ملف marketplace موجود في ~/.agents/plugins/marketplace.json أو $REPO_ROOT/.agents/plugins/marketplace.json، ثم ثبّته من دليل الإضافات. ويمكن لمساعد @plugin-creator أن يُنشئ المجلد وإدخال marketplace نيابةً عنك.
تثبيت الإضافات والإشارة إليها
في Codex CLI، شغّل /plugins لفتح متصفح الإضافات والتثبيت من الأسواق التي أعددتها. وفي تطبيق ChatGPT للسطح المكتبي أو على الويب، افتح تبويب Plugins وابحث واضغط زر الإضافة (+) واربط أي خدمة خارجية عند الطلب. بعد ذلك يمكنك أن تسأل بلغة عادية ("لخّص رسائل Gmail غير المقروءة من اليوم") أو اكتب @ متبوعًا باسم الإضافة لاستدعائها صراحةً.
الإضافة تضيف أيضًا بيانًا (manifest)، ورقم إصدار يجب صيانته، وإدخالًا في marketplace. إذا كنت الشخص الوحيد الذي يستخدم سير العمل، فإن مهارة في $HOME/.agents/skills وكتلة واحدة في config.toml تؤديان المهمة نفسها بتعقيد أقل.
💡 توثيق Codex يتغيّر بسرعة. أسماء الملفات والأوامر أعلاه تتبع صفحات OpenAI الخاصة بالإضافات وMCP والمهارات حتى أكتوبر 2026. راجعها قبل البناء.
مقارنة جنبًا إلى جنب
المهارة
خادم MCP
الإضافة
ما هي
مجلد يحتوي على SKILL.md
أداة أو خدمة بيانات قيد التشغيل
حزمة قابلة للتثبيت
ما تمنحه لبرنامج Codex
إجراء
وصول حي وإجراءات
الاثنان، مع اتصالات التطبيقات
مكانها
.agents/skills
config.toml
plugin.json وmcp.json
ما تحمّله
الاسم والوصف أولًا، والمتن عند الطلب
تعريفات الأدوات عند الاتصال
كل ما تحتويه
هل تحتاج إلى كود
لا
نعم، أو خادم مستضاف
فقط إذا كانت تحتوي على خادم
الأنسب لـ
عملية فريق قابلة للتكرار
الأنظمة التي لا يستطيع Codex الوصول إليها
مشاركة إعداد كامل
الخطر الرئيسي
وصف غامض لا يُفعَّل أبدًا
صلاحيات واسعة أكثر من اللازم
انحراف الإصدارات، وخوادم مضمّنة مخفية
مقارنة تكلفة السياق
المهارات هي الأرخص بين الثلاثة، لأن وصفًا قصيرًا فقط يبقى في السياق حتى تُحتاج المهارة. أما خادم MCP فأثقل: إذ تُحمَّل قائمة أدواته إلى الجلسة سواء استخدمتها المهمة أم لا، لذلك قد تطغى عشرة خوادم ثرثارة على العمل الفعلي. والإضافة تتحمّل تكلفة كل ما بداخلها.
عادة واحدة توفّر كثيرًا من التوكنات. قبل أن تضيف خادمًا، اسأل نفسك هل تستطيع مهارة بسكربت قصير أن تؤدي الشيء نفسه. السكربتات داخل المهارة تعمل فقط حين تعمل المهارة، أما الخادم فيبقى متصلًا طوال الوقت.
مقارنة الأمان
المهارة نص إضافةً إلى سكربتات اختيارية، لذلك يكمن خطرها في الأوامر التي تطلب التعليمات من Codex تشغيلها. الخادم عملية حية لها بيانات اعتمادها الخاصة، ما يجعل الصلاحيات الشاغل الرئيسي. قلّصها باستخدام enabled_tools وdisabled_tools، واستخدم default_tools_approval_mode لتحديد ما يمكن أن يفعله Codex دون سؤال.
يمكن أن تحتوي الإضافة على خوادم ومهارات و hooks معًا، لذلك افتح plugin.json وmcp.json ومجلد hooks قبل تثبيت إضافة من شخص غريب. واحفظ الرموز المميزة في متغيرات البيئة كما يتوقع bearer_token_env_var، ولا تضعها أبدًا في ملف تُرفعه إلى المستودع.
أيّها تحتاج؟
خمسة سيناريوهات سريعة
"كل إصدار يحتاج إلى التنسيق نفسه لسجل التغييرات." اكتب مهارة. لا يوجد نظام خارجي هنا، بل إجراء فقط.
"على Codex أن يقرأ التذاكر من نظام التتبع لدينا." أضف خادم MCP. ليس لدى Codex طريقة أخرى للوصول إلى تلك البيانات.
"على Codex أن يقرأ التذاكر ويتّبع قواعد الفرز لدينا." استخدم الاثنين: الخادم للوصول، والمهارة للقواعد.
"يحتاج عشرة زملاء إلى الإعداد نفسه بإصدارات متطابقة." ابنِ إضافة تضم المهارة والخادم.
"أريد تعديلًا واحدًا لمهمة اليوم." لا تستخدم أيًّا منهما. سطر في الأمر النصي أو في ملف AGENTS.md يكفي.
حين تكون غير متأكد، ابدأ بالخيار الأصغر وارتقِ منه. ابدأ بأمر نصي. إذا كررته ثلاث مرات، فحوّله إلى مهارة. إذا كانت المهارة تحتاج إلى نظام لا يستطيع Codex الوصول إليه، فأضف خادمًا. وإذا احتاج الآخرون إلى المهارة والخادم نفسيهما، فغلّفهما في إضافة.
ثلاثة أخطاء شائعة
وضع الإجراءات داخل الخادم. أوصاف الأدوات مخصصة لشرح ما تفعله الأداة، لا لشرح طريقة عمل فريقك. نصوص السياسات الطويلة داخل الخادم تثقل كل جلسة. انقلها إلى مهارة.
إعادة بناء موصّل بسكربتات shell. إذا كان هناك خادم MCP مُصان للنظام الذي تريده، فإن مهارة مليئة بأوامر curl ستكون أبطأ في الكتابة وأصعب في الحفاظ على عملها.
التغليف المبكر. الإضافة ذات المؤلف الواحد والمستخدم الواحد عبء زائد. انتظر حتى يطلب شخص ثانٍ إعدادك.
مثال عملي بالصور
تخيّل فريق تسويق صغيرًا يحتاج إلى صور متسقة لمدونته. تنقسم الأجزاء الثلاثة بوضوح. المهارة، ولنسمّها brand-photos، تحتوي على القواعد: نسبة 16:9 لصور المقالات، والإضاءة الطبيعية، ولا نص داخل الصورة، ونمط لأسماء الملفات، ومن يعتمد المجموعة النهائية. ويقوم خادم MCP بالتوليد الفعلي. وتسلّم الإضافة الاثنين إلى كل زميل حتى لا يعدّل أحد ملف إعدادات يدويًا.
المهارة والموصّل
يقدّم PicassoIA واجهة برمجة تطبيقات (API) للمطوّرين على api.picassoia.com/v1، وموصّلًا من نوع MCP لنماذجه الخاصة بالصور والفيديو، بما فيها PicassoIA Image وPicassoIA Image Editor Pro. وهذا يجعل جزء الخادم من هذا النمط متاحًا اليوم. تفاصيل الاتصال موجودة في حسابك، لذا تأكّد من أن عميلك يدعم الموصّل قبل أن تربطه.
ثم تخبر المهارة Codex كيف يستخدم ذلك الوصول بشكل جيد: أي بنية أمر نصي يتبعها، وأي نسبة يطلبها، ومتى يتوقف ويسأل إنسانًا. الخادم لا يحتاج إلى معرفة أي شيء من ذلك.
اكتب المهارة على PicassoIA
ليس عليك كتابة أول SKILL.md يدويًا. يمكن لنموذج برمجي مثل GPT 5.6 Sol أو Claude Sonnet 5 أن ينتج مسودة في ثوانٍ.
الصق أمرًا نصيًا مثل هذا: "اكتب ملف SKILL.md لـ Codex باسم brand-photos. أضف ترويسة فيها name وdescription. يجب أن يذكر الوصف متى تُستخدم المهارة ومتى لا تُستخدم. الخطوات: أكّد الموضوع، واكتب أمرًا نصيًا واقعيًا كالصور الفوتوغرافية بنسبة 16:9، وولّد ثلاثة خيارات، واطلب الموافقة قبل الحفظ."
اجعل الوصف من جملة أو جملتين حرفيتين. فهو المحفّز، والصياغة الغامضة تعني أن المهارة لن تُفعَّل أبدًا.
احذف أي خطوة لا تطابق مسار عملك الحقيقي، ثم احفظ الملف باسم .agents/skills/brand-photos/SKILL.md.
اختبرها بـ $brand-photos وطلب حقيقي. إذا لم يلتقطها Codex بنفسه، فشدّد الوصف وأعد المحاولة.
💡 اعتبر مخرجات النموذج مسودة أولى. المهارة لا تكون جيدة إلا بقدر الفحوص التي تضيفها بعد أن تراها تعمل على مهمة حقيقية.
جرّبه على PicassoIA
تصبح المهارات والخوادم والإضافات أسهل في الحكم عليها حين تراها تنتج شيئًا. افتح Picasso IA وأعد إنشاء الصور في هذا المقال: مكتب مطوّر من خشب البلوط في الساعة الذهبية، وأداة لوحة قماشية ملفوفة بجوار كومة من بطاقات الفهرسة، وصندوق كرافت معبّأ للشحن. ابدأ بـ PicassoIA Image، وغيّر تفصيلة واحدة في كل تشغيل، مثل العدسة أو اتجاه الضوء أو ملمس السطح، وشاهد كيف تتغير الصورة.
ثم اسأل: ماذا احتاجت التجربة الثانية وما لم تحتجه الأولى؟ هل كانت قاعدة تكررها باستمرار؟ هذه مهارة تنتظر أن تُكتب. هل كان نظامًا كان عليك فتحه يدويًا؟ هذا خادم. هل كان إعدادًا تريد تقديمه لصديق؟ هذه إضافة. جرّب بعض الأوامر النصية على Picasso IA اليوم، ودع سير عملك يخبرك بما تحتاجه.