العودة إلى المدونة
BananaBanana Teamtutorialmcpvideo

إعداد Codex MCP: صور وفيديو من ملف config.toml واحد

قم بتوصيل واجهة Codex CLI وامتداد بيئة التطوير وتطبيق ChatGPT لسطح المكتب بخادم وسائط MCP واحد: ملف config.toml مع bearer_token_env_var، وخمسة تفاصيل غريبة، وفيديو ترويجي من Veo مقابل $0.70.

إعداد Codex MCP: صور وفيديو من ملف config.toml واحد

خادم MCP لـ Codex هو عبارة عن صندوق أدوات خارجي يمكن لمساعد البرمجة الذكي من OpenAI استدعاؤه من واجهاته الثلاث في وقت واحد: واجهة سطر الأوامر (CLI)، وامتداد بيئة التطوير (IDE)، وعلامة تبويب Codex في تطبيق ChatGPT لسطح المكتب. بكتلة TOML واحدة، يكتسب هذا المساعد، الذي يقتصر عمله عادةً على تعديل الأكواد، قدرات إضافية لا تأتي مدمجة في نماذجه، بما في ذلك توليد الصور والفيديو. يقوم Codex بإعادة هيكلة الكود وتشغيل الاختبارات طوال اليوم، ولكن لا يمكن لأي نموذج يقف خلفه تزويدك بملف MP4 مباشرةً. لكن بمجرد إضافة خادم توليد، ستتحول تعليمات مثل "اصنع مقطعًا ترويجيًا لملاحظات الإصدار" إلى أمر بسيط في سطر الأوامر ينتهي بملف حقيقي في مجلدك.

إذا كنت قد جئت من أجل خطوات الإعداد فقط، فإليك الطريقة كاملة. أنشئ مفتاح API من BananaBanana profile الخاص بك، ثم أضف الكود التالي إلى ~/.codex/config.toml:

[mcp_servers.bananabanana]
url = "https://bananabanana.pro/api/mcp"
bearer_token_env_var = "BB_API_KEY"

قم بتصدير المتغير BB_API_KEY=bb_live_YOUR_KEY في بيئة العمل الخاصة بك وأعد تشغيل Codex. هذا كل شيء: لا توجد حاجة لتشغيل خادم محلي، ولا لإنشاء مشروع على Google Cloud، ولا للاشتراك في أي باقات مدفوعة. تُخصم تكلفة الصور من رصيدك المسبق الدفع وتبدأ من $0.03، بينما تبدأ تكلفة الفيديو من $0.10. تم توليد الفيديو التجريبي المعروض في الأسفل عبر نقطة النهاية (endpoint) هذه تمامًا باستخدام مفتاح نشط أثناء كتابتي لهذا المقال، وتفاصيل فاتورة الوسائط البالغة قيمتها الإجمالية $1.03 موضحة بالتفصيل في النهاية.

لماذا يكمن السر كله في ملف إعدادات واحد؟

تتطلب منك معظم عملاء MCP إعداد كل واجهة بشكل منفصل، لكن Codex لا يفعل ذلك، وهذا هو الجزء الرائع حقًا. تختصر وثائق official Codex MCP docs الأمر في جملة واحدة: "The ChatGPT desktop app, Codex CLI, and IDE extension share this configuration." بمجرد لصق كتلة TOML هذه لمرة واحدة، ستتبعك أدوات التوليد السبع نفسها من جلسة سطر الأوامر إلى VS Code وإلى علامة تبويب Codex في تطبيق سطح المكتب.

رسم توضيحي لنافذة سطر أوامر ومحرر أكواد وتطبيق محادثة متصلة بخيوط بمفتاح واحد على منصة، كاستعارة لملف إعدادات Codex واحد يخدم ثلاثة تطبيقات

في Cursor أو VS Code، تخدم أداة الصور في الغالب المستودع (repo) الذي تفتحه حاليًا. أما مع Codex، فإن سطر الأوامر نفسه يتحول إلى منصة وسائط: يمكنك طلب رندر للفيديو من موجه الأوامر مباشرة دون الحاجة لفتح أي محرر، ومتابعة تقدم العملية لاحقًا من تطبيق سطح المكتب. بالنسبة لشخص يعيش داخل tmux ويعتبر تطبيقات الواجهة الرسومية مجرد ضيف عابر، فإن هذا يمثل الفارق الحقيقي بين "إضافة قمت بإعدادها في مكان ما" و"أمر برمجي أعتمد عليه فعليًا في عملي اليومي".

