Search the alley

記事を検索

2文字以上でタイトル・カテゴリ・タグを検索できます。

CodexのMCP設定ガイド|config.toml・CLI・Desktop・IDEを安全に分ける

CodexのMCP設定を、config.toml、CLI、ChatGPT desktop app、IDE extension、project scope、tool allow/deny、approval mode、OAuth loginから整理します。

公開 2026.08.09 / 更新 2026.08.10

この記事のポイント

  • CodexのChatGPT desktop app、Codex CLI、IDE extensionは、同じCodex hostのMCP設定を共有する
  • project-local configはprovider・auth・profile・notification・telemetryの強制上書き場所ではなく、profile fileと`--profile`の選択も別に確認する
  • profile、CLIの`--config`、project root、CODEX_HOMEのstateを分け、MCP設定の実効値とcredential保存場所を一緒に扱わない
  • 通常のuser設定は~/.codex/config.toml、project設定はtrusted projectの.codex/config.tomlで分ける
  • stdioとStreamable HTTPで設定項目が異なり、enabled_tools・disabled_tools・approval modeを個別に設計する
  • ChatGPT webのplugin経由のremote MCPはlocal Codex configを読まないため、hostと設定面を混同しない

先に結論:Codex MCPは、設定面と権限面を分けると事故を減らせる

OpenAIの現行MCP Docsでは、ChatGPT desktop app、Codex CLI、IDE extensionが、同じCodex hostのMCP設定を共有すると説明されています。つまり、CLIで追加したserverがdesktopやIDEでも見える可能性があります。便利な反面、個人用の強いtoolや認証済みserverを、別の作業面にもそのまま持ち込む境界が生まれます。

一方、ChatGPT webはlocal Codexの設定ファイルを読まず、WorkのPluginsを入口にremote MCP-backed toolsを使います。Codexのlocal configとChatGPT webのpluginを同じMCP設定だと決めつけず、host、設定ファイル、認証、tool policyを最初に分けて記録します。

利用面MCPの入口最初に確認すること
ChatGPT desktop appSettingsのMCP servers追加後のRestart、OAuth要否、共有されるCodex host
Codex CLIcodex mcpコマンド、TUIの/mcpconfig.toml、server list、login、起動shell
IDE extensiongear menuのMCP serversextension restart、表示されるserver、tool approval
ChatGPT webWorkのPluginsとremote toolslocal configを読まないこと、workspace権限、connector auth

Codexが対応するMCP serverの範囲

server形態公式Docsの説明運用で分けること
STDIOcommandで起動するlocal process。環境変数を扱えるcommand、args、PATH、cwd、env_vars、stderr、停止条件
Streamable HTTPaddressへ接続するserver。Bearer tokenやOAuthを扱えるurl、auth、scope、header、timeout、再認証
ChatGPT session authtrusted first-party serverで使える認証方式対象origin、session、host差、通常OAuthとの違い
server instructions初期化時のinstructionsをtoolと並ぶserver-wide guidanceとして読む最初の512文字、制約、rate limit、cross-tool workflow

config.tomlの範囲:user設定とtrusted project設定

CodexのMCP設定はconfig.tomlに置きます。公式Docsでは、通常のuser設定を~/.codex/config.toml、project単位の設定を.codex/config.tomlとして説明し、project設定はtrusted projectsに限定しています。どちらを使うかは、個人の全repoで使うserverか、そのrepoだけで使うserverかで決めます。

範囲向くserverレビューする境界
user config個人の読み取り用utility、頻繁に使うprivate server他のrepoでも起動すること、credentialの保管、全hostへの共有
project configそのrepoのteam tool、review済みの限定servertrusted project、version管理、.codex/config.tomlの差分
plugin MCPplugin bundleが提供するserverpluginの構成、auth、tool policy、user configとの重複
ChatGPT web pluginWorkのremote connectorやMCP toolworkspace policy、connectorのsign-in、local config非共有

