[BUG] Claude Desktop (Windows) unified session manager excludes large local MCP servers from the tool roster after Chat/Cowork merge

Status Open
Maintainer reply None cached
Activity 0 comments · opened Jul 24, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

After the Chat/Cowork unification update, Claude Desktop (Windows, 1.24012.9) no
longer surfaces my large locally-configured stdio MCP servers in ANY session — Chat
mode or Cowork mode, across all projects. Seven servers defined in
claude_desktop_config.json, each exposing ~835 tools, are silently excluded from the
session tool roster. Smaller stdio servers from the same config file (GitHub, n8n, a
Docker MCP, ~24–50 tools each) still load and work normally. The seven excluded
servers are exactly the largest ones by tool count.

This was not occuring in previous versions.

What Should Happen?

All enabled stdio MCP servers in claude_desktop_config.json should be available in new
sessions, as they were before the Chat/Cowork unification — or, if a tool-count/roster
limit now exists, it should be documented and configurable, with a way to exempt
specific servers.

Error Messages/Logs

# Servers are healthy — mcp-server-hl-zt.log:
Server started and connected successfully
... started with 835 tools
(client) Message from client: {"method":"tools/list"...}
(server) result with 835 tools returned

# Client session roster — main.log:
[LocalAgentModeSessionManager] mcpServerStatus returned 26 servers (26 with tools)
# None of the seven ~835-tool servers appear in this roster.
# "name":"hl-..." occurs 0 times across rosters of 9, 10, and 26 servers logged.
# The small stdio servers (github-*, n8n, MCP_DOCKER, go-agency) DO appear.

# Proof the servers themselves work: a session predating the update calls them fine,
# e.g. a get_location request returns success:true with valid data (HTTP 200).

Steps to Reproduce

  1. On Windows, configure several stdio MCP servers in

%APPDATA%\Claude\claude_desktop_config.json — a mix of small (~30 tools) and large
(~800+ tools) servers.

  1. Update to the unified (Chat+Cowork) Claude Desktop build (1.24012.9).
  2. Fully quit and relaunch.
  3. Open a new Chat or Cowork session and list available MCP tools.
  4. Observe: small servers load; the large (~835-tool) servers are absent.
  5. main.log shows [LocalAgentModeSessionManager] mcpServerStatus returning a roster

that omits the large servers while including the small ones.

Claude Model

Not sure / Multiple models

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

Claude Desktop for Windows, 1.24012.9 (Store/MSIX build)

Platform

Other

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

  • The servers are healthy: per-server logs show successful startup + tools/list, and a

single continuously-running session that predates the update can still call all seven
successfully. So this is not a server, credential, network, or config-syntax problem.

  • Behavior is consistent with the unified session manager (LocalAgentModeSessionManager)

applying an undocumented per-server or per-roster tool-count filter that drops the
largest servers when a session roster is assembled. The excluded set is exactly the
seven largest servers; every smaller server loads.

  • Only a continuously-live pre-update session retains the servers; every newly created

or reopened session lacks them.

  • Requesting: confirmation of whether such a limit/filter exists, its value, a way to

raise it or exempt specific servers, and that this be treated as a regression.

View original on GitHub ↗