البديل الآخر، كما هو معتاد، هو تشغيل خادم MCP محلي باستخدام مفتاح Google API الخاص بك، مع ما يتبع ذلك من حصص استخدام وفواتير مرتبطة بحسابك السحابي الشخصي. هذه الطريقة تعمل بلا شك، لكنها تتطلب متابعة مستمرة وتحديثات. في المقابل، فإن نقطة النهاية البعيدة تعمل بالفعل من جانبنا، وعلى نفس خط معالجة BananaBanana web generator, والمؤهل الوحيد الذي تحتاجه هو مفتاح bb_live_ واحد قابل للإلغاء في أي وقت.

كيف تقوم بتوصيل Codex بخادم MCP؟

تمت مراجعة تفاصيل الإعداد الموضحة أدناه ومطابقتها مع وثائق Codex MCP الرسمية الصادرة في 11 يوليو 2026 (قامت OpenAI مؤخرًا بنقل الوثائق من developers.openai.com إلى learn.chatgpt.com، فلا تتفاجأ إذا تم تحويلك تلقائيًا).

أولاً، قم بـ register وافتح ملفك الشخصي ← MCP API Keys. يتم عرض المفتاح مرة واحدة فقط ويتم تخزينه مشفرًا (hashed) من جانبنا، لذا انسخه على الفور. تبدأ الحسابات الجديدة برصيد ترحيبي قدره $0.20، وهو ما يكفي لتوليد ست صور تجريبية على النموذج الأقل تكلفة.

ثانيًا، أضف كتلة TOML المذكورة في بداية هذا المقال إلى الملف ~/.codex/config.toml (قم بإنشاء الملف إذا لم يكن موجودًا بالفعل). يتطلب الجدول [mcp_servers.bananabanana] عنوان url لأي خادم HTTP يدعم البث (Streamable) ومتغير bearer_token_env_var للمصادقة: يقرأ Codex اسم متغير البيئة المحدد عند التشغيل ويرسل قيمته كترويسة Authorization. لا يظهر المفتاح أبدًا داخل الملف، مما يعني إمكانية مشاركة الملف بأمان، حتى في مستودعات الـ dotfiles الخاصة بك. تعرض صفحة MCP server page لدينا هذه الكود البرمجي الصغير إلى جانب جدول التوافق لكل عميل قمنا باختباره وتأكيده:

مقتطف من ملف config.toml الخاص بـ Codex على صفحة وثائق MCP لـ BananaBanana يوضح حقول url و bearer_token_env_var

ثالثًا، قم بتصدير المتغير وأعد التشغيل. في سطر الأوامر، سيقوم أمر codex بسرد أدوات الخادم بمجرد الاتصال؛ اطلب منه "استدعاء list_models على bananabanana" وستحصل على الأسعار الحالية لسبع أدوات مختلفة، بدءًا من list_models وحتى list_generations. سيتعرف امتداد بيئة التطوير وتطبيق ChatGPT لسطح المكتب تلقائيًا على الإعدادات نفسها عند تشغيلهما في المرة القادمة دون أي خطوات إضافية.

تنبيه هام بخصوص تطبيق سطح المكتب على نظام macOS: تطبيقات الواجهة الرسومية التي يتم تشغيلها من الـ Dock لا تقرأ ملف .zshrc الخاص بك، لذا فإن متغيرات البيئة التي تم تصديرها (export) في سطر الأوامر قد لا تكون مرئية لتطبيق ChatGPT. إذا كانت الأدوات تظهر في سطر الأوامر وتفشل المصادقة في تطبيق سطح المكتب، فهذا هو السبب دائمًا تقريبًا. يحل الأمر launchctl setenv BB_API_KEY bb_live_… هذه المشكلة، على الرغم من أنه يبدو كحل مؤقت، لأنه كذلك بالفعل.

