[BUG] [Cowork] MCP extension tools unavailable on first message of every task until app restart after hot-install

Resolved 💬 3 comments Opened Apr 2, 2026 by jnakielski-flyps Closed Apr 6, 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 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

  1. Open Claude Desktop (already running)
  2. Install a custom MCP extension via .mcpb file (drag & drop or from settings)
  3. Create a new task
  4. Send a message that should trigger one of the extension's tools
  5. Observe: Claude does not see the extension's tools — they are not listed and not called
  6. Send a second message in the same task
  7. Observe: Tools are now available and work correctly
  8. Create another new task — repeat from step 4: same behavior (tools missing on first message)
  9. Restart Claude Desktop completely
  10. Create a new task, send a message
  11. 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/sdk 1.29
  • Extension type: .mcpb bundle, 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/list that 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.

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