project configをversion管理する場合でも、tokenやsecret実値をファイルへ入れません。共有するのはserverの役割、commandや接続先の抽象的な定義、必要なら環境変数名までにし、実値はhost側の安全なcredential経路へ分けます。

Codex configの優先順位:CLI・project・profileを分ける

現行のConfig basicsでは、CodexはCLI flagと`--config` overrideを最優先に、projectの`.codex/config.toml`、`--profile`で選ぶprofile、user config、system config、built-in defaultの順で値を解決します。project configはproject rootからcurrent working directoryへ積み重なり、closest winsですが、trusted projectでだけ読み込まれます。MCP serverが見えないときは、ファイルがあるかだけでなく、どのlayerが最後に値を決めたかを確認します。

優先順位設定レイヤーMCPで確認すること
1CLI flag・`--config`今回のinvocationだけのserver、url、tool policyのoverride
2project `.codex/config.toml`(closest wins)trusted project、rootからcwdまでの重複server名
3`--profile`のprofile file個人の環境差、profile選択、共有repoへ混ぜないこと
4user `~/.codex/config.toml`全project・CLI・IDEへ広がるserverとcredential
5system config・built-in defaults管理者設定や未指定時のfallback、個人設定で上書きできる範囲
設定項目Configuration Referenceの意味MCP導入前の確認
project-local configtrusted projectの`.codex/config.toml`。projectのserver・tool設定を置けるが、provider・auth・profile・notification・telemetryの強制overrideには使えないtrust状態、共有する差分、user configと同名キーの実効値を確認する
profile file`$CODEX_HOME/profile-name.config.toml`に置き、`--profile profile-name`で選択するprofile名、選択中のhost、server・credentialの共有範囲を確認し、repoへ実値を持ち込まない
`mcp_servers.<id>.required`enabled MCP serverが初期化できないとstartup / resumeを失敗させる必須にするserverの可用性、offline時の復旧、作業停止条件を決める
approval modeserver全体の`default_tools_approval_mode`に`auto`・`prompt`・`writes`・`approve`があり、tool単位のoverrideもある最終tool集合とserver・tool単位の承認挙動を別々に確認する
  • project configへproviderやauthを強制する前提を置かず、どの設定layerが値を決めたかを`--profile`、CLI flag、user configとあわせて確認する。
  • `required = true`は便利なhealth checkではなく、serverが初期化できないとstartup / resume自体を止める設定なので、復旧手順を持つserverだけで使う。
  • MCPのtool allowlistとapproval modeは、project configがtrustedかどうか、user-level serverが残っていないかとは別の軸として点検する。

Configuration ReferenceとMCPのFAQ

`.codex/config.toml`でuser設定のproviderやprofileを上書きできますか?

できるとは扱いません。現行Referenceでは、project-local configに置かれたprovider、auth、profile、notification、telemetryなどのキーは無視されます。projectのMCP server設定と、host側のuser config・profile選択を分けて確認してください。

MCP serverに`required = true`を付けるとどうなりますか?

そのenabled serverが初期化できない場合、startupまたはresumeを失敗させる設定です。常に接続できるとは限らないserverをrequiredにせず、offline時の復旧と作業停止条件を先に決めます。

設定・状態公式Docsの説明MCP設定での確認
`--profile`base user configの上にprofile fileを重ね、project・CLI layerより下で差分を適用する選択中profileがどのserver、model、approvalへ影響するかを`--profile`単位で確認する
`-c` / `--config`任意のkeyを1回だけoverrideでき、値はJSONではなくTOML。nested keyはdot notationを使えるShellのquote、`mcp_servers.<id>.enabled=false`のような対象、実行後に残る設定がないことを確認する
`CODEX_HOME`既定は`~/.codex`。`config.toml`、file-basedなら`auth.json`、`history.jsonl`、logs / cachesなどのlocal stateを置くcredential・会話履歴・ログをrepoや共有設定へコピーせず、hostごとの保存範囲を確認する
project root / relative path既定では`.git`を含むdirectoryをrootとし、`project_root_markers`で変更できる。project config内のrelative pathはその`.codex/` directory基準どの`.codex/config.toml`を読んでいるか、MCP command・cwd・設定ファイルpathの基準を確認する
  • 全hostの設定を書き換える前に、1回だけの検証は専用flagまたは`--config`で行い、TOMLのquoteとdot notationの解釈を確認する。
  • 旧profile tableを残したまま新しいprofile fileを追加せず、Codex version、profile file、`--profile`指定、実効値を一緒に記録する。
  • `CODEX_HOME`は設定ファイルだけでなくauth、履歴、ログ、cacheを含み得るため、MCPのcredentialや会話をGit・CI artifact・共有repoへ持ち込まない。

