[BUG] [Cowork] MCP extension tools unavailable on first message of every task until app restart after hot-install
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 installing a custom MCP extension (.mcpb bundle) in Claude Desktop without restarting the app, extension tools are not available on the first message of every new task. They become available starting from the second message onward.
This persists across all new tasks until Claude Desktop is fully restarted. After a restart, tools are available from the first message in every task as expected.
What Should Happen?
After installing an MCP extension, tools should be available from the first message in every new task, without requiring an app restart.
Error Messages/Logs
Steps to Reproduce
- Open Claude Desktop (already running)
- Install a custom MCP extension via
.mcpbfile (drag & drop or from settings) - Create a new task
- Send a message that should trigger one of the extension's tools
- Observe: Claude does not see the extension's tools — they are not listed and not called
- Send a second message in the same task
- Observe: Tools are now available and work correctly
- Create another new task — repeat from step 4: same behavior (tools missing on first message)
- Restart Claude Desktop completely
- Create a new task, send a message
- Observe: Tools are available from the first message — problem is gone
Claude Model
Not sure / Multiple models
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
1.2.234
Platform
Other
Operating System
macOS
Terminal/Shell
Other
Additional Information
Environment
- App: Claude Desktop (Cowork)
- Claude Desktop version: (fill in)
- OS: macOS (Apple Silicon) & Windows (x86)
- MCP SDK:
@modelcontextprotocol/sdk1.29 - Extension type:
.mcpbbundle, binary server (Bun-compiled, stdio transport)
Analysis
The MCP server starts correctly — tools are registered synchronously before server.connect() and the stdio transport is connected immediately. The server responds to tools/list as expected (confirmed by tools working from the 2nd message onward).
The issue appears to be that after a hot-install (without restart), Claude Desktop queries tools/list before the MCP server process has fully started for each new task. On restart, the server process is started once during app boot and stays warm, so subsequent tasks get an immediate response.
This suggests that Claude Desktop's LocalMcpServerManager either:
- Spawns the MCP server process lazily per-task (instead of keeping it alive) after hot-install, OR
- Has a timeout for
tools/listthat is too short for the initial cold start of compiled binaries
Related Issues
- #32552 — LocalMcpServerManager doesn't reconnect after extension settings change
- #11175 — MCP Tools Not Available Despite Being Loaded Successfully
- #31864 — Auto-update creates silent MCP extension conflict
Workaround
Restart Claude Desktop after installing the extension. We include this in our extension description:
After installation, restart Claude Desktop for best experience.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