MCP.so
ログイン
ブログに戻る

Codex MCP 設定ガイド:OpenAI Codex に MCP サーバーを追加する方法(2026)

2026年10月15日MCP.so TeamMCP.so Team

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_sec10サーバーの起動を待つ秒数
tool_timeout_sec601 回のツール呼び出しを待つ秒数
enabledtruefalse にすると削除せずに無効化
requiredfalsetrue にすると、このサーバーを初期化できない場合に 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 での流れは次のとおりです。

  1. --url でサーバーを追加します。
  2. codex mcp login <name> を実行します(またはアプリで Authenticate をクリック)。ブラウザーのウィンドウが開き、Codex は http://127.0.0.1/callback のようなループバックのコールバックで待ち受けます。
  3. アクセスを承認します。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 での利点
Context7stdio古い学習データではなく最新のライブラリドキュメントを参照
Playwrightstdio実際のブラウザーを操作し、Codex が作った UI をテスト
GitHubHTTP(トークンまたは OAuth)git だけではできない PR、Issue、CI の操作
SentryHTTP + OAuth実際のスタックトレースをデバッグセッションに取り込む
Filesystemstdioリポジトリ外のフォルダーへの範囲を限定したアクセス

まずは 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 設定比較

CodexClaude Code
追加コマンドcodex mcp addclaude 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 プロトコルを使います。