Advanced ConfigurationとMCPのFAQ

`--config`の値はJSONで渡しますか?

JSONではなくTOMLとして解析されます。nested keyはdot notationで指定でき、Shellで空白や記号が分割されないようquoteを確認します。MCP serverを一時的に無効化する場合も、対象IDと実行後の実効値を確認します。

古い`[profiles.profile-name]`をそのまま使えますか?

Codex 0.134.0以降は、そのtableやconfig.tomlのtop-level `profile` selectorを`--profile`の設定として読まないと公式Docsにあります。`~/.codex/profile-name.config.toml`へ移行し、使用中のCodex versionと実効profileを確認してください。

CLI・TUI・desktop・IDEの設定導線

  • desktop appではSettingsのMCP serversからserver名、STDIOまたはStreamable HTTP、commandまたはURLを入力し、保存後にRestartする
  • Codex CLIではcodex mcp add、codex mcp list、codex mcp loginを使い、利用中のserverはTUIの/mcpで確認する
  • IDE extensionではgear menuから追加し、extensionをRestartして有効serverとOAuth要否を確認する
  • config.tomlを直接編集するときは、userとprojectのどちらを変更したか、他のhostへ共有されるかを差分で確認する
  • ChatGPT webではPluginsがremote toolの入口なので、local Codex configへ追加しただけで使えると期待しない
codex mcp list
codex mcp login <server-name>
codex mcp --help

CLIのhelpや画面にserverが出ても、起動成功・認証成功・tool call成功・安全な結果は同じではありません。まずlistで構成、loginで認証の入口、TUIやhost画面でenabledとapprovalを分け、読み取り用の小さなtoolから確認します。

STDIOの設定:command・cwd・envを最小にする

STDIO serverはlocal processとして起動するため、PATH、command、args、cwd、環境変数、終了時のログを確認します。projectを開いたshellとCodex hostが使うshellが違う場合、同じcommandでも起動結果が変わることがあります。commandの全権限を最初から許可せず、読み取りtoolとtest用repoで小さく確認します。

[mcp_servers.readonly_server]
command = "YOUR_MCP_SERVER_COMMAND"
args = ["--mode", "readonly"]
env_vars = ["MCP_TOKEN"]
cwd = "YOUR_PROJECT_DIRECTORY"
enabled_tools = ["search", "read"]
disabled_tools = ["write", "delete"]
default_tools_approval_mode = "prompt"
startup_timeout_sec = 10
tool_timeout_sec = 60
enabled = true
  • commandとargsは実行されるprocessの範囲として確認し、未確認のwrapperやscriptを足さない
  • env_varsは転送を許す環境変数名のallowlistとして扱い、値やtokenをrepoへ書かない
  • cwdは対象repoやsandboxの範囲を狭くし、全ユーザーフォルダを作業範囲にしない
  • startup timeoutとtool timeoutを分け、hung processや長い外部処理を無制限に待たない
  • enabled_toolsとdisabled_toolsを両方使う場合、disabled_toolsがenabled_toolsの後に適用される前提を確認する

Streamable HTTPの設定:接続先・Bearer・OAuthを分ける

Streamable HTTP serverでは、接続先のorigin、認証方式、header、timeout、scopeを別々に管理します。Bearer tokenを環境変数から送る設定と、Codexが保存したOAuth credentialを使う設定は同じではありません。接続できないときに認証を全体的に緩めたり、toolを全部enableしたりせず、まずserver、issuer、scope、対象resourceを確認します。

