-
Notifications
You must be signed in to change notification settings - Fork 47
Description
Problem
When a user misconfigures an MCP server in .mux/mcp.jsonc, the chat can hang indefinitely with no feedback. The user reported:
I've manually edited the
.mux/mcp.jsoncto try to set up Playwright MCP using the Claude Desktop format:"playwright": { "command": "npx", "args": ["@playwright/mcp@latest"] }Instead of mux's expected format:
"playwright": { "command": "npx @playwright/mcp@latest" }It took a minute to figure out the misconfiguration because there was no clear error. When I tried to send a message, the request simply hung.
Root Causes
-
No startup timeout: MCP server initialization waits indefinitely for JSON-RPC response. A server that never responds (e.g., wrong command format) blocks forever.
-
Errors are swallowed: In
aiService.ts, MCP errors are caught and logged but not surfaced to the user:} catch (error) { log.error("Failed to start MCP servers", { workspaceId, error }); }
-
No initialization feedback: User has no visibility into MCP startup progress or failures.
Proposed Solution
- Add startup timeout (~60s to allow for
npxpackage downloads) - Surface MCP failures to chat via a warning banner when servers fail to start
- Consider: Claude Desktop format compatibility (
command+argsarray)
Reproduction
- Create
.mux/mcp.jsoncwith a non-responsive command:{ "servers": { "broken": { "command": "sleep 60" } } } - Send a message in the workspace
- Observe: chat hangs indefinitely
Generated with mux • Model: anthropic:claude-opus-4-5 • Thinking: high • Cost: $6.05