codex mcp-server非推奨後の移行先|App Server・SDK・Claude Code pluginの選び方
codex mcp-server commandのdeprecated案内を受け、外部client統合をApp Server・SDK・Claude Code pluginから選ぶ実務ガイドです。MCP protocolとcodex mcp設定は別物として、用途・transport・承認・rollbackを整理します。
公開 2026.08.27 / 更新 2026.08.27
公式案内でdeprecatedとなったのはcodex mcp-server commandです。外部rich clientはApp Server、jobs / CIはSDK、Claude Code内の統合はpluginを候補にし、MCP protocolやcodex mcp設定は別のownerとして残します。
- 外部client側の呼び出し方向とowner
- App Server・SDK・Claude Code pluginの選択
- JSON-RPC-like interfaceとMCPの違い
- WebSocket experimental・auth・approval・rollback
- MCP protocol全体の廃止という断定
- WebSocketの本番安定性保証
- credentialの実値や公開listenerの作成
- Codex external MCP設定記事の重複
この記事のポイント
- 公式リリースノートがdeprecatedとしたのはcodex mcp-server commandであり、MCP protocolやcodex mcp設定全体ではない
- 外部clientのrichな対話統合はApp Server、jobs / CIなどの自動処理はSDK、Claude Code内への統合はCodex pluginを候補にする
- App ServerはJSON-RPC 2.0ベースの統合面で、MCP serverと同じプロトコルではない。codex app-server commandとWebSocketのproduction制約を確認する
- transport、state、approval、credential、ログ、rollbackを棚卸しし、秘密情報や本番操作を無確認で移さない
codex mcp-server後の移行先を選ぶ
| 外部rich client | App ServerのJSON-RPC-like interfaceでthread・event・approvalを統合 |
| jobs / CI | SDKで非対話実行、timeout、budget、schema、retry、ログをコード管理 |
| Claude Code統合 | Claude Code pluginのscope、tool、Skills、Hooks、更新を管理 |
| Codexから外部MCPを利用 | 既存のcodex mcp / config.toml記事のowner。App Serverへ一律置換しない |
先に結論:移行先は外部clientの役割で選ぶ
OpenAIの2026-08-24リリースノートは、`codex mcp-server` commandをdeprecatedとし、Codex app serverの利用を案内しています。Claude CodeへCodexを統合する場合はCodex pluginを使う方向も案内されています。ただし、これは一つのMCP設定を別名へ置き換える話ではありません。Codexを外部clientへ組み込んでいた側が、rich client、job / CI、Claude Codeという利用面ごとに移行先を選ぶ記事です。
| 目的 | 第一候補 | 向いている理由 | 最初に確認すること |
|---|---|---|---|
| 外部アプリのrich client / 対話UI | Codex App Server | thread・approval・eventを含む統合面を作る | JSON-RPC-like interface、transport、state、auth、version |
| scheduled jobs / CI / backend worker | SDK | job lifecycle、再試行、ログ、テストをコードで管理する | SDKの対応言語・version、非対話認証、budget、sandbox |
| Claude CodeへCodex機能を追加 | Claude Code plugin | Claude Codeのplugin lifecycle・scope・tool namespaceで配布する | pluginの信頼、scope、MCP追加、権限、更新・削除 |
| Codexから外部MCP serverを利用 | 既存`codex mcp`設定 | MCP server登録・認証の既存ownerに属する | config.toml、host、OAuth、tool allowlist、approval |
App ServerはMCP serverではない
Codex App Server Docsは、rich clientがCodexのthreadやイベント、approvalなどを扱うためのJSON-RPC-likeな統合面として説明しています。MCPはAI clientと外部tool / data serverを接続するprotocolです。どちらもtoolという単語を使いますが、message schema、lifecycle、認証、client側の責任が同じとは限りません。`codex mcp-server`からApp Serverへ移す際に、MCP server用の設定やtool listをそのままApp Serverのclient実装へ貼り付けないでください。
| 観点 | MCP server / `codex mcp` | Codex App Server |
|---|---|---|
| 主な役割 | Codexなどのclientへ外部tool・data sourceを提供 | 外部rich clientからCodexの作業・thread・eventを統合 |
| 今回のowner | Codexへ外部MCPを設定する既存記事 | Codexを外部clientへ組み込んでいた側の移行記事 |
| 設定の入口 | config.toml、`codex mcp add / list / login` | App ServerのJSON-RPC-like interfaceとclient lifecycle |
| protocolの扱い | Model Context Protocol | MCPではないApp Server interface |
| 注意 | tool scope、OAuth、approval、server instructions | state、event、auth、transport、version、client UI |
現行protocolとtransportを先に固定する
現行App Server Docsは、wire上で`jsonrpc` headerを省いたJSON-RPC 2.0 messageを使うと説明しています。既定のstdioはnewline-delimited JSON、WebSocketは1 message / text frame、Unix socketはHTTP Upgradeを使う別transportです。旧MCP requestをそのまま送らず、選んだCodex versionから生成したTypeScript / JSON Schemaとclient実装を揃えます。
| transport | 現行Docsの位置づけ | 移行時の確認 |
|---|---|---|
| stdio | 既定。newline-delimited JSON(JSONL) | process owner、stdin / stdout、終了・再起動、stderrを分ける |
| WebSocket | 1 message / text frame。experimental / unsupported | loopback外は認証とTLSを設定し、未認証listenerを公開しない |
| Unix socket | defaultまたは指定pathでHTTP Upgrade | OS対応、socket path、file権限、process lifecycleを確認する |
| off | local transportを公開しない | remote Code Mode hostとclient listenerを混同しない |
App Serverを選ぶ場合:rich clientの状態を設計する
外部アプリからCodexを操作し、thread表示、進捗、approval、複数ターン、差分確認まで持たせたいならApp Serverを候補にします。移行前に、旧commandが返していた入力・出力・終了状態・stderr・session IDを記録し、App Serverのrequest / notification / eventと対応づけます。Docsに例があるtransportでも、対象version、process lifecycle、認証、切断時の再接続を自分のclientで確認してください。
- 旧commandの入力、出力、exit code、session、approval、ログをfixtureにする
- App Serverのrequest / response / event、thread ID、turn ID、tool approvalを対応表にする
- clientが切断・再接続・二重送信したときのidempotencyと停止条件を決める
- loopback、認証、TLS、process owner、workspace、filesystem、networkの境界を本番前にレビューする
- codex app-server commandとWebSocketのproduction制約を運用文書に残し、代替transportとrollbackを準備する
SDKを選ぶ場合:jobs / CIの証拠をコードに残す
定期job、CI、backend workerのように対話UIより再現可能な実行を重視するなら、App Serverを自前で制御するよりSDKを候補にします。App Server DocsもjobsやCIではSDKを使う方向を示しています。SDK version、非対話認証、timeout、budget、出力schema、retry、artifact、ログの扱いを固定し、CIの成功ステータスだけで外部変更の安全性を証明しないでください。
| CI / jobの項目 | 移行時の確認 | 止める条件 |
|---|---|---|
| 入力 | commit、issue、prompt、許可されたpath、未信頼入力 | 対象範囲・入力ownerが不明 |
| 認証 | 非対話credentialのscope、期限、secret masking | tokenをログ・artifact・promptへ出す |
| 実行 | sandbox、approval、network、timeout、budget | 本番・削除・billingをauto実行 |
| 出力 | schema、diff、test、log、failure、artifact | 完了文だけで成功扱い |
| 再試行 | idempotency、backoff、停止条件、課金上限 | 重複tool callや無限retry |
Claude Code pluginを選ぶ場合:MCP設定と配布面を分ける
Claude CodeへCodexを組み込みたい場合は、release noteが案内するClaude Code pluginを候補にします。PluginはSkills、Hooks、MCP serverなどをまとめて配布できる一方、インストールscope、marketplaceの信頼、更新、削除、pluginが追加するtoolの権限を伴います。Claude Code側でMCPを使う場合も、pluginそのものと、pluginが提供するMCP serverを別々に監査します。
- 誰がpluginをインストールし、user / project / managedのどのscopeへ入れるか決める
- pluginが含むSkills、Hooks、MCP server、外部credential、書き込み権限を一覧にする
- 更新前後のplugin manifest、tool namespace、許可・拒否設定、ログを比較する
- Claude Codeのpermission modeとCodex側のapproval / sandboxを同じ安全境界だと扱わない
- アンインストール、disable、credential revoke、旧integrationへの切り戻しをfixtureで確認する
移行手順:外部client側のownerが先に棚卸しする
- 1. `codex mcp-server`を呼んでいるscript、desktop integration、plugin、CI、serviceを検索し、呼び出し側と設定ownerを記録する
- 2. process transport、stdin / stdout、session、event、exit code、approval、filesystem、network、credentialの境界を表にする
- 3. rich clientはApp Server、jobs / CIはSDK、Claude Code内はpluginという仮説で、既存要件との不足を洗い出す
- 4. read-onlyのfixtureでthread、tool、差分、失敗、切断、再試行を比較し、実装versionと確認日を記録する
- 5. feature flagまたは対象workspaceの限定から切り替え、ログ・diff・test・承認を人間が確認する
- 6. 異常時は外部clientの呼び出しを止め、credentialをrevokeし、未処理sessionを保全してからrollbackする
既存のCodex MCP設定記事との役割分担
既存の「CodexのMCP設定ガイド」は、Codex hostへ外部MCP serverを登録するconfig.toml、CLI、Desktop、IDE、OAuth、tool policyを主に扱います。このページは、外部clientがCodexを呼んでいた`codex mcp-server`側の移行先を扱います。両方を一つの記事へ混ぜず、MCP protocolの設定とApp Server / SDK / pluginの統合を別のownerとしてリンクします。
codex mcp-server移行のFAQ
MCP protocolも廃止されたのですか?
いいえ。今回の公式案内は`codex mcp-server` commandのdeprecatedです。MCP protocolと、CodexをMCP clientとして使う`codex mcp`の設定・管理は別の機能として、現行Docsを確認します。
`codex mcp`をApp Serverへ置き換えればよいですか?
一律には置き換えません。`codex mcp`はCodexへ外部MCP serverを登録する入口で、App Serverは外部clientがCodexを統合するJSON-RPC-likeな面です。呼び出し方向とownerを先に分けます。
WebSocketなら本番でそのまま使えますか?
使えません。2026-08-27時点の公式Docsはcodex app-server commandとWebSocket transportをexperimentalでproduction workload非対応としています。認証、TLS、loopback、再接続、同時実行、ログ、代替transportを確認し、現行Docsのsupport範囲が変わるまではproduction前提にしません。
CIはApp ServerとSDKのどちらですか?
jobs / CIのように再現可能な実行、timeout、budget、schema、retry、ログをコードで管理する場合はSDKを第一候補にします。要件と対象SDKの公式対応を確認し、CI greenだけを安全証明にしません。
Claude Code pluginを入れれば権限設定は不要ですか?
不要にはなりません。pluginのscope、Skills、Hooks、MCP server、credential、tool権限、更新・削除を別に監査し、Claude CodeのpermissionとCodex側のapproval / sandboxも分けて確認します。