項目確認内容安全側の初期値
url接続するMCP endpointと環境公式Docsや管理者が示す接続先だけ
authOAuthかBearerか、host sessionかserverが要求する方式を明示し、混同しない
bearer_token_env_varAuthorizationに使う環境変数名実値をconfigやログへ書かない
http_headers静的headerの名前と用途秘密や個人情報をstatic valueに置かない
enabled_toolsserverから使うtoolのallowlistread-onlyの必要なtoolだけ
approval modetool callを自動・prompt・write確認に分けるpromptまたはwritesから開始

tool policy:enabled_tools・disabled_tools・approval modeの順番

Codex Docsでは、enabled_toolsがallowlist、disabled_toolsがdenylistとして案内され、disabled_toolsはenabled_toolsの後に適用されます。さらにserver全体のdefault_tools_approval_modeと、tool単位のapproval_modeを設定できます。名前の設定だけで安全になるのではなく、最終的に実行可能なtool集合と承認挙動を表にしてから使います。

設定意味最初の運用
enabled_tools使用を許すtoolの集合search・readなど必要なread-onlyから始める
disabled_toolsallowlistの後に除外するtoolwrite・delete・deploy・adminを明示的に外す
autotool approvalを自動化するmode信頼範囲が固定できる読み取り用途に限定する
prompttoolごとに確認するmode最初の検証と外部side effectに使う
writesread-onlyでないtoolをpromptするmodewrite境界を残したい作業で候補にする
approve承認を要求するmodehostの実装・表示と合わせて確認する

server instructions:最初の512文字を運用境界として読む

CodexはMCP serverの初期化時に返されるinstructionsを、server-wide guidanceとしてtoolと一緒に読みます。公式Docsでは、Codexがtoolを選ぶときに重要な情報が届くよう、最初の512文字をself-containedにするようserver作者へ案内しています。client側では、instructionsを便利な説明文としてだけでなく、cross-tool workflow、制約、rate limit、禁止事項の候補として読み、repoのAGENTS.mdや人間の権限設定と矛盾しないか確認します。

instructionsの内容読み方越えてはいけない境界
cross-tool workflowtoolを使う順序や前提repo固有のレビューや承認を省略しない
rate limit外部APIを呼ぶ頻度の制約無限retryや並列呼び出しを正当化しない
resource scope読み取れるデータや対象hostのtool allowlistやuser consentを上書きしない
output format結果の形と注意点AIが返す文章を成功判定や事実の証明にしない

OAuth loginとcredential:Codex設定に実値を置かない

OAuth対応serverでは、Codex CLIのcodex mcp loginが認証の入口になります。Bearer tokenを使う場合も、Docsにあるbearer_token_env_varのように環境変数名と実値を分けます。OAuthのissuer、resource、scope、redirect、token保存は接続先の仕様に従い、MCP OAuth記事で確認するCIMD・issuer・PKCEなどのprotocol境界と、Codex hostのlogin画面を混同しません。

  • config.toml、project config、Git差分、CI artifactへaccess token、client secret、refresh tokenを残さない
  • serverごとにscopeとcredentialを分け、同じtokenを別のauthorization serverや環境へ流用しない
  • login後はserver list、enabled状態、tool policy、auth済みのhostを確認する
  • 認証失敗とtool権限不足を分け、全scope付与やapproval無効化を解決策にしない
  • credentialを消す、再認証する、接続を止める手順を人間が実行できるようにする

Plugin-provided MCP serversはuser configと別管理

OpenAI Docsでは、installed PluginがMCP serverをbundleする場合、そのserverのtransport commandはpluginから起動され、user configで起動commandを設定するのではないと説明されています。一方で、`plugins.<plugin>.mcp_servers.<server>`の下で、plugin配下のserverについてenabled状態やtool policyを設定できます。Pluginを入れたこと、MCP serverが起動したこと、toolを許可したことを三つに分けて確認します。

