کدکس در نسخه‌ی 0.154.0 که ۹ سپتامبر ۲۰۲۶ منتشر شد، دستور codex mcp-server و باینری مستقل codex-mcp-server را حذف کرد. هر یکپارچگی که کدکس را به‌عنوان یک ابزار MCP در اختیار ایجنت دیگری می‌گذاشت، از آن روز دیگر اجرا نمی‌شود. راه‌حل فوری پین کردن نسخه است و راه درست، مهاجرت به codex app-server که پروتکل دیگری با نام دیگری است. این نوشته هر دو مسیر را با دستور و عدد نشان می‌دهد.

چه چیزی حذف شد و از کِی

راهنمای رسمی مهاجرت یک جمله‌ی صریح دارد: دستور codex mcp-server و باینری codex-mcp-server پس از منسوخ‌شدن در ۲۴ اوت ۲۰۲۶ حذف شده‌اند، و هر یکپارچگی که یکی از این دو را اجرا می‌کند باید پیش از ارتقای کدکس مهاجرت شود [1][2]. در یادداشت انتشار 0.154.0 همین حذف زیر بخش Chores آمده است، نه زیر New Features [6].

کار را PR شماره‌ی ۴۲۹۹۳ انجام داد [14]. مسیر از یک هشدار شروع شد: PR شماره‌ی ۳۹۶۵۷ که ۲۰ اوت ۲۰۲۶ باز شد، هنگام اجرای دستور یک هشدار روی stderr چاپ می‌کرد و سپس سرور را بالا می‌آورد [13]. یعنی نسخه‌هایی مثل 0.153.x هنوز کار می‌کردند و فقط اخطار می‌دادند.

نسخهتاریخ انتشاروضعیت codex mcp-server
0.153.4۴ سپتامبر ۲۰۲۶آخرین نسخه‌ی پایدار پیش از حذف
0.154.0۹ سپتامبر ۲۰۲۶دستور و باینری حذف شدند
0.155.0۱۷ سپتامبر ۲۰۲۶احراز هویت لمسی برای درخواست‌های MCP روی مک [9]
0.156.0۲۲ سپتامبر ۲۰۲۶چک‌اوت جدا پیش‌فرض شد و چند شکاف جداسازی بسته شد
0.157.1۲۶ سپتامبر ۲۰۲۶آخرین نسخه‌ی پایدار

فاصله‌ی بین منسوخ‌شدن و حذف ۱۶ روز بود، که از تفریق ۹ سپتامبر از ۲۴ اوت به دست می‌آید. از آخرین نسخه‌ی سالم تا حذف هم ۵ روز فاصله بود. این دو عدد یعنی پنجره‌ی اطلاع‌رسانی کوتاه بوده است.

نکته‌ی دوم درباره‌ی خود سند است. یادداشت انتشار 0.157.1 تنها یک سطر دارد: تیم انتشار نتوانسته فهرست تغییرات را بسازد چون نمایه‌ی PR خالی بوده و مقایسه‌ی تگ در گیت‌هاب خطای ۴۰۴ داده [7]. یعنی هر نسخه‌ای که فقط یک سطر خلاصه دارد، لزوماً نسخه‌ی بی‌تغییر نیست.

چرا جایگزین یک‌به‌یک نیست

راهنمای مهاجرت هشدار می‌دهد که app-server یک سرور MCP یا جایگزین آماده‌ی کلاینت MCP نیست: باید یکپارچگی خود را به پروتکل app-server تغییر دهید، نه اینکه فراخوانی ابزار MCP را نگه دارید [2]. بیشتر اشتباه‌ها همین‌جا رخ می‌دهد، چون هر دو یک سرور محلی روی یک استاندارد JSON به نظر می‌رسند.

پروتکل app-server از خانواده‌ی JSON-RPC 2.0 است و ارتباط دوطرفه دارد، با این تفاوت که سرآیند "jsonrpc":"2.0" روی سیم حذف شده است [3][5]. چهار انتقال پشتیبانی می‌شود: stdio به‌صورت پیش‌فرض با JSON خط‌به‌خط، سوکت یونیکس برای کلاینت‌های صفحه‌ی کنترل محلی، websocket که آزمایشی و پشتیبانی‌نشده است، و حالت off [5].