هل يمكن لموصلات ChatGPT الخاصة استخدام المفتاح نفسه؟

الإجابة المختصرة: ليس بعد، ومن المفيد توضيح السبب بدقة. يحتوي ChatGPT على نظام موصلات خاص به (الإعدادات ← الموصلات، خلف زر تبديل وضع المطور في الباقات المدفوعة) والذي يضيف خوادم MCP إلى الدردشة العادية بدلاً من Codex. تتم مصادقة هذه الموصلات عبر بروتوكول OAuth. تدعم نقطة النهاية لدينا حاليًا مفاتيح Bearer فقط؛ ويجري التخطيط لدعم بروتوكول OAuth 2.1 قريبًا، وبمجرد إطلاقه، ستصبح دردشة ChatGPT العادية عميلًا مدعومًا أيضًا. حتى ذلك الحين، المعادلة بسيطة للغاية: واجهات Codex (مثل CLI، وامتداد بيئة التطوير، وعلامة تبويب Codex في تطبيق سطح المكتب) تعمل اليوم بنجاح عبر ملف config.toml، بينما لا تعمل الموصلات على جانب الدردشة العادية. يتتبع جدول التوافق compatibility table هذا الأمر لكل عميل مع التواريخ المحددة.

حالة استخدام: مقطع فيديو ترويجي لمنتج دون فتح أي تطبيق خارجي

السيناريو الذي بُني عليه هذا المقال: يوم الإطلاق، يحتاج سجل التغييرات (changelog) الخاص بك إلى مقطع ترويجي قصير، وتفضل عدم مغادرة سطر الأوامر. تطلب من Codex فيديو بأسلوب عرض المنتجات، فيقوم بصياغة وصف (prompt) سينمائي ويستدعي الأداة generate_video. لا تفرض الأداة أي رسوم عند الاستدعاء الأول؛ بل ترجع عرض سعر أولاً، ثم يعيد المساعد الاستدعاء مع قبول المبلغ المحدد تمامًا. إليك السجل الحقيقي لجلستي البرمجية:

→ generate_video {"prompt": "Cinematic product promo shot: matte pearl-white
   wireless earbuds in an open charging case on a slowly rotating dark
   pedestal, dramatic rim lighting in violet and warm amber, soft haze,
   slow dolly-in from a slightly low angle, shallow depth of field,
   premium tech commercial style", "model": "veo-3.1-fast",
   "duration": 8, "resolution": "720p"}
← {"status": "confirmation_required", "quoted_cost_usd": 0.70,
   "message": "This video costs $0.70. Nothing has been charged."}
→ generate_video {..., "confirm_cost": 0.70}
← {"job_id": "cmrgrpxgf0002mk7fvfepg82j", "status": "processing",
   "cost_charged_usd": 0.70, "balance_remaining_usd": 1553.37}
→ get_result {"job_id": "cmrgrpxgf0002mk7fvfepg82j", "wait_seconds": 30}
← {"status": "completed", "files": [{"url": "https://…/api/files/…"}]}

دقيقتان وخمس عشرة ثانية فقط هي المدة الفاصلة بين التأكيد والحصول على ملف جاهز بدقة 720p. إليك هذا المقطع الفعلي، الذي تم توليده بواسطة نموذج Veo 3.1 Fast من المحاولة الأولى ودون أي إعادة توليد:

يتطابق هيكل الوصف (prompt) مع النمط الموضح في دليل كتابة الأوصاف لـ Veo 3.1 prompt guide: الموضوع، والحركة، والإضاءة، وحركة الكاميرا، وسلوك العدسة، والأسلوب الفني. يقوم Codex بعد ذلك بسحب الملف من الرابط الموقّع (صالح لمدة 24 ساعة؛ يؤدي استدعاء get_result جديد إلى إعادة إصداره) وحفظه في المجلد الذي تحدده، ويمكنه أيضًا كتابة وسم HTML للـ <video> مباشرة لصفحة سجل التغييرات الخاصة بك.