対象見る場所レビューの焦点
Plugin bundlePluginのmanifestと公式導線含まれるMCP、Skill、Connector、Hook、認証
MCP server`plugins.<plugin>.mcp_servers.<server>`enabled、tool allowlist、approval mode
user/project configconfig.tomlや.codex/config.toml同名serverや重複endpoint、共有範囲
外部接続connectorやserverのauth送信データ、scope、revoke、監査

MCPの実行環境:local STDIO・remote STDIO・Streamable HTTP

形態公式Docsの追加情報安全確認
local STDIOcommandでlocal processを起動し、`env_vars`の通常の文字列はCodexのlocal environmentから読むcommand、cwd、local environment、secretの転送範囲をhostごとに確認する
remote STDIO`experimental_environment = "remote"`で利用可能なremote executorから起動でき、`source = "remote"`の環境変数はremote executorから読む。remote MCP stdioが必要localにある値がremoteで読めるとは決めつけず、remote側のcredential、ログ、network、executorの寿命を別に確認する
Streamable HTTP`auth = "oauth"`は保存済みMCP OAuth credential、`auth = "chatgpt"`はtrusted first-party ChatGPT originのcurrent sessionを使い、stored OAuthをfallbackにできるgeneric OAuth、ChatGPT session、Bearer、static headerを同じ認証と扱わず、originとcredential sourceを記録する
  • `env_vars`の文字列はlocal environment、`source = "remote"`はremote executor environmentという境界を確認し、tokenをlocalからremoteへ暗黙に転送しない。
  • `env_http_headers`はheader名と環境変数名を分ける設定なので、static `http_headers`へsecret実値を置かない。
  • credential sourceが解決しない場合に認証なしで接続できるserverもあり得るため、接続成功を認証成功と扱わず、server側の要求を確認する。
  • `enabled = false`はserverを削除せず無効化する設定、`required = true`は起動できないとstartup failureにする設定として、停止と必須化を分ける。

OAuth callbackはbase URLではなく、実際のredirect URIを登録する

MCP OAuthで固定portが必要な場合は`mcp_oauth_callback_port`、remote Devbox ingressやcustom pathが必要な場合は`mcp_oauth_callback_url`を設定できます。Docsでは、Codexがbase callback URLへserver固有のcallback IDを追加してredirect_uriを作るため、OAuth providerへ登録するのはbase hostだけでなく、実際に生成される完全なredirect URIだと案内しています。callbackのport、path、query、server識別子が変われば認証の戻り先も変わるため、設定変更後に登録値とlocal / remote bindingを再確認します。

OAuth serverが`scopes_supported`を広告する場合、Codexはlogin時にserver提示scopeを優先し、そうでなければconfig.tomlのscopeへfallbackします。scopeを全許可にしてcallbackエラーを回避するのではなく、serverのscope、resource、redirect URI、credential storageを一つずつ確認します。

Codex MCPのトラブル切り分け順

症状最初に確認すること避けたい対応
CLIでは見えるがIDEにない同じCodex hostのconfig、extension restart、project trust別configへtokenをコピーする
serverが起動しないcommand、args、cwd、PATH、stderr、startup timeouttool権限を増やして起動を通す
toolが多すぎるenabled_tools、disabled_tools、plugin policy全部enableしてから選ぶ
OAuthが完了しないserverのissuer、scope、callback、codex mcp loginBearer tokenをconfigへ直書きする
ChatGPT webで見えないlocal configとWork Pluginsの違い、workspace policydesktopの設定をwebへ共有できると期待する
tool callが自動実行されるdefault approval mode、tool override、host policypromptやwritesをautoへ変更して終わる

