The Codex Changelog
All Episodes
Codex 0.147.0 Unblocks MCP Startup

Codex 0.147.0 Unblocks MCP Startup

0:00|0:00

This episode covers Codex 0.147.0’s move to the new MCP 2026 07 28 spec, including non-blocking server startup, cached tool definitions, paginated schema discovery, and multi-round tool elicitation. It also touches on legacy compatibility pitfalls and a few welcome terminal UI polish fixes.


Chapter 1

Unblocking Terminal Workflows with MCP 2026 07 28

Ethan Park

You know that feeling when you fire up the terminal, you type codex, and it just... sits there spinning because one slow database server somewhere is hanging during startup? Huge shoutout to Jellypod for helping us bring you this show every day, by the way. But seriously, that old synchronous initialize handshake was blocking everything.

Maya

Oh, I, I know it so well. It used to lock up the entire Codex CLI startup loop while it sat around waiting for every single Model Context Protocol server to report back. Even if you just wanted to edit a local file!

Ethan Park

Exactly. Well, Codex version 0.147.0 finally fixes that whole mess.

Maya

Yeah, they upgraded the underlying MCP stack to rmcp version 3.0.0, and added opt in support for the new MCP 2026 07 28 specification. That moves things away from those rigid stateful connections to a stateless stdio serving model.

Ethan Park

Wait, so how does that actually play out in real time when you launch it? Like, what happens under the hood in pull request 35937?

Maya

Okay, so pull request 35937 implements non blocking server initialization. That means native tools like your local bash commands or file editing can run immediately while the remote or background MCP connections finish booting up in the background.

Ethan Park

What about the tools themselves? If the server is still booting, does Codex know what functions are available yet?

Maya

That is where pull request 35590 comes in! It exposes cached tool definitions right away, before the server process finishes spawning. So you do not have to wait three seconds just to see what tools you have available.

Ethan Park

Ah, so the UI feels instant. But what happens when you connect to a huge enterprise server that has hundreds of custom tools? In the past, that would just dump a massive JSON schema right into your prompt context, right?

Maya

Yes! It would completely trash your context window budget and send token costs through the roof. But 0.147.0 introduces paginated discovery for schemas. Instead of a monolithic single payload tool schema dump, the discovery is streamed in chunks as needed. It stops context truncation dead in its tracks.

Chapter 2

Multi Round Elicitation, Legacy Traps, and TUI Polish

Ethan Park

That context budget saving is massive. And speaking of interactive tool behavior, pull request 35725 brings support for multi round requests. So if a tool needs parameter clarification mid turn, it can actually ask you follow up questions instead of just failing or guessing.

Maya

Wait, what if you hit Control C halfway through one of those multi round conversations?

Ethan Park

That was actually a big issue before, but pull request 35836 specifically cleans up orphaned elicitation state when a user hits Control C to cancel. No ghost state left hanging in your session.

Maya

That is super clean. Now, if people want to turn on this new 2026 07 28 protocol version, how do they actually do it?

Ethan Park

You just set it in your dot codex slash config dot toml file under the protocol configuration block. But there is a catch you have to watch out for.

Maya

What kind of catch?

Ethan Park

If you are connecting through legacy stdio gateways, some of them still require persistent Mcp Session Id headers or those old stateful initialization sequences. If you force stateless on a server that expects state, connection will fail.

Maya

Right, right. I actually tested this background boot improvement yesterday with a really slow remote database connector that usually takes five or six seconds to respond. The difference in session feel is wild. I was able to run local git commands instantly without waiting on the remote database link.

Ethan Park

It makes a huge difference in flow. And hey, there are two small terminal polish updates in 0.147.0 that I really appreciate. First, pull request 36036 lets you name forked sessions directly inside the terminal user interface.

Maya

Oh nice! And what was the second one?

Ethan Park

Pull request 35962 upgraded Ratatui to version 0.30.2. It fixes those annoying cursor positioning glitches when rendering halfwidth Japanese sound marks in the terminal.

Maya

Love seeing those subtle quality of life fixes land alongside big protocol updates. Alright, I am off to go clean out my config file.