Cline's v4.1.1, shipped July 31, contains one line that matters more than its size suggests. From the release notes:
native MCP tool calls now route by server name instead of a random in-memory uid, so routing survives restarts and server list changes.
Read past the plumbing and it's a reliability fix for exactly the failure mode that bites self-hosted agents: a tool call that works until the process restarts, then quietly stops resolving.
The bug hiding in "random in-memory uid"#
The old scheme bound a native MCP tool call to an id the client minted when it connected to a server. That id lived only in memory. So the binding was implicitly a promise that nothing would interrupt the connection — no crash, no resume, no edit to the configured server list. Real agents break that promise constantly. An unattended run crashes and restarts. A laptop sleeps. You add an MCP server to your config halfway through a project and the list reorders.
When any of that happened, the ephemeral id was gone, and the next tool call could point at nothing. The tool was configured, the server was running, and the invocation still failed — the worst kind of bug, because everything looks connected.
Keying on the server name removes the promise entirely. The name is a stable identifier you already declare in your MCP config; it doesn't change when the process does. After a restart, the agent reconnects to the same logical server and the call lands. Routing that used to be valid for exactly one uninterrupted session is now valid across the breaks that define how agents actually run.
The same move the spec just made, on the other side#
The timing is the interesting part. Three days earlier, on 2026-07-28, MCP shipped its largest-ever spec revision, rewriting the protocol from stateful and session-based into stateless request/response — removing the initialization handshake and the Mcp-Session-Id header so a remote server no longer has to carry per-client session state.
Line the two up and they're the same idea pointed in opposite directions:
- Server side (the spec): stop requiring a session. A server shouldn't depend on state tied to one client connection, because that state is what makes it hard to run behind a plain load balancer and hard to recover after a blip.
- Client side (Cline 4.1): stop routing through a throwaway uid. A client shouldn't bind a tool call to state that dies with the connection.
Both are a rejection of ephemeral, per-connection identity as the thing behavior hangs off. The protocol stopped asking servers to remember you; Cline stopped asking itself to remember a random number. The result on both ends is a system that reconnects cleanly instead of depending on something that doesn't survive a break — which is the only way an agent that runs longer than one session can stay reliable. (The TypeScript SDK's own v2 migration is the third piece of the same week's stateless turn.)
The rest of 4.1, briefly#
The MCP change leads, but the release carried three other items worth a self-hoster's attention:
- A combined A/B package. The stable extension is now a single VSIX bundling both the legacy build and the new SDK-based one, with a loader that opts users into the new extension via staged remote rollout — starting at 1%. If you pin versions for reproducibility, know that which code path runs is now partly a rollout decision, not just a version number.
/undoactually undoes. The CLI (v3.0.49, Aug 2) fixed a checkpoint bug where the picker counted tool results as user turns and aborted the restore, and implemented full workspace rewind: files Cline created during a task come back at their checkpoint-time content, and files created after the checkpoint are removed. For agent runs that touch a lot of files, that's the difference between a real rollback and a partial one.- Ollama gets 5 minutes to wake up. The same CLI raised Ollama's response-start timeout from 30 seconds to 5 minutes, so cold-loading a large local model no longer errors out mid-load — a small fix that matters if you run a local model behind your agent.
What to actually do#
Nothing, to get the new routing — it's internal, and native MCP calls key on the server name you already have in config. But treat that name as an interface now. Give your MCP servers clear, stable names, and don't rename them casually: the name is the durable routing key, the way a hostname is. If you're choosing where to run agents that lean on MCP tools, this is a quiet point in Cline's favor for self-hosted, long-running work — the tool layer now survives the restarts those runs are made of.



