「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 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サーバーを確認できます。
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 |
任意 | 認証方式。既定はoauth。chatgptも指定可(後述) |
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には設定する手段自体がありません。設定キーがcommandかurlの二択である以上、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 トークン本体"のように、トークンそのものをコマンドに書く例が公式に載っています - Codex:
bearer_token_env_var = "GITHUB_PAT"のように、トークンを入れた環境変数の「名前」だけを書きます
Codex方式では、設定ファイルに生のトークンが残りません。codex mcp listの表示でも環境変数の値は*****とマスクされることを実機で確認しています。設定ファイルをうっかり共有してしまったときの事故を防ぎやすい、セキュリティ面の利点です。
Claude Codeから設定を移すときの対応表
Claude Codeで使っていたサーバーをCodexにも登録するときは、次の読み替えで移せます。
| Claude Code側 | Codex側での書き方 |
|---|---|
.mcp.jsonの"command"と"args" |
[mcp_servers.名前]のcommandとargs |
--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で制御できます。公式リファレンスにある値はauto/prompt/writes/approveの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 --versionとwhere npxを実行して、Node.jsの導入とパスを確認してください。環境によっては、config.tomlのcommandにnpxのフルパスを書くと解決したという報告もあります(実利用報告ベースの回避策です)。
症状3:config.toml の書き方を間違えている
直接編集した設定が反映されないときは、次の定番ミスを確認してください。
- セクション名を
[mcpServers.名前]や[mcp-servers.名前]と書いている(正しくは[mcp_servers.名前]。アンダースコア区切り) - 1つのサーバーに
commandとurlを両方書いている(どちらか一方だけが公式ルール) - 文字列を引用符で囲んでいない(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です
解説記事を探し回るより、codex mcp add --helpで現行のオプションを確認するのが確実です。本記事のコマンドも、この方法でいつでも最新仕様と突き合わせられます。
よくある質問(FAQ)
Codex自体はChatGPTのFreeプラン($0)から利用できると公式の料金ページに記載されています(2026年8月時点)。MCPの利用にあたって追加料金がかかるという案内も公式には見当たりません。ただしプラン別のMCP対応可否までは公式に明記されておらず、無料プランは利用量の上限も小さめです。なおClaude Codeは無料プランでは使えないため、ここは両者の大きな違いです。
公式の例では「--」を付けた形が示されていますが、実際に検証したところ(codex-cli 0.144.1)、Codexはサーバー名より後ろをすべて起動コマンドとして扱うため、「--」を省いても同じ設定が生成されました。とはいえ公式表記に合わせて「--」を付けておくのが安全です。なおClaude Codeでは「--」は必須で、省くとエラーになります。
そのままでは使えません。Claude Codeは.mcp.json(JSON形式)、Codexは~/.codex/config.toml(TOML形式)で記法が異なります。またHTTP接続の指定方法(Claude Codeは--transport http、Codexは--url)やトークンの渡し方も違うため、本文の対応表に沿った書き換えが必要です。
公式ドキュメントがCodexの対応方式として挙げているのは「STDIO」と「Streamable HTTP」の2つだけで、SSEは含まれていません(2026年8月時点)。設定できるキーもcommand(STDIO)かurl(Streamable HTTP)のどちらかです。「/sse」で終わるURLを載せた解説記事は、他のクライアント向けの情報と考えてください。
不要です。公式は「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解説もあわせて参考にしてください。