Codex Desktop shows STDIO for streamable_http MCP servers when authStatus is unsupported

Resolved 💬 0 comments Opened Mar 24, 2026 by Winlifes Closed Apr 6, 2026

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 HTTP if that column is meant to represent transport, or
  • Unsupported auth / No auth if 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

  1. Configure an MCP server in ~/.codex/config.toml using url = "http://127.0.0.1:..."
  2. Open Codex Desktop
  3. Go to the MCP server list
  4. 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:

  1. Change the unsupported auth label from STDIO to something like:
  • Unsupported
  • No auth
  • Auth unsupported

or

  1. Display transport and auth as separate fields in the Desktop UI.

Environment

  • Codex Desktop on macOS
  • codex mcp list --json confirms transport is streamable_http
  • MCP server configured via url = "http://127.0.0.1:..."

View original on GitHub ↗