「Claude Codeの記事を参考にMCPを設定したら、Codexでは書き方がまるで違って動かなかった」 「config.tomlに書いたはずのMCPサーバーが、一覧に出てこない」

この記事は、そんな方のためのCodex(OpenAIのAIコーディングエージェント)にMCPサーバーをつなぐ設定ガイドです。掲載しているコマンドと設定例は公式ドキュメントの現行版に揃え、主要な操作は手元の環境(codex-cli 0.144.1/Windows 11)で実際に実行して確認しています。

CodexのMCP設定は、Claude Codeと「似ているようで細部が違う」落とし穴の多い領域です。設定ファイルの形式も、コマンドの区切り記号の扱いも、対応している接続方式も別物です。この記事では両者の違いを比較表で整理しながら、Codex側の手順を最初の1台から順に解説します。

この記事で身につくこと
  • codex mcp addとconfig.toml直接編集、2つの設定方法の使い分け
  • [mcp_servers.名前]で始まるconfig.tomlの正しい書き方
  • Codexが対応する接続方式は2つだけ(SSEは非対応)という前提知識
  • Claude CodeとのMCP設定の違い(比較表つき)
  • つながらない・タイムアウトするときの切り分け手順

CodexのMCPとは?まず全体像だけつかむ

MCP=AIと外部ツールをつなぐ共通規格

MCP(Model Context Protocol)とは、AIと外部ツールのつなぎ方を標準化した共通規格です。

対応するサーバー(接続先となるプログラムは「MCPサーバー」と呼ばれます)を登録すると、Codexが公式ドキュメントを検索したり、ブラウザを操作したり、GitHubのIssueやプルリクエストを扱ったりできるようになります。一度つないでしまえば、あとは日本語で頼むだけで、Codexが必要に応じて接続先のツールを自分で使います。

MCPという規格そのものの仕組みや、RAG・API直接利用との違いといった一般論は、姉妹記事のClaude CodeのMCP解説で詳しく扱っています。本記事は「Codexでどう設定するか」に絞って進めます。

Codexの特徴:1回の設定が3つのクライアントで共有される

Codexは「ChatGPTデスクトップアプリ」「codex CLI(ターミナル版)」「IDE拡張」の3つの形で使えます。公式ドキュメントは、この3つがMCPサーバーに対応し、同じMCP設定を共有すると明記しています。一度設定すれば、設定し直さずにクライアントを切り替えられるということです。

設定の実体は~/.codex/config.tomlという1つのファイルです。CLIで追加したサーバーが、そのままデスクトップアプリでもIDE拡張でも使えます。

Claude Codeにはない構造

Claude CodeとClaude Desktopは設定が別管理で、取り込み用の専用コマンド(claude mcp add-from-claude-desktop)が用意されているほどです。「1ファイルで全クライアント共有」はCodex側の分かりやすい利点です。

Codexは「つなぐ側」にも「つながれる側」にもなれる

「codex mcp」で検索すると、2系統の情報が混ざって出てきます。

  • CodexにMCPサーバーをつなぐ(本記事の主題):codex mcp addで外部サーバーを追加する
  • Codex自体をMCPサーバーにするcodex mcp-serverで起動し、Claude Codeなど他のAIからCodexを呼ぶ

コマンド名が似ていますが、現行バージョンでは別のコマンドです。後者は記事の後半で解説します。

【前提】必要なものと料金|Codexは無料プランでも使える

対応プラン:Freeプラン($0)から使える

Codexは、ChatGPTの各プランに含まれる形で提供されています。公式の料金ページ(2026年8月時点)の内容は次のとおりです。

プラン 月額 公式の位置づけ
Free $0 簡単なコーディングタスクでCodexを試す
Go $8 軽めのコーディングタスクに
Plus $20 週に数回の集中セッションに
Pro $100〜 Plusの5倍または20倍の利用上限
API Key 従量課金 CIなど共有環境での自動化に

公式ドキュメントにも「ChatGPTのFree・Go・Plus・Pro・Business・Edu・EnterpriseプランにCodexが含まれる」と記載されています。無料プランでもCodex自体を使い始められるということです。