جنبهسرور MCP قدیمیapp-server
پروتکلMCP روی JSON-RPCJSON-RPC 2.0 با سرآیند حذف‌شده
نقطه‌ی شروعcodex mcp-servercodex app-server
سطح فراخوانیدو ابزار به نام codex و codex-replyروش‌هایی مثل thread/start و turn/start
دست‌کاری نوبت جارینداشتturn/steer دارد
احراز هویتنداشتنقطه‌های پایانی جداگانه دارد
پایداریحذف‌شدهآزمایشی و بدون پشتیبانی بار عملیاتی

پیش از حذف، سرور قدیمی دقیقاً دو ابزار به کلاینت MCP نشان می‌داد. ابزار codex یک نشست تازه می‌ساخت و این پارامترها را می‌گرفت: prompt، approval-policy، sandbox، cwd، model، base-instructions، config، developer-instructions و compact-prompt. ابزار codex-reply با threadId همان نشست را ادامه می‌داد [11].

تله اینجاست که صفحه‌ی مرجع همان دو ابزار هنوز در مرجع قدیمی زنده است و روش تست با npx @modelcontextprotocol/inspector codex mcp-server هم همان‌جا آمده [11]. راهنمای مهاجرت می‌گوید همین مرجع و نمونه‌های Agents SDK دیگر پشتیبانی نمی‌شوند [2]. اگر مستندات یکپارچگی شما از آن صفحه آمده، شما کدی ساخته‌اید که از سپتامبر کار نمی‌کند.

سه مسیر پیش روی شما

مسیر اول، مهاجرت واقعی به app-server است و تنها مسیری که به رفتن جلو می‌انجامد. در این مسیر به‌جای فراخوانی ابزار، یک درخواست initialize می‌فرستید، بعد thread/start و سپس turn/start، و رویدادها را از جریان JSON می‌خوانید [5]. نقطه‌ی شروع هم codex app-server است.

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

مسیر دوم، پین کردن نسخه است و برای وقتی که مهاجرت در این دو هفته شدنی نیست. نسخه‌ی 0.153.4 که ۴ سپتامبر ۲۰۲۶ منتشر شد، آخرین نسخه‌ی پایداری است که دستور هنوز در آن کار می‌کند [8].

# پین موقت تا زمان رسیدن به app-server
npm install -g @openai/codex@0.153.4

# نسخه‌ای که واقعا روی ماشین اجرا می‌شود
codex --version

این پین یک هزینه‌ی واقعی دارد. نسخه‌ی 0.153.4 مهرماه است و هیچ‌یک از اصلاحات امنیتی نسخه‌های بعدی را ندارد؛ از جمله بستن شکاف‌های جداسازی sandbox در 0.156.0 که روی اتصال ورودی ویندوز و سوکت‌های ممتاز لینوکس و مک اثر داشت [10]. آن را راه‌حل موقت حساب کنید، نه وضعیت پایدار.

مسیر سوم، پلاگین رسمی کدکس برای کلاد کد است، اگر شما خودتان کلاینت نیستید و از داخل کلاد کد به کدکس می‌رسید. ریپازیتوری openai/codex-plugin-cc در لحظه‌ی خواندن ۳۳٬۵۹۹ ستاره و ۲٬۳۳۶ فورک دارد و با مجوز Apache-2.0 منتشر شده است [12]. نصبش سه دستور دارد.

/plugin marketplace add openai/codex-plugin-cc
/plugin install codex@openai-codex
/reload-plugins

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

قاعده‌ی عملی: تا وقتی مهاجرت تمام نشده، نسخه را پین کنید و هر یکپارچگی را روی یک پروتکل نگه دارید. نگه‌داشتن دو پروتکل هم‌زمان در یک کلاینت، همان چیزی است که مهاجرت را ماه‌ها طول می‌کشد.

اگر مهاجرت تمام نشده، این پنج کار را بکنید

اول: هر جایی که فرمان codex mcp-server یا باینری codex-mcp-server را صدا می‌زند پیدا کنید؛ فایل‌های تنظیم سرویس، اسکریپت راه‌اندازی و پیکربندی استقرار را هم شامل می‌شود. هشدار پیش از حذف روی stderr چاپ می‌شد و سرور باز هم بالا می‌آمد [13]، پس یک لاگ خالی نشانه‌ی سالم بودن نیست.