تنويه صريح بخصوص المخرجات: تكلفة $0.70 تمنحك النسخة الصامتة من الفيديو. أما توليد مقطع بصوت طبيعي مدمج على الكليب نفسه فيكلف $1.00، بينما تبلغ تكلفة نموذج Omni Flash مع الصوت $0.10 لكل ثانية — أي $0.80 للمقطع بالمدة نفسها. بالنسبة لمقطع قصير يعمل تلقائيًا وبشكل متكرر وصامت على صفحة الهبوط، فإن الخيار الصامت هو ما تريده تمامًا على أي حال؛ أما بالنسبة للمقاطع المخصصة لشبكات التواصل الاجتماعي، فسترغب غالبًا في دفع الثلاثين سنتًا الإضافية للحصول على الصوت.

تعمل الصور بالطريقة نفسها تمامًا باستثناء خطوة التأكيد، نظرًا لأن توليد صورة فردية رخيص بما يكفي لتشغيله مباشرة: يستدعي الأمر generate_image مع الوصف ويرجع رقم معرف المهمة (job id)، بينما يعيد get_result الملف مع معاينة مصغرة ومضمنة يمكن لـ Codex قراءتها وعرضها.

تفاصيل غريبة في Codex يجدر بك معرفتها قبل الاعتماد عليه

جمعنا لك هذه الملاحظات أثناء اختبار الإعداد المذكور أعلاه، ورتبناها تقريبًا حسب أولوية تأثيرها عليك ومواجهتك لها.

رسم توضيحي لروبوت صغير يمسك بعدسة مكبرة ويقرأ لفافة طويلة من نص الإعدادات مع وجود علمي تحذير صغيرين مغروسين بها، كاستعارة للأمور الغريبة في إعدادات Codex

1. لن تقوم واجهة سطر الأوامر بكتابة هذه الإعدادات نيابة عنك. الأمر codex mcp add موجود بالفعل، ولكن وفقًا للوثائق الرسمية، فإنه لا يحتوي على خيار bearer-token لخوادم HTTP؛ يستهدف هذا الأمر خوادم stdio المحلية وعمليات تسجيل الدخول عبر OAuth باستخدام (codex mcp login). بالنسبة لخادم بعيد تتم مصادقته بمفتاح، يتعين عليك تعديل ملف ~/.codex/config.toml يدويًا. يستغرق ذلك ثلاثين ثانية فقط، ولكن إذا كنت تتوقع تجربة سريعة عبر سطر واحد مثل claude mcp add --header، فهنا يختلف Codex.

2. الصيغة المستخدمة هي TOML، والجدول المعني هو mcp_servers. نستخدم طريقة الكتابة snake_case، والأقواس المربعة، وليس JSON. لن يتم تحليل الإعدادات المنسوخة من وثائق Cursor أو Claude (والتي تستخدم mcpServers والأقواس المتعرجة)، وتميل أخطاء TOML في هذا الملف إلى الفشل بصمت بدلاً من إصدار تنبيهات واضحة. إذا لم يظهر الخادم مطلقًا، فقم بتشغيل codex من سطر الأوامر وتحقق من مخرجات بدء التشغيل قبل الشك في أي شيء آخر.

3. تحتوي البيانات الحساسة على حقل واحد صحيح وحقل آخر مغرٍ ولكنه خاطئ. يحافظ الحقل bearer_token_env_var على بقاء المفتاح خارج الملف. في المقابل، يأخذ الخيار البديل http_headers قيمًا ثابتة، مما يعني كتابة مفتاح bb_live_ الفعلي بنص صريح (plaintext) في ملف تحب أدوات مزامنة الـ dotfiles نشره علنًا. هناك أيضًا حقل env_http_headers للترويسات المخصصة من متغيرات البيئة. قاعدتي الأساسية: استخدم bearer_token_env_var دائمًا، وتجنب استخدام http_headers نهائيًا لأي بيانات سرية.

