Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial

Claude Code v2.1.299 ·

mcp serve gets new host options, and its session tunnel tracks its runner and token expiry

mcp serve adds a minimum-version variable and managed-hook tools, and --session-tunnel watches its runner and stops when its stated token expiry passes

Group of 5 Use it now No documentation found Improvements
JSON All of v2.1.299
Use it nowTier: how much it should matter to you
4Useful: my rating, 1 to 5
3Signal: worth watching, 1 to 5
MCP ServeArea: what it touches
ImprovementsKind: in v2.1.299,
What probably matters to youSection of the release

Unclear Whether the value given to --session-tunnel must now be written differently is not stated.

What

mcp serve runs Claude Code as an MCP server that another program can connect to and use for tools. --session-tunnel is the mode where it serves those tools to a remote session through a tunnel.

  • CLAUDE_CODE_MCP_SERVE_INTERFACE_MIN_VERSION is a new environment variable. If its value differs from the daemon's min_version, the launch version is ignored and a log line records it.
  • CLAUDE_CODE_MCP_SERVE_AUTH_TOKEN is now cleared once it has been read.
  • A new RunManagedHook tool runs command hooks, and SetProjectMcpServerEnabled is added.
  • Tunnel startup now builds a launcher through dialingLauncherFrom from the transport and port, and stops with its refusal text. Before, it parsed a session-tunnel envelope with parseSessionTunnelEnvelope and sessionTunnelRefusal.
  • --session-tunnel reads a runner with pid and proc_start. The runner is the program that started the tunnel. The tunnel refuses to start if CCR_AGENT_PROXY_ENABLED is set, or if it cannot see the runner ("--session-tunnel cannot see the runner that started it"). It exits once the runner is gone.
  • --session-tunnel now takes session_token_expires_at and shuts down with "the session_token_expires_at it was started with has passed". Before, the only message was "the token has expired".
  • A permanent relay failure now reports either stated_expiry_passed or token_expired instead of a single expired reason. The stated expiry is used as a fallback.

Why

This mostly matters to programs that embed mcp serve. A tunnel now ends when the program that started it is gone or when its stated token expiry passes, and its reason says which expiry ended it.

Read from
Names in the bundle--session-tunnel
How sure we are
Something disagreesSomething we can check disagrees with this entry, or the writer said they could not settle it.
The writer flagged doubtWhether the value given to `--session-tunnel` must now be written differently is not stated.

See this entry in the whole of v2.1.299 →

Feedback