Codex Desktop shows STDIO for streamable_http MCP servers when authStatus is unsupported
Summary
Codex Desktop appears to show STDIO for MCP servers that are actually configured as streamable_http.
After checking both the local config and CLI output, the server transport is correctly recognized as HTTP, but the Desktop UI still displays STDIO.
Expected behavior
For an MCP server configured with:
[mcp_servers.example]
url = "http://127.0.0.1:29467/"
the UI should show something like:
HTTP/Streamable HTTPif that column is meant to represent transport, orUnsupported auth/No authif that column is meant to represent auth status.
It should not show STDIO.
Actual behavior
The Desktop MCP server list shows STDIO for HTTP MCP servers.
Reproduction
- Configure an MCP server in
~/.codex/config.tomlusingurl = "http://127.0.0.1:..." - Open Codex Desktop
- Go to the MCP server list
- Observe that the server is displayed as
STDIO
Additional evidence
CLI output shows the transport is correctly recognized as streamable_http:
codex mcp list --json
Example result:
{
"name": "gamebooom_gamebooomtest01_44b31e9b",
"enabled": true,
"transport": {
"type": "streamable_http",
"url": "http://127.0.0.1:29467/"
},
"auth_status": "unsupported"
}
Likely root cause
It looks like the Desktop UI is rendering authStatus === "unsupported" as STDIO.
In the bundled frontend code, the status list appears to use authStatus for display, and unsupported maps to the string STDIO, which conflates auth support with transport type.
So the problem seems to be:
- actual transport:
streamable_http - actual auth status:
unsupported - UI output:
STDIO
Suggested fix
Either:
- Change the
unsupportedauth label fromSTDIOto something like:
UnsupportedNo authAuth unsupported
or
- Display transport and auth as separate fields in the Desktop UI.
Environment
- Codex Desktop on macOS
codex mcp list --jsonconfirms transport isstreamable_http- MCP server configured via
url = "http://127.0.0.1:..."