4. المهلة الافتراضية للأداة هي 60 ثانية، وهذا مناسب تمامًا، ولكن فقط بسبب آلية عمل الاستقصاء (polling). يمنح Codex كل استدعاء للأداة مهلة افتراضية قدرها tool_timeout_sec = 60. يستغرق إنتاج الفيديو من دقيقة إلى عشر دقائق، وهو ما يبدو متعارضًا مع المهلة، باستثناء أن الأداة generate_video ترجع معرف مهمة (job id) فورًا، ويقوم أمر get_result باستقصاء طويل (long-poll) لمدة 30 ثانية كحد أقصى لكل استدعاء. تظل كل مكالمة فردية بأمان تحت الحد المسموح به؛ حيث يقوم المساعد بالاستقصاء عدة مرات فحسب. لا تحاول "إصلاح" هذا عن طريق زيادة المهلة إلى 600، فأنت لست بحاجة إلى ذلك، وإذا تعطل الخادم فعليًا، فسيؤدي ذلك إلى تجميد عمل المساعد لعشر دقائق كاملة.

5. يمكن تخصيص سلوك الموافقة لكل خادم، والعمليات المالية تستحق دائمًا اختيار وضع prompt. يقبل الحقل default_tools_approval_mode القيم التالية: auto و prompt و writes و approve وفقًا للوثائق. بالنسبة لخادم تستهلك فيه أدوات متعددة دولارات حقيقية لكل استدعاء للأدوات، فإنني أفضل إبقاء طلب الموافقة نشطًا والموافقة على الاستدعاءات بشكل فردي؛ بينما الأدوات المجانية (مثل list_models و get_account و get_result) هي التي تستحق إدراجها في القائمة البيضاء (allowlist) إذا كان إعدادك يدعم اتخاذ القرارات لكل أداة على حدة. وبغض النظر عن ذلك، يحتوي توليد الفيديو على قفل أمان إضافي من جانبنا: لا يتم تحصيل أي مبالغ تتجاوز عرض السعر الأصلي دون موافقة صريحة عبر تأكيد التكلفة من خلال الحقل confirm_cost.

كم بلغت تكلفة الوسائط التجريبية في هذا المقال؟

أسعار التوليد القياسية، وهي الأرقام نفسها التي تعرضها الأداة list_models للمساعد الذكي، دون تطبيق أي خصومات خاصة بالموظفين:

الأصلالنموذجالسعر
عرض الفيديو الترويجي التجريبي، عبر MCP بمفتاح نشطVeo 3.1 Fast، بدقة 720p، و8 ثوانٍ، صامت$0.70
الغلاف + رسمين توضيحينNano Banana Pro، بدقة 1K$0.33
لقطة شاشة لصفحة الوثائقمتصفح، وليس توليدًا$0.00
الإجمالي$1.03

نجح توليد الفيديو من المحاولة الأولى، وهو أمر لا يجب أن تضمن حدوثه في كل مرة؛ فاللقطات المصممة لعرض المنتجات تكون مرنة وتتسامح مع العيوب البسيطة، بينما تفشل الأمور التي تحتوي على لقطات للأيدي أو النصوص المقروءة في إخفاء عيوبها بسهولة. لذا، يُنصح بتخصيص ميزانية إضافية لإعادة التوليد في مثل هذه الحالات.

إذا كنت تقوم بالفعل بتشغيل هذا الخادم في عميل آخر، فإن كتلة TOML المذكورة أعلاه هي الجزء الجديد الوحيد الذي تحتاجه: نفس المفتاح، ونفس الرصيد، ونفس تاريخ عمليات التوليد في كل مكان. إذا كنت تبدأ من الصفر، فإن دليل Claude Code walkthrough الخاص بنا يغطي أربع حالات استخدام إضافية يمكن نقلها إلى Codex بدقة تامة تقريبًا. بادر بـ Create a key واطلب من Codex بدء عملية الرندر الأولى لك.

الأسئلة الشائعة

هل يدعم Codex خوادم MCP البعيدة بمصادقة Bearer؟

نعم، يدعمها بشكل أصيل ومدمج. الخادم البعيد هو عبارة عن جدول [mcp_servers.<الاسم>] في الملف ~/.codex/config.toml يحتوي على حقل url، ويحدد الحقل bearer_token_env_var اسم متغير البيئة الذي يرسل Codex قيمته كترويسة Authorization. تم التأكد من ذلك ومطابقته مع وثائق Codex MCP الرسمية في 11 يوليو 2026. كما أن بروتوكول OAuth مدعوم أيضًا (وهو وضع المصادقة auth الافتراضي للخوادم التي توفره)، ولكن إعداد المفاتيح الثابتة لا يتطلب أكثر من هذين السطرين فحسب.