ここはClaude Codeとの大きな違いです。Claude Codeの公式ドキュメントは「無料のClaude.aiプランにはClaude Codeのアクセスは含まれない」と明記しており、Pro以上の有料プランが前提になります。詳しくはClaude Codeの料金プラン解説を参照してください。

MCPに追加料金はかかる?

MCPを使うための追加料金は、Codexの公式ドキュメント上では案内されていません(2026年8月時点で確認)。「MCPは特定プラン限定」という記載も見当たりません。

ただし、プランごとのMCP対応可否が公式に明記されているわけでもない点と、無料プランは利用量の上限が小さい点は押さえておいてください。MCP経由でツールを動かすやり取りも、プランの利用枠の中で行われます。

codex CLIが入っているか確認する

本記事のコマンドはターミナル(PowerShellなど)で実行します。まずバージョンを確認しておきましょう。

codex --version

手元の環境ではcodex-cli 0.144.1と表示されます。Codexは更新がとても速いツールなので、この記事と挙動が違ったら、まずバージョンの差を疑ってください。

CodexにMCPサーバーを追加する2つの方法

追加の方法は「コマンドで追加する」「設定ファイルを直接書く」の2つです。どちらを使っても、最終的には同じconfig.tomlに設定が保存されます(コマンドはファイルへの書き込みを代行しているだけです。実機で生成結果を確認済み)。

方法1:codex mcp add コマンドで追加する(最短)

自分のPCでプログラムを起動してつなぐタイプ(STDIO型)は、次の形で追加します。公式ドキュメント掲載の実例です。

codex mcp add context7 -- npx -y @upstash/context7-mcp

意味を分解すると「context7という名前で、--より後ろのコマンド(npx -y @upstash/context7-mcp)を起動コマンドとして登録する」です。成功するとAdded global MCP server '名前'.と表示されます(codex-cli 0.144.1で実測)。

URLを指定してネット越しにつなぐタイプ(Streamable HTTP型)は、--urlを使います。

codex mcp add openai-docs --url https://developers.openai.com/mcp

方法2:config.toml を直接編集する

タイムアウトの調整やツール単位の権限設定など、コマンドのオプションにない項目を使いたいときは、~/.codex/config.tomlを直接編集します。書き方は次章でテンプレートつきで解説します。

まずはコマンド(方法1)で追加して、細かい調整が必要になったらファイルを直接編集する、という進み方が迷いません。

まずは認証不要のOpenAI Docs MCPで試す

最初の1台には、OpenAI公式のドキュメント検索サーバー「OpenAI Docs MCP」がおすすめです。URLを1本指定するだけで、APIキーもログインも要りません。本記事の準備段階で、このサーバーが認証なしで応答することを直接確認しています(2026年8月時点)。

codex mcp add openai-docs --url https://developers.openai.com/mcp
codex mcp list

codex mcp listで登録状態を確認できます(STDIO型とHTTP型は別々の表で表示されます)。Codexのセッション内では/mcpと入力すると、有効なMCPサーバーを確認できます。

最初の1台は「認証不要」を選ぶ

MCPでつまずく原因の多くは認証まわりです。認証不要のサーバーで「追加して、一覧で確認して、使う」の流れを一度体験しておくと、トークンやOAuthが必要なサーバーに進んだとき、問題の切り分けがぐっと楽になります。

定番サーバーの追加コマンド早見表

公式ドキュメントが「便利なMCPサーバーの例」として挙げているものから、追加コマンドの型が異なる4つを載せておきます(GitHubの環境変数の使い方は認証の章で説明します)。

サーバー 追加コマンド 認証
OpenAI Docs MCP codex mcp add openai-docs --url https://developers.openai.com/mcp 不要
Context7 codex mcp add context7 -- npx -y @upstash/context7-mcp 不要(APIキー任意)
Playwright codex mcp add playwright -- npx -y @playwright/mcp@latest 不要
GitHub codex mcp add github --url https://api.githubcopilot.com/mcp/ --bearer-token-env-var GITHUB_PAT トークン(環境変数)

config.toml の書き方【コピペ用テンプレート】

設定ファイルの場所(Windows/Mac)