دوم: مرجع مستنداتی را که یکپارچگی شما از آن نوشته شده دوباره بخوانید. همان صفحه‌ای که ابزارهای codex و codex-reply را نشان می‌دهد، خودش اعلام کرده که دیگر پشتیبانی نمی‌شود [2].

سوم: شناسه‌ی نشست را جدی بگیرید. در سرور قدیمی، پاسخ هر فراخوانی این شناسه را برمی‌گرداند و ادامه‌ی گفتگو به آن گره خورده بود [11]. در app-server همین نقش را thread/start و thread/resume بازی می‌کنند [5]. یکپارچگی‌ای که این شناسه را نگه نمی‌داشت، هر بار نشست تازه می‌ساخت.

چهارم: اگر روی app-server می‌نشینید، منطق تلاش‌مجدد را اجباری حساب کنید. راهنمای فنی می‌گوید وقتی صف ورودی سرور پر شود، درخواست‌های تازه با خطای JSON-RPC به شماره‌ی -32001 و پیام Server overloaded; retry later. رد می‌شوند و کلاینت باید با عقب‌نشینی نمایی دوباره تلاش کند [5].

پنجم: نام کلاینت‌تان را در clientInfo.name بگذارید. مستندات می‌گویند همین نام برای شناسایی شما در سکوی لاگ انطباقی OpenAI به کار می‌رود، و یکپارچگی سازمانی باید در فهرست کلاینت‌های شناخته‌شده ثبت شود [3].

کدام بخش MCP هنوز زنده است

حذف فقط میزبانی کدکس به‌عنوان سرور MCP را حذف کرد. کدکس همچنان مصرف‌کننده‌ی سرورهای MCP بیرونی است و مدیریتشان با codex mcp انجام می‌شود [2][4]. پیکربندی هر سرور هم یک جدول با کلید mcp_servers در فایل config.toml است [4].

در سمت app-server هم ابزارهای MCP از راه دور قابل دسترسی‌اند: mcpServer/tool/call برای فراخوانی، mcpServerStatus/list برای وضعیت اتصال، mcpServer/resource/read برای منابع و mcpServer/oauth/login برای ورود [5]. پس مهاجرت به app-server به معنی ترک MCP نیست؛ به معنی عوض کردن سیمی است که روی آن حرف می‌زنید.

یک عدد پیش‌فرض که روی شروع نشست اثر می‌گذارد: mcp_optional_startup_grace_ms به‌طور پیش‌فرض ۱۰۰۰ میلی‌ثانیه است، یعنی کدکس برای ساخت فهرست ابزارهای اولیه این‌قدر روی سرورهای اختیاری صبر می‌کند [4]. اگر آن را صفر بگذارید، به‌جای آن زمان راه‌اندازی هر سرور سنجیده می‌شود. برای سروری که سرد بالا می‌آید، همین یک تنظیم تفاوت ابزار حاضر و ابزار غایب است.

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

لحظه‌ی خواندن داده: ۲۶ سپتامبر ۲۰۲۶. همه‌ی نسخه‌ها و تاریخ‌ها از صفحه‌ی انتشار ریلیزهای ریپازیتوری رسمی و راهنمای مهاجرت خوانده شده‌اند.

منابع

  1. ChatGPT و Codex changelog
  2. Codex MCP server removal - راهنمای مهاجرت
  3. Codex App Server
  4. Model Context Protocol - اتصال کدکس به سرورهای بیرونی
  5. app-server README در ریپازیتوری openai/codex
  6. انتشار Codex CLI 0.154.0
  7. انتشار Codex CLI 0.157.1
  8. انتشار Codex CLI 0.153.4
  9. انتشار Codex CLI 0.155.0
  10. انتشار Codex CLI 0.156.0
  11. Running Codex as an MCP server - مرجع منسوخ‌شده
  12. openai/codex-plugin-cc
  13. PR 39657 - هشدار هنگام اجرای سرور منسوخ
  14. PR 42993 - حذف دستور codex mcp-server