[BUG] Claude Desktop (Windows) unified session manager excludes large local MCP servers from the tool roster after Chat/Cowork merge
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
- 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.
- Update to the unified (Chat+Cowork) Claude Desktop build (1.24012.9).
- Fully quit and relaunch.
- Open a new Chat or Cowork session and list available MCP tools.
- Observe: small servers load; the large (~835-tool) servers are absent.
- 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.