種類 場所 補足
ユーザー全体の設定 ~/.codex/config.toml(WindowsではC:\Users\ユーザー名\.codex\config.toml 基本はこちら
プロジェクト単位の設定 プロジェクト直下の.codex/config.toml 信頼済み(trusted)プロジェクトのみ有効と公式に明記

環境変数CODEX_HOMEを設定すると、設定フォルダの場所ごと差し替えることもできます(本記事の検証でもこの仕組みを使い、実環境と隔離して実行しています)。

[mcp_servers.名前] が基本形(STDIO型)

config.tomlはTOMLという記述形式で書きます。MCPサーバー1台につき、[mcp_servers.名前]のセクションを1つ作るのが基本形です。

[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]

セクション名はmcp_serversです。アンダースコア区切り・複数形で、Claude CodeのmcpServers(JSON)とはつづりが違います。ここの書き間違いが定番のミスです。

STDIO型で使う主なキーは次のとおりです。

キー 必須 意味
command 必須 サーバーを起動するコマンド
args 任意 起動コマンドに渡す引数(配列)
env 任意 サーバーに設定する環境変数
cwd 任意 サーバーを起動する作業フォルダ

環境変数を渡す場合は、サブテーブルとして書きます。

[mcp_servers.context7.env]
MY_ENV_VAR = "MY_ENV_VALUE"

codex mcp add--env KEY=VALUEオプションは、このサブテーブル形式に変換されて保存されます(実機で生成結果を確認済み)。

Streamable HTTP型の書き方(url / bearer_token_env_var)

URL指定でつなぐサーバーは、commandの代わりにurlを書きます。公式ドキュメント掲載の実例です。

[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
キー 必須 意味
url 必須 サーバーのアドレス
auth 任意 認証方式。既定はoauthchatgptも指定可(後述)
bearer_token_env_var 任意 認証トークンを読み取る環境変数の名前
http_headers 任意 固定値で送るHTTPヘッダー

1つのサーバー設定に書けるのはcommand(STDIO型)かurl(Streamable HTTP型)のどちらか一方だけです。公式リファレンスにも、この2つがサーバーの種別を決める識別ルールだと明記されています。

共通オプション(タイムアウト・有効/無効)

どちらの型でも使える主なオプションです(既定値は公式リファレンスより)。

キー 既定 意味
startup_timeout_sec 10 サーバー起動の待ち時間(秒)
tool_timeout_sec 60 ツール実行の待ち時間(秒)
enabled falseで、設定を消さずに無効化
required trueで、このサーバーが初期化できなければ起動自体を失敗させる

このほか、ツール単位で実行可否を制御するオプション(enabled_toolsなど)もあります。セキュリティの章で扱います。

プロジェクトごとに設定を分ける(.codex/config.toml)

特定のプロジェクトだけで使いたいサーバーは、プロジェクト直下の.codex/config.tomlに書けます。ただし公式に「信頼済み(trusted)プロジェクトのみ」と明記されている点に注意してください。まずはユーザー全体の~/.codex/config.tomlで運用を始めて、必要になったら分ける、で十分です。

対応している接続方式は2つだけ|SSEは使えない

STDIOとStreamable HTTPの比較表

Codexの公式ドキュメントがMCPサーバーの接続方式として挙げているのは、次の2つだけです(2026年8月時点)。

STDIO Streamable HTTP
接続先 自分のPCで起動するプログラム URLで指定するサーバー
設定キー command(+args url
追加コマンド codex mcp add 名前 -- コマンド codex mcp add 名前 --url URL
Context7、Playwright OpenAI Docs、GitHub、Figma

SSE(Server-Sent Events)とWebSocketは、この一覧に含まれていません。Claude CodeがSSEを「非推奨」としつつ残しているのとは違い、Codexには設定する手段自体がありません。設定キーがcommandurlの二択である以上、SSE型として登録する書き方が存在しないのです。

「/sse」で終わるURLを載せた記事に注意

ネット上のCodex向け解説の中には、https://〜/sseのようなSSE用エンドポイントのURLを設定例として載せているものがあります。MCPの初期からある方式なので、他のクライアント向けの手順がそのまま流用されたのだと考えられます。

公式のMCP設定ページと設定リファレンスを機械的に全文検索しても、MCPの接続方式としてのSSEへの言及はありませんでした(2026年8月時点。リファレンス内の「SSE」は別機能の設定項目です)。/sseのURLで実際に接続できるかどうかまでは検証していませんが、公式が挙げていない方式のURLをあえて書く理由はありません。提供元がStreamable HTTP用のURLを用意していないか、先に確認してください。

CodexとClaude CodeのMCP設定はどう違う?【比較表】

すでにClaude CodeでMCPを使っている方が、そのままの感覚でCodexを設定するとつまずくポイントを整理します。Claude Code側の設定手順はClaude CodeのMCP解説を、Claude Code自体を知らない方はClaude Codeとは何かの解説を参照してください。

設定方式の比較表

観点 Codex Claude Code
設定ファイルの形式 TOML JSON
ユーザー設定の場所 ~/.codex/config.toml ~/.claude.json
プロジェクト設定 .codex/config.toml(信頼済みのみ) .mcp.json
記法 [mcp_servers.名前] {"mcpServers": {"名前": {...}}}
追加コマンド codex mcp add 名前 -- コマンド claude mcp add 名前 -- コマンド
「--」の扱い 省略しても通る(実測) 必須。省くとエラー(実測)
HTTP接続の指定 --url URL --transport http 名前 URL
接続方式 STDIO/Streamable HTTPの2つ stdio/http/sse(非推奨)/ws
スコープ user/projectの2階層 local/project/userの3階層
トークンの渡し方 bearer_token_env_var(環境変数名) --header "Authorization: Bearer ..."(直接)
ツール単位の権限制御 あり(enabled_tools等) 公式に相当機能の記載なし
クライアント間の設定共有 アプリ・CLI・IDE拡張で自動共有 Claude Desktopとは別管理
自身のMCPサーバー化 codex mcp-server claude mcp serve
対応プラン Free($0)から Pro以上(無料プラン不可)

「--」の扱いが逆:Codexは省略しても通る

STDIO型の追加コマンドに出てくる--(半角ハイフン2つ)は、「ここから先はサーバーの起動コマンド」という区切り記号です。Claude Codeではこれを省くとerror: unknown option '-y'で登録すらされません。

一方Codexで同じ実験をすると、結果が逆になります。隔離した検証環境(codex-cli 0.144.1)での実測です。

# 公式ドキュメントどおり(-- あり)
codex mcp add fstest -- npx -y @modelcontextprotocol/server-filesystem C:\work

# 「--」を省略
codex mcp add fstest npx -y @modelcontextprotocol/server-filesystem C:\work

どちらも成功し、生成されたconfig.tomlは完全に同一でした。Codexはサーバー名より後ろを丸ごと起動コマンドとして扱うため、--env--urlのようなCodex自身のオプションと同名の文字列が混ざっていても、サーバー側の引数として正しく取り込まれました(実測)。

とはいえ、公式ドキュメントの例はすべて--つきです。読者のみなさんには公式表記に合わせて--を付ける書き方をおすすめします。この実測結果は「Claude Code向け記事のコマンドを参考にするとき、--の有無で悩んだり、書き分けを暗記したりする必要はない」という安心材料として覚えておいてください。逆方向(Codexの感覚でClaude Codeの--を省く)はエラーになります。

トークンの渡し方:Codexは「環境変数名」を書く

認証トークンの扱いにも設計思想の違いが出ています。

  • Claude Code--header "Authorization: Bearer トークン本体"のように、トークンそのものをコマンドに書く例が公式に載っています
  • Codexbearer_token_env_var = "GITHUB_PAT"のように、トークンを入れた環境変数の「名前」だけを書きます

Codex方式では、設定ファイルに生のトークンが残りません。codex mcp listの表示でも環境変数の値は*****とマスクされることを実機で確認しています。設定ファイルをうっかり共有してしまったときの事故を防ぎやすい、セキュリティ面の利点です。

Claude Codeから設定を移すときの対応表

Claude Codeで使っていたサーバーをCodexにも登録するときは、次の読み替えで移せます。

Claude Code側 Codex側での書き方
.mcp.json"command""args" [mcp_servers.名前]commandargs
--transport http 名前 URL --url URL
--header "Authorization: Bearer ..." トークンを環境変数に入れて--bearer-token-env-var 変数名
--scope user(全プロジェクト共通) ~/.codex/config.tomlに書く(既定でユーザー全体)
SSE型(--transport sse)のサーバー 移行不可。提供元のStreamable HTTP用URLを確認

認証が必要なサーバーをつなぐ

codex mcp login でOAuth認証する

OAuth(ブラウザでログインして連携を許可する認証方式)に対応したサーバーは、追加後に次のコマンドで認証します。

codex mcp login サーバー名
codex mcp logout サーバー名

公式リファレンスによると、資格情報が何も解決できない場合でもCodexは認証なしでサーバーに接続でき、OAuthでのログインはcodex mcp loginを別途実行して開始する、という流れです。OAuthに対応していないサーバーに対して実行すると、Error: No authorization support detectedと表示されます(実測)。

社内プロキシなどでOAuthのコールバックポートを固定したい場合は、config.tomlのトップレベル(セクションの外側)にmcp_oauth_callback_port = 5555のように書けます。通常の個人利用では設定不要です。

Bearerトークンを環境変数で渡す

GitHub MCPサーバーのように、サービス側で発行したトークン(GitHubならPAT:個人アクセストークン)で認証するタイプは、先にトークンを環境変数へ入れてから追加します。

codex mcp add github --url https://api.githubcopilot.com/mcp/ --bearer-token-env-var GITHUB_PAT

GITHUB_PATという環境変数の中身がトークンとして送られます。このコマンドでconfig.tomlにbearer_token_env_var = "GITHUB_PAT"が生成されることは実機で確認済みです。

ChatGPTセッションを流用する(auth = "chatgpt")

authキーの既定値はoauthですが、"chatgpt"を指定すると、現在ログイン中のChatGPTセッションをそのまま認証に使えます。ただし公式は、信頼されたファーストパーティ(ChatGPT公式提供元)のサーバー向けと説明しています。通常は既定のままで問題ありません。

セキュリティ:ツール単位で権限を絞れる

MCPサーバーは便利な一方、AIの「外部への接続口」を増やす機能でもあります。外部のコンテンツを取り込むサーバーには、文章の中に紛れ込ませた指示をAIに実行させる「プロンプトインジェクション」と呼ばれる攻撃のリスクがあります。提供元の分からないサーバーをつながないのは大前提として、Codexにはつないだ後の権限を細かく絞れる仕組みが用意されています。この粒度の制御は、Claude Codeの追加コマンドには公式に相当機能の記載がない、Codex側の強みです。

approval_mode は4段階

ツールを実行する前にユーザーへ確認を求めるかどうかを、default_tools_approval_modeで制御できます。公式リファレンスにある値はautopromptwritesapproveの4つです。中でも実用的なのがwritesで、読み取り専用ではないツール(書き込みが起きうるツール)のときだけ確認を求めるという動きをします。

特定のツールだけ挙動を変えたいときは、tools.ツール名.approval_modeで個別に上書きできます。

[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
default_tools_approval_mode = "prompt"

[mcp_servers.chrome_devtools.tools.open]
approval_mode = "approve"

enabled_tools と disabled_tools で使えるツールを限定する

サーバーが提供するツールのうち、一部だけを使わせることもできます。

[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
enabled_tools = ["open", "screenshot"]
disabled_tools = ["screenshot"]

enabled_toolsが許可リスト、disabled_toolsが拒否リストです。公式リファレンスに「拒否リストは許可リストの後に適用される」と明記されているため、この例で実際に使えるのはopenだけになります。

なお、ツール連携(MCP)とは別に、エージェントに作業手順やノウハウを覚えさせる仕組みとしてSkillsがあります。Codex側での使い方はCodexのSkills解説を、Claude Code側はClaude CodeのSkills解説を参照してください。

MCPサーバーの管理コマンド一覧

設定後の運用で使うコマンドをまとめました(2026年8月時点・codex-cli 0.144.1で確認)。

コマンド 用途
codex mcp add 名前 -- コマンド--url URL サーバーの追加
codex mcp list 一覧表示(--jsonでJSON出力)
codex mcp get 名前 個別サーバーの詳細表示
codex mcp remove 名前 サーバーの削除
codex mcp login 名前logout 名前 OAuth認証の実行/解除
/mcp(セッション内) 有効なMCPサーバーの確認

使わないサーバーは enabled = false で止める

一時的に使わないサーバーは、削除するよりenabled = falseで無効化するのが手軽です。設定を残したまま止められるので、再開するときはtrueに戻すだけで済みます。

[mcp_servers.playwright]
command = "npx"
args = ["-y", "@playwright/mcp@latest"]
enabled = false

逆に「このサーバーが立ち上がらないなら起動自体を失敗させたい」という重要なサーバーにはrequired = trueを指定できます。

Codex自体をMCPサーバーにして他のAIから呼ぶ

ここまでとは逆方向の「CodexがMCPサーバーとして呼ばれる側になる」使い方です。

codex mcp-server で起動する

使うコマンドはcodex mcp-serverです。ヘルプにも「Start Codex as an MCP server (stdio)」(CodexをMCPサーバーとしてSTDIOで起動する)と記載されています。

codex mcp-server

公式ドキュメントによると、公開されるツールは2つです。

ツール 役割
codex プロンプトを渡してCodexのセッションを開始する
codex-reply threadIdを指定して、続きの会話を送る

Claude CodeからCodexを呼ぶ設定

Claude Code側のプロジェクト設定(.mcp.json)に、次のように書きます。

{
  "mcpServers": {
    "codex": {
      "command": "codex",
      "args": ["mcp-server"]
    }
  }
}

これでClaude Codeのセッションから、Codexをツールとして呼び出せるようになります。「実装はClaude Codeで進めつつ、セカンドオピニオンとしてCodexにレビューさせる」といった連携の土台になる設定です。

「codex mcp」でサーバーが起動しないのはなぜ?

古い解説記事では、Codex自体をサーバー化するコマンドとしてcodex mcpが紹介されていることがあります。現行バージョン(codex-cli 0.144.1で確認)では、codex mcpは外部MCPサーバーの管理コマンド、codex mcp-serverが自身をサーバー化するコマンド、という別々の役割になっています。古い記事のとおりにcodex mcpだけを実行してもサーバーは起動しません。codex mcp-serverに読み替えてください。

つながらないときのトラブルシューティング

症状1:起動でタイムアウトする

サーバー起動の待ち時間startup_timeout_secの既定は10秒です(公式リファレンス)。npxを使うSTDIO型サーバーは、初回実行時にパッケージのダウンロードが走るため、回線や環境によっては10秒を超えることがあります。config.tomlで延長してみてください。

[mcp_servers.playwright]
command = "npx"
args = ["-y", "@playwright/mcp@latest"]
startup_timeout_sec = 30

ツールの実行が長くて切れる場合は、tool_timeout_sec(既定60秒)の延長も検討します。

症状2:Windowsで npx がうまく動かない

npxはNode.jsに付属するコマンドです。STDIO型サーバーが動かないときは、まずターミナル単体でnode --versionwhere npxを実行して、Node.jsの導入とパスを確認してください。環境によっては、config.tomlのcommandnpxのフルパスを書くと解決したという報告もあります(実利用報告ベースの回避策です)。

症状3:config.toml の書き方を間違えている

直接編集した設定が反映されないときは、次の定番ミスを確認してください。

config.tomlの定番ミス3つ
  • セクション名を[mcpServers.名前][mcp-servers.名前]と書いている(正しくは[mcp_servers.名前]。アンダースコア区切り)
  • 1つのサーバーにcommandurlを両方書いている(どちらか一方だけが公式ルール)
  • 文字列を引用符で囲んでいない(TOMLではcommand = "npx"のように引用符が必要)

登録内容の確認にはcodex mcp get 名前が使えます。未登録の名前を指定するとError: No MCP server named '名前' found.と表示されるので、登録自体の成否も切り分けられます(実測)。

症状4:参照している記事・公式URLが古い

Codexはドキュメントの整備も含めて動きが速く、2026年8月時点で次の変化を確認しています。

  • 公式ドキュメントが移転済み。旧URL(developers.openai.com/codex/mcpなど)は、現行のlearn.chatgpt.com配下へ恒久リダイレクト(HTTP 308)されます
  • GitHubリポジトリにあった設定ドキュメント(codex-rs/config.md)は、中身が移転告知だけのファイルに変わっています。ここを出典にした古い記事の記載は現行仕様とずれている可能性があります
  • 前述のとおり、Codex自身のサーバー化コマンドは現行ではcodex mcp-serverです
迷ったら --help が最速

解説記事を探し回るより、codex mcp add --helpで現行のオプションを確認するのが確実です。本記事のコマンドも、この方法でいつでも最新仕様と突き合わせられます。

よくある質問(FAQ)

Q1. CodexのMCPは無料プランでも使えますか?

Codex自体はChatGPTのFreeプラン($0)から利用できると公式の料金ページに記載されています(2026年8月時点)。MCPの利用にあたって追加料金がかかるという案内も公式には見当たりません。ただしプラン別のMCP対応可否までは公式に明記されておらず、無料プランは利用量の上限も小さめです。なおClaude Codeは無料プランでは使えないため、ここは両者の大きな違いです。

Q2. codex mcp add の「--」は必ず必要ですか?

公式の例では「--」を付けた形が示されていますが、実際に検証したところ(codex-cli 0.144.1)、Codexはサーバー名より後ろをすべて起動コマンドとして扱うため、「--」を省いても同じ設定が生成されました。とはいえ公式表記に合わせて「--」を付けておくのが安全です。なおClaude Codeでは「--」は必須で、省くとエラーになります。

Q3. Claude Codeで使っていたMCP設定をCodexにそのまま貼れますか?

そのままでは使えません。Claude Codeは.mcp.json(JSON形式)、Codexは~/.codex/config.toml(TOML形式)で記法が異なります。またHTTP接続の指定方法(Claude Codeは--transport http、Codexは--url)やトークンの渡し方も違うため、本文の対応表に沿った書き換えが必要です。

Q4. CodexはSSE接続のMCPサーバーに対応していますか?

公式ドキュメントがCodexの対応方式として挙げているのは「STDIO」と「Streamable HTTP」の2つだけで、SSEは含まれていません(2026年8月時点)。設定できるキーもcommand(STDIO)かurl(Streamable HTTP)のどちらかです。「/sse」で終わるURLを載せた解説記事は、他のクライアント向けの情報と考えてください。

Q5. 設定はCLI・デスクトップアプリ・IDE拡張で別々に必要ですか?

不要です。公式は「ChatGPTデスクトップアプリ、Codex CLI、IDE拡張はMCPサーバーに対応し、MCP設定を共有する」と明記しており、一度設定すれば設定し直さずにクライアントを切り替えられます。設定の実体はユーザーごとの~/.codex/config.tomlです。

まとめ|まずは1台つないでみる

この記事の要点
  • Codexの設定は~/.codex/config.toml(TOML形式・[mcp_servers.名前])。1回の設定がアプリ・CLI・IDE拡張で共有される
  • 追加はcodex mcp add。STDIO型は-- コマンド、HTTP型は--url URL。「--」は省略しても通るが公式どおり付けるのが安全
  • 対応方式はSTDIOとStreamable HTTPの2つだけ。「/sse」のURLは書かない
  • トークンはbearer_token_env_varで環境変数名を渡す。ツール単位の権限制御(approval_mode等)はCodexならでは
  • CodexはFreeプラン($0)から使える。Claude CodeはPro以上が必要

CodexのMCPは、config.tomlの型さえ覚えてしまえば、あとは同じパターンの繰り返しです。まずは認証不要のOpenAI Docs MCPをcodex mcp addして、codex mcp listに表示されるところから始めてください。

Codexは仕様の変化がとても速いツールです。本記事の内容は2026年8月時点(codex-cli 0.144.1)で確認したものなので、挙動が違うと感じたらcodex mcp add --helpと公式ドキュメントで現行仕様を確かめる習慣をセットでどうぞ。Claude Code側のMCP設定と使い分けたい方は、Claude CodeのMCP解説もあわせて参考にしてください。