Repository navigation
Description
Summary
When a user-configured Codex MCP server fails to initialize, its tools are absent from the agent's tool catalog, but T3 Code shows no visible warning or explanation. Chat continues normally, leaving the user and agent to discover the missing integration indirectly.
Steps to reproduce
- Configure an HTTP MCP server in
~/.codex/config.toml. - Make that endpoint temporarily unreachable, then start a Codex chat in T3 Code.
- Ask the agent to use that server's tools.
- Compare the chat UI with the native provider event log.
The observed incident involved a private endpoint; its address and session identifiers are omitted here. The reproduction steps above generalize the observed startup failure; a deliberately blocked public endpoint was not separately tested.
Actual behavior
- The provider log records
mcpServer/startupStatus/updatedwithstatus: starting, followed about four seconds later bystatus: failed. - The error says the HTTP request failed while sending the MCP
initializerequest. - The server's tools are missing from the agent's available tool catalog.
- No visible MCP startup warning, failure indicator, or actionable explanation appeared in the chat UI.
- Other tools and chat remained usable.
Redacted log excerpt:
mcpServer/startupStatus/updated
name: example_mcp
status: failed
error: MCP client for `example_mcp` failed to start:
MCP startup failed: handshaking with MCP server failed:
HTTP request failed ... when send initialize request
The endpoint later accepted a direct MCP initialize request and tool calls. This establishes current service availability, not the precise cause of the earlier connection failure. DNS, proxy, and transient network causes have not been distinguished.
Expected behavior
Surface the affected MCP server name and startup failure in the UI, without preventing chat with the remaining tools. Provide access to a sanitized error and recovery guidance. If retry/refresh is offered, scope it appropriately so unrelated chats sharing a provider runtime are not disrupted.
Source investigation
Inspected upstream commit 7462f234e89027943cf0d1a73d3ae1f36571d4e3 (not asserted to be the exact installed desktop build):
CodexAdapterV2.tsdoes not register a handler formcpServer/startupStatus/updated, although generated protocol schemas support it.packages/effect-codex-app-server/src/client.tsdispatches notifications tonotificationHandlers.get(notification.method) ?? []; an unhandled notification produces no UI-facing event by itself.- Native protocol logging preserves the failure, which is how it was diagnosed.
- The adapter overrides only T3's own MCP server entries, so this incident is not evidence that user MCP configuration was discarded.
- Existing MCP app tool-call errors cover a different path: this failure happens before tools become available.
Source links:
- https://github.com/pingdotgg/t3code/blob/7462f234e89027943cf0d1a73d3ae1f36571d4e3/apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts
const handlers = notificationHandlers.get(notification.method) ?? [];
Environment
- T3 Code desktop:
0.1.10-nightly.20261111.4544(local last-started version record) - macOS, Apple Silicon
- Codex provider
Related issues
#30194 and #16067 describe specific causes of MCP startup failure. This issue concerns the missing UI diagnostic regardless of the underlying connection/protocol cause. #15140 concerns a different configuration-loading failure with a similar visibility gap.
Verification limits
This report combines an observed UI symptom, native startup failure logs, and read-only source inspection. No T3 Code changes were made, and automatic recovery after connectivity returns has not been verified.
Activity