هل تتم مشاركة إعدادات MCP بالفعل بين Codex CLI وامتداد بيئة التطوير وتطبيق ChatGPT لسطح المكتب؟

نعم. تنص وثائق Codex بوضوح على أن تطبيق ChatGPT لسطح المكتب، وواجهة سطر الأوامر لـ Codex، وامتداد بيئة التطوير تتشارك جميعها في استخدام الملف الإعدادي config.toml. لكن عمليًا، الشيء الوحيد الذي لا ينتقل تلقائيًا هو متغير البيئة: حيث تظهر متغيرات المصدرة في سطر الأوامر لـ CLI فقط، بينما يحتاج تطبيق سطح المكتب الذي يتم تشغيله من الـ Dock إلى تعيين المتغير على مستوى نظام التشغيل (باستخدام الأمر launchctl setenv على نظام macOS)، وإلا ستفشل عملية المصادقة بالرغم من استخدام الإعدادات نفسها بدقة.

هل يمكنني إضافة الخادم باستخدام الأمر codex mcp add بدلاً من تعديل الملف يدويًا؟

ليس لهذا النوع من الخوادم. لا توفر الوثائق أي خيار أو علم (flag) لـ bearer-token عند استخدام الأمر codex mcp add لخوادم HTTP، لذا فإن استخدام نقطة نهاية بعيدة تتم مصادقتها بمفتاح يتطلب تعديل الملف ~/.codex/config.toml بنفسك. الميزة الإيجابية للتعديل اليدوي هي أن النتيجة تظهر بوضوح وقابلة للتتبع والمزامنة؛ وتتكون الكتلة البرمجية من ثلاثة أسطر فقط، بينما يظل المفتاح في بيئة العمل الخاصة بك بدلاً من كتابته صراحة في الملف.

لماذا لا يعمل مفتاح bb_live_ الخاص بي في إعدادات موصلات ChatGPT؟

لأن هذه مساحة دمج مختلفة تمامًا. تقوم الموصلات في دردشة ChatGPT (على الويب وسطح المكتب، والموجودة خلف زر تبديل وضع المطور) بمصادقة خوادم MCP عبر بروتوكول OAuth وليس عن طريق نسخ ولصق مفاتيح واجهة برمجة التطبيقات (API keys). وبالتالي، لا يمكن لنقاط النهاية التي تدعم مصادقة Bearer فقط إتمام هذه العملية في الوقت الحالي. في المقابل، تقرأ واجهات Codex ملف config.toml وتعمل بكفاءة تامة باستخدام المفتاح. وبمجرد توفر دعمنا لبروتوكول OAuth 2.1، ستصبح موصلات الدردشة مسارًا مدعومًا أيضًا؛ ويتتبع جدول العملاء client table الحالة الراهنة أولاً بأول.

هل يمكن لـ Codex توليد الفيديو، وكم تبلغ تكلفة ذلك؟

نعم، ولكن مع خطوة تأكيد التكلفة الإلزامية. يرجع الأمر generate_video دائمًا عرض سعر بالدولار الأمريكي أولاً دون خصم أي مبالغ؛ ومن ثم يعيد المساعد تكرار الاستدعاء مع تمرير قيمة confirm_cost المطابقة لعرض السعر لبدء الرندر الفعلي. تبدأ الأسعار من $0.10 لإنتاج مقطع مدته 4 ثوانٍ صامت وبدقة 720p عبر نموذج Veo 3.1 Lite، وتصل إلى $0.70 لإنتاج المقطع التجريبي المعروض في هذا المقال والمولد عبر نموذج Veo 3.1 Fast لمدة 8 ثوانٍ، وتصل في أقصى حدودها إلى $4.40 لتوليد رندر عالي الجودة بدقة 4K وصوت مدمج عبر نموذج Veo 3.1 الكامل؛ بينما تبلغ تكلفة نموذج Omni Flash مع الصوت $0.10 لكل ثانية ($0.30–$1.00 للمقطع). تُسترد مبالغ عمليات التوليد الفاشلة تلقائيًا.

tutorialmcpvideo