Support the MCP 2026-07-28 stateless protocol for stdio servers

Open 💬 0 comments Opened Jul 18, 2026 by coreycoto

What variant of Codex are you using?

Codex CLI and Desktop with project-scoped .codex/config.toml MCP servers.

Feature request

Please add Codex client support for the MCP 2026-07-28 stateless serving model over stdio, including server/discover without requiring the legacy initialize / notifications/initialized lifecycle or Mcp-Session-Id.

Codex currently supports configured stdio MCP servers, but the public MCP client still follows the 2025-06-18 initialization lifecycle. Modern-only MCP servers therefore require a translation gateway before Codex can use them.

Why this matters

I am building official TypeScript SDK v2 MCP surfaces for:

  • an internal data-platform operations server;
  • an internal customer/Admin operations server;
  • a separate customer-facing MCP server.

The hosted servers target protocol 2026-07-28. They provide typed structured output, read/mutation principal separation, durable auditing, bounded operations, and multi-round-trip input_required confirmation with opaque requestState, idempotency, and drift rejection.

Today I must maintain a local stdio gateway that accepts Codex's initialization-era traffic and translates it to modern 2026-07-28 HTTP upstreams. That gateway must implement protocol translation, schema mirroring, OAuth refresh, cancellation, timeouts, process lifecycle, elicitation forwarding, and compatibility tests.

Direct modern stdio support would make that gateway unnecessary.

Builder use case

I want Codex scheduled tasks to safely use read-only operations MCPs for recurring business work such as:

  • daily operational briefs;
  • weekly business review reports;
  • data-platform health and failure summaries;
  • customer-operations and workflow reviews.

The resulting reports could then be reviewed by specialized agents, which recommend follow-up actions. Mutations would remain separately authorized and use explicit plan/confirm/apply flows.

This would make Codex a strong local and scheduled operations client without requiring every builder to maintain a custom protocol bridge.

Requested behavior

  • Support protocol 2026-07-28 for configured stdio MCP servers.
  • Discover capabilities and tools using server/discover.
  • Do not require initialize, notifications/initialized, or a session ID in modern-only mode.
  • Preserve multi-round-trip input_required and byte-exact opaque requestState.
  • Support validated structuredContent and output schemas.
  • Support cancellation, timeouts, schema refresh, reconnect, and clean shutdown.
  • Retain an explicit compatibility path for initialization-era servers.
  • Allow a strict modern-only setting that fails clearly instead of silently downgrading.
  • Expose the negotiated protocol revision through /mcp, codex mcp list --json, or a diagnostic command.

Acceptance criteria

  1. A stdio fixture implementing only 2026-07-28 can be configured and used from Codex CLI, Desktop, and supported IDE surfaces.
  2. Codex discovers and calls its tools without sending initialization-era messages.
  3. Multi-round-trip input_required plan/apply works end to end with opaque state unchanged.
  4. Read-only and mutation tool boundaries remain enforced.
  5. Cancellation, timeout, server exit, schema changes, and reconnect have integration coverage.
  6. Existing initialization-era stdio servers continue working through an explicit compatibility mode.
  7. Codex reports the active protocol revision in diagnostics.

Current environment

  • Codex CLI 0.144.0
  • macOS
  • Project-scoped .codex/config.toml
  • Official TypeScript MCP SDK v2 packages:
  • @modelcontextprotocol/server
  • @modelcontextprotocol/client
  • Target protocol: 2026-07-28

Current workaround

A repo-owned stdio gateway translates Codex's current initialization lifecycle to modern-only hosted MCP servers. It works, but it is substantial compatibility infrastructure that should become removable once Codex supports the modern protocol directly.

I searched the public backlog for 2026-07-28, server/discover, modern stdio, and stateless MCP before filing. Nearby issues such as #19425 and #24439 cover tool exposure and diagnostics rather than this protocol upgrade.

View original on GitHub ↗