Codex MCP 設定ガイド:OpenAI Codex に MCP サーバーを追加する方法(2026)
Codex MCP ガイド:codex mcp add で stdio と streamable HTTP サーバーを追加し、~/.codex/config.toml を編集、OAuth でログイン、タイムアウトを設定し、起動エラーを解決します。
Codex に MCP サーバーを追加する方法
OpenAI Codex に MCP サーバーを接続するには、ローカル(stdio)サーバーなら codex mcp add <name> -- <command>、リモート(streamable HTTP)サーバーなら codex mcp add <name> --url <https-url> を実行し、Codex で /mcp と入力して接続を確認します。各エントリは ~/.codex/config.toml に [mcp_servers.<name>] テーブルとして保存され、この 1 つのファイルを Codex CLI、IDE 拡張機能、そして ChatGPT デスクトップアプリ内の Codex が共有します。
このガイドでは、2026 年 10 月時点のワークフロー全体を解説します。CLI コマンド、config.toml の正確なキー、OAuth ログイン、タイムアウトとツール承認、そして古いチュートリアルでつまずきやすい変更点——codex mcp-server(Codex 自体を MCP サーバーとして実行する機能)が削除されたこと——です。以下の内容はすべて公式の Codex MCP ドキュメント と Codex CLI リファレンス と照合済みです。
Codex の MCP 設定の保存場所
Codex は MCP サーバーを通常の設定ファイルに保存します。
| スコープ | ファイル | 備考 |
|---|---|---|
| ユーザー(デフォルト) | ~/.codex/config.toml | すべてのプロジェクトで利用可能 |
| プロジェクト | リポジトリ内の .codex/config.toml | 信頼済みプロジェクトでのみ読み込まれる |
ChatGPT デスクトップアプリ(2026 年 7 月に単体の Codex アプリを統合)、Codex CLI、IDE 拡張機能は、同じ Codex ホストに対して同じ設定を読み込みます。ターミナルで一度サーバーを設定すれば、アプリや拡張機能にも表示されます。
まだ CLI をインストールしていない場合、macOS と Linux 向けの公式インストーラーは次のとおりです。
curl -fsSL https://chatgpt.com/codex/install.sh | sh
方法 1:codex mcp add でサーバーを追加する
CLI が最も手早い方法です。ローカルの stdio サーバーとは、Codex が子プロセスとして起動するもの全般を指し、通常は npx、uvx、docker のコマンドです。起動コマンドは -- の後ろに置きます。
# Context7: up-to-date library docs for coding agents
codex mcp add context7 -- npx -y @upstash/context7-mcp
環境変数は --env で渡します(複数回指定可能)。
codex mcp add <server-name> --env VAR1=VALUE1 --env VAR2=VALUE2 -- <stdio server-command>
リモートサーバーではコマンドの代わりに --url を使います。両者は同時に指定できません。
# OpenAI's public docs server (no auth)
codex mcp add openaiDocs --url https://developers.openai.com/mcp
# A server that expects a bearer token from an env var
codex mcp add example --url https://mcp.example.com/mcp --bearer-token-env-var EXAMPLE_TOKEN
codex mcp ファミリーのその他のコマンドです。
| コマンド | 機能 |
|---|---|
codex mcp list(--json) | 設定済みサーバーを一覧表示 |
codex mcp get <name>(--json) | 1 つのサーバーの設定エントリを表示 |
codex mcp remove <name> | サーバー定義を削除 |
codex mcp login <name>(--scopes a,b) | streamable HTTP サーバーの OAuth ログインを開始 |
codex mcp logout <name> | 保存済みの OAuth 認証情報を削除 |
対話型の codex セッション内では、/mcp でアクティブなサーバーとツールを一覧表示し、/mcp verbose でサーバーごとの診断情報を追加表示し、/mcp login <name> でセッションを離れずにサインインできます。
方法 2:ChatGPT デスクトップアプリまたは IDE 拡張機能を使う
ターミナルよりフォームのほうが好みなら、次の方法があります。
- ChatGPT デスクトップアプリ: Settings → MCP servers → Add server。名前を入力し、STDIO または Streamable HTTP を選択して、コマンドまたは URL を入力・保存し、Restart(再起動)を選択します。OAuth が必要なサーバーには Authenticate(認証)ボタンが表示されます。
- IDE 拡張機能: 歯車メニュー → MCP servers → Add server で保存し、Restart extension(拡張機能を再起動)を選択します。
どちらも同じ config.toml に書き込むため、組み合わせて使えます。なお、Web 版の ChatGPT はローカルの Codex 設定を読み込みません。代わりにインストール済みのプラグイン経由で MCP ツールを利用します。そちらが目的であれば、ChatGPT MCP 設定ガイドをご覧ください。
方法 3:config.toml を直接編集する
基本以上のこと——ツールの許可リスト、承認モード、タイムアウト——はファイルを編集して設定します。各サーバーが 1 つのテーブルになります。
stdio サーバー
[mcp_servers.context7]
command = "npx"
args = ["-y", "@upstash/context7-mcp"]
env_vars = ["LOCAL_TOKEN"] # forward this variable from your shell
[mcp_servers.context7.env]
MY_ENV_VAR = "MY_ENV_VALUE" # set a fixed value for the server
stdio のキー:command(必須)、args、env(固定値)、env_vars(環境から転送を許可する変数名)、cwd(作業ディレクトリ)。
streamable HTTP サーバー
[mcp_servers.figma]
url = "https://mcp.figma.com/mcp"
bearer_token_env_var = "FIGMA_OAUTH_TOKEN"
http_headers = { "X-Figma-Region" = "us-east-1" }
HTTP のキー:url(必須)、bearer_token_env_var(Authorization: Bearer ... として送信)、http_headers(静的ヘッダー)、env_http_headers(ヘッダー名を環境変数名に対応付け)、http_headers_helper(ヘッダーの JSON オブジェクトを出力するローカルコマンド。401 または 403 の後に一度だけ再取得されます)、そして auth——デフォルトは oauth で、chatgpt にすると信頼済みのファーストパーティサーバーで ChatGPT のセッションを再利用します。どれも解決できない場合、Codex は認証情報なしで接続します。
タイムアウト、ツールフィルター、承認
[mcp_servers.chrome_devtools]
url = "http://localhost:3000/mcp"
enabled_tools = ["open", "screenshot"]
disabled_tools = ["screenshot"] # applied after enabled_tools
default_tools_approval_mode = "prompt"
startup_timeout_sec = 20
tool_timeout_sec = 45
enabled = true
[mcp_servers.chrome_devtools.tools.open]
approval_mode = "approve"
output_token_limit = 30000
| キー | デフォルト | 用途 |
|---|---|---|
startup_timeout_sec | 10 | サーバーの起動を待つ秒数 |
tool_timeout_sec | 60 | 1 回のツール呼び出しを待つ秒数 |
enabled | true | false にすると削除せずに無効化 |
required | false | true にすると、このサーバーを初期化できない場合に Codex が起動時に失敗する |
enabled_tools / disabled_tools | すべて | 許可リストの後に拒否リストを適用 |
default_tools_approval_mode | — | auto、prompt、writes(読み取り専用と明示されていないツールのみ確認)、または approve |
tools.<tool>.output_token_limit | モデルのデフォルト | 1 つのツールの出力サイズを制限 |
トップレベルの mcp_optional_startup_grace_ms(デフォルト 1000)は、最初のツールリストを構築する前に Codex がオプションのサーバーを待つ時間を制御します。0 に設定すると、各サーバーの startup_timeout_sec いっぱいまで待ちます。
リモート MCP サーバーの OAuth
多くのホスト型サーバー——たとえば Sentry、Notion、Linear——は、静的なトークンではなく OAuth でサインインさせます。Codex での流れは次のとおりです。
--urlでサーバーを追加します。codex mcp login <name>を実行します(またはアプリで Authenticate をクリック)。ブラウザーのウィンドウが開き、Codex はhttp://127.0.0.1/callbackのようなループバックのコールバックで待ち受けます。- アクセスを承認します。Codex は認証情報を保存し、再利用します。
Codex は自動的に自身を登録します。認可サーバーが対応を表明していれば Client ID Metadata Documents(CIMD)を優先し、そうでなければ Dynamic Client Registration(DCR)にフォールバックします。1 回のログインに限ってどちらかを強制することもできます。
codex mcp login <server-name> --oauth-client-registration dcr
ID プロバイダーが事前登録済みのクライアントを必要とする場合は、サーバー追加時に指定します。Codex はプロバイダーに登録すべき正確なコールバック URL を表示します。
codex mcp add example --url https://mcp.example.com --oauth-client-id my-client
# confidential client: read the secret from an env var
codex mcp add example --url https://mcp.example.com --oauth-client-id my-client --oauth-client-secret "$MCP_CLIENT_SECRET"
シークレットは config.toml の mcp_servers.example.oauth.client_secret に保存されるため、このファイルはバージョン管理に含めないでください。リモートの開発マシンでは、グローバル設定の mcp_oauth_callback_port と mcp_oauth_callback_url でコールバックを固定できます。このフローのプロトコル面については、MCP 認証と OAuth ガイドをお読みください。
Codex は MCP サーバーとして動作できますか?
現在はできません。古いガイドでは、別のエージェントが MCP 経由で Codex を操作できるよう codex mcp-server を実行するよう案内されています。このコマンドは 2026 年 8 月 24 日に非推奨となり、単体の codex-mcp-server バイナリとともに 2026 年 9 月 5 日に削除されました。OpenAI の後継は Codex app server で、独自の JSON-RPC プロトコル(MCP ではありません)を使い、現在も実験的機能とされています。Agents SDK のスクリプトやオーケストレーションツールが codex mcp-server を起動している場合は、アップグレード前に古いバージョンの Codex に固定するか、移行を済ませてください。MCP クライアントとしての Codex——このガイドのそれ以外の内容すべて——には影響ありません。
Codex で最初に試したいサーバー
| サーバー | トランスポート | Codex での利点 |
|---|---|---|
| Context7 | stdio | 古い学習データではなく最新のライブラリドキュメントを参照 |
| Playwright | stdio | 実際のブラウザーを操作し、Codex が作った UI をテスト |
| GitHub | HTTP(トークンまたは OAuth) | git だけではできない PR、Issue、CI の操作 |
| Sentry | HTTP + OAuth | 実際のスタックトレースをデバッグセッションに取り込む |
| Filesystem | stdio | リポジトリ外のフォルダーへの範囲を限定したアクセス |
まずは 2〜3 個から始めましょう。有効なサーバーはそれぞれコンテキストにツール定義を追加し、機能が重なるツールがあるとツール選択の精度が落ちます。詳しくは MCP クライアントがツールを発見する仕組みをご覧ください。
Codex MCP のトラブルシューティング
- 初回実行時に「Server failed to start」またはタイムアウトになる。
npx -yとuvxは初回起動時にパッケージをダウンロードするため、デフォルトの 10 秒を超えることがあります。startup_timeout_secを 30〜60 に上げるか、パッケージを事前にインストールしてください。 - サーバーは起動するがツールが表示されない。
/mcp verboseを実行します。enabled_toolsとdisabled_toolsを確認してください。拒否リストが優先されます。 - API キーがサーバーに届かない。 変数名を
env_varsに追加するか、[mcp_servers.<name>.env]の下で設定します。HTTP サーバーではbearer_token_env_varを使い、Codex を起動するシェルでその変数がエクスポートされていることを確認してください。 - プロジェクトのサーバーが無視される。
.codex/config.tomlはプロジェクトが信頼済みの場合にのみ読み込まれます。 - 長時間実行されるツールが途中で打ち切られる。 そのサーバーに限って
tool_timeout_secを上げてください。 - OAuth がループする、または
invalid redirect_uriが出る。codex mcp addが表示した正確なコールバックを、サーバー固有のコールバック ID も含めて登録してください。 - Codex の外でサーバーをデバッグする。 サーバーの挙動がおかしい場合は、クライアントを疑う前に MCP Inspector で切り分けましょう。
サードパーティのサーバーに書き込み権限を与える前に、MCP セキュリティのベストプラクティスを読み、default_tools_approval_mode = "writes" または "prompt" を優先して使ってください。
Codex と Claude Code の MCP 設定比較
| Codex | Claude Code | |
|---|---|---|
| 追加コマンド | codex mcp add | claude mcp add |
| 設定形式 | TOML、[mcp_servers.*] | JSON、mcpServers |
| ユーザーファイル | ~/.codex/config.toml | ~/.claude.json |
| プロジェクトファイル | .codex/config.toml(信頼済みのみ) | .mcp.json |
サーバーパッケージは同じで、変わるのは外側の設定だけです。もう一方については Claude Code MCP ガイドで解説しています。
次のステップ
MCP サーバーディレクトリからサーバーを選び、codex mcp add で追加して、/mcp で確認しましょう。カテゴリーから自分の技術スタックに合うサーバーを探したり、同じサーバーを共有できる他の MCP クライアントを比較したりすることもできます。
よくある質問
Codex の MCP 設定ファイルはどこにありますか?
- Codex は MCP サーバーを ~/.codex/config.toml の [mcp_servers.<name>] テーブルに保存します。プロジェクトの .codex/config.toml にも書けますが、読み込まれるのは信頼済みプロジェクトだけです。
Codex は OAuth 付きのリモート MCP サーバーに対応していますか?
- 対応しています。codex mcp add <name> --url <https-url> でサーバーを追加し、codex mcp login <name> を実行するとブラウザで OAuth ログインが完了します。streamable HTTP サーバーでは bearer token、OAuth(CIMD または DCR)、カスタムヘッダーが使えます。
Codex で MCP のタイムアウトを延ばすには?
- サーバーの [mcp_servers.<name>] テーブルで startup_timeout_sec(既定 10 秒)と tool_timeout_sec(既定 60 秒)を設定します。初回起動時にパッケージをダウンロードする npx や uvx のサーバーでは startup_timeout_sec を大きくしてください。
Codex を MCP サーバーとして動かすことはまだできますか?
- できません。codex mcp-server コマンドと codex-mcp-server バイナリは 2026 年 9 月 5 日に削除されました。OpenAI は代わりに実験的な Codex app server を案内しており、こちらは MCP ではなく独自の JSON-RPC プロトコルを使います。