導入前の最小チェックリスト

  • ChatGPT desktop app、Codex CLI、IDE extension、ChatGPT webのどのhostで使うか記録した
  • user configとtrusted project configのどちらに置くか、共有範囲を決めた
  • STDIOかStreamable HTTPか、command・cwd・url・auth・timeoutを分けて確認した
  • enabled_toolsとdisabled_toolsの最終集合を確認し、read-onlyから始めた
  • default approval modeとtool単位のoverrideを確認し、write・delete・deployをpromptまたは除外にした
  • token、secret、refresh tokenをconfig、repo、ログ、artifactへ残していない
  • server instructionsの制約、rate limit、cross-tool workflowをAGENTS.mdや人間のレビューと照合した
  • codex mcp list、login、TUIの/mcp、hostのRestart後に接続状態とtool数を確認した
  • 失敗時にserverをdisable、credentialをrevoke、差分を戻す手順がある

Codex MCP設定のFAQ

Codex CLIで追加したMCPはChatGPT webでも使えますか?

同じとは限りません。OpenAI Docsでは、ChatGPT desktop app、Codex CLI、IDE extensionは同じCodex hostのMCP設定を共有する一方、ChatGPT webはlocal Codex configを読まず、WorkのPluginsを入口にremote toolsを使うと説明されています。

MCP設定はどこに置きますか?

公式Docsでは、user設定が~/.codex/config.toml、project設定がtrusted projectの.codex/config.tomlです。全repoで使うか、そのrepoだけで使うか、credentialとtool policyの共有範囲で決めます。

enabled_toolsとdisabled_toolsはどう使いますか?

enabled_toolsで許可するtoolを絞り、その後にdisabled_toolsで除外します。最終集合を確認し、write・delete・deployは最初から除外またはpromptにして、read-onlyから試します。

Codex MCPのapproval modeは何を変えますか?

server全体やtoolごとのtool approvalの初期挙動を変えます。auto、prompt、writes、approveの選択肢がありますが、mode名だけでtoolの安全性やscopeが保証されるわけではありません。

MCPのserver instructionsを信頼してよいですか?

Codexは初期化時のinstructionsをserver-wide guidanceとして読みますが、repoのルール、人間の承認、hostのtool policyを上書きするものではありません。特に最初の512文字にある制約やrate limitを読み、AGENTS.mdや設定と矛盾しないか確認します。

OAuth tokenをconfig.tomlへ書けば簡単ですか?

安全な初期設計ではありません。credentialの実値をconfig、repo、ログへ残さず、codex mcp loginや環境変数名による分離を使い、serverごとのscope・issuer・revokeを別に管理します。

STDIOのremote executorとlocal processは同じ環境変数を見ますか?

同じとは限りません。`experimental_environment = "remote"`でremote MCP stdioを使う場合、`source = "remote"`の環境変数はremote executorから読みます。localのcredential、filesystem、network、ログがremoteへそのまま共有されるとは考えず、実行面ごとに確認します。

OAuth callback URLはbase URLだけ登録すればよいですか?

不十分な場合があります。`mcp_oauth_callback_url`を使うと、Codexはbase URLへserver固有のcallback IDを追加したredirect_uriを生成します。OAuth providerには、port、path、query、追加されたcallback IDを含む実際の完全なredirect URIを登録し、設定変更後に再確認します。

auth = "chatgpt"はどのMCP serverでも使えますか?

一般的なOAuthの別名とは扱いません。公式Docsでは、trusted first-party ChatGPT originでcurrent ChatGPT sessionを使う方式として案内され、stored OAuthをfallbackにできます。対象origin、host、serverの対応を確認し、generic OAuthやBearer tokenと混同しないでください。

まとめ:Codex MCPは、接続より先に共有範囲とtool policyを決める

CodexのMCPは、ChatGPT desktop app、Codex CLI、IDE extensionで設定を共有できる一方、ChatGPT webのWork Pluginsとは別の面があります。導入時は、config.tomlの範囲、trusted project、STDIO/Streamable HTTP、auth、server instructions、enabled/disabled tools、approval mode、OAuth credentialを分けて確認します。read-only・最小tool・prompt承認から始め、hostをまたいだ表示、差分、ログ、revoke手順まで確認できてから、外部side effectのあるtoolへ広げてください。

Codex CLIのMCP commandは、登録・認証・診断を分ける

command / flag公式Docsの説明Windowsでの確認
`codex mcp`MCP serverのadd、get、list、login、logout、removeを管理し、`~/.codex/config.toml`に保存する実行したprofile、user / projectの設定範囲、server名、削除と無効化の違いを確認する
stdioの`--env`stdio serverを起動する時に環境変数assignmentを渡す変数名と実値を分け、親Shell・子process・ログへの継承範囲を確認する
HTTPのBearer / OAuth`--bearer-token-env-var`、`--oauth-client-id`、`--oauth-resource`はStreamable HTTPの接続設定。`login` / `logout`はOAuth対応のStreamable HTTP server向けstdioとHTTPの引数を混ぜず、endpoint、resource、scope、credential sourceを接続先と照合する
`codex mcp get --json`特定serverのraw config entryをmachine-readableに表示する出力をログ・issue・CI artifactへ保存せず、header、env、path、credential参照名の漏えいを確認する
`codex doctor` / `codex login status`local install、config、auth、runtime、Git、terminalなどを診断し、login statusはcredentialがある時にexit 0を返す実値ではなく診断結果の範囲だけを共有し、exit codeを認証の有効性やMCP tool権限の証明と混同しない
`--strict-config`認識できないconfig fieldがある時にerrorにする。`codex`、`exec`、`review`などruntime commandで使えるCodex version差による設定の黙った無視を早期に止め、実効configとMCP serverの起動結果を別に確認する

CLI commandが表示されたことを成功・安全と扱わない

  • `codex mcp list`は登録されたserverの確認、`get`は設定entryの確認、`login`はOAuth認証の入口であり、serverの起動成功、tool callの成功、外部side effectの安全性をそれぞれ証明しない。
  • `codex mcp login` / `logout`はOAuth対応のStreamable HTTP serverに限る。stdio serverのcommand起動やBearer tokenの環境変数設定を、OAuth loginだけで完了したとは扱わない。
  • `--env`、`--bearer-token-env-var`、configの`env_vars`は環境変数名と実値を分けるための入口であり、secretの表示・記録・子processへの継承を無条件に安全にする機能ではない。
  • `--strict-config`で未知のkeyを止めても、既知の設定が意図したscope・approval・networkを持つとは限らない。Codex version、profile、project trust、MCPの最終tool集合を別に確認する。
  • Developer commandsのmaturity表示でStableとExperimentalを分ける。app-server、execpolicy、debug系などExperimental commandを、通常のMCP接続確認や本番運用の前提にしない。

ChatGPT webのcomposerで`/`を入力して出るslash commandは、ChatGPT desktop appやCodex CLIのcommand setを公開するものではありません。`/mcp`などのTUI操作、`codex mcp`、desktopのSettings、WorkのPluginsは別の入口として扱い、どのhostがどのconfigとcredentialを読んでいるかを先に記録します。

Developer commandsとMCPのFAQ

`codex mcp login`を実行すれば、どのMCP serverでも認証できますか?

できません。公式Docsでは、`login` / `logout`はOAuthをサポートするStreamable HTTP server向けです。stdio serverのcommand、Bearer token、OAuth resource、scope、server側の対応を分けて確認します。

`codex mcp get --json`の結果をそのまま共有してよいですか?

そのまま共有しません。raw config entryにはserverのcommand、URL、header、環境変数参照名、pathなどが含まれ得ます。実値を表示せず、必要なkey名と伏せた構造だけをレビューします。

`codex doctor`が成功すればMCPも動きますか?

保証されません。`doctor`はlocal install、config、auth、runtime、Git、terminalなどの診断レポートを作るcommandです。対象serverの起動、OAuth、tool allowlist、approval、外部接続は個別に確認します。

`--strict-config`でエラーが出なければ設定は正しいですか?

構文・認識できないfieldの検出に役立ちますが、意図したscopeや権限の証明ではありません。Codex version、profile、project trust、serverの実効設定とtool集合を別に確認してください。

関連記事