Skip to content

🤖 MCP: Misconfigured servers hang indefinitely with no user feedback #1555

@ammar-agent

Description

@ammar-agent

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.jsonc to 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

  1. No startup timeout: MCP server initialization waits indefinitely for JSON-RPC response. A server that never responds (e.g., wrong command format) blocks forever.

  2. 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 });
    }
  3. No initialization feedback: User has no visibility into MCP startup progress or failures.

Proposed Solution

  1. Add startup timeout (~60s to allow for npx package downloads)
  2. Surface MCP failures to chat via a warning banner when servers fail to start
  3. Consider: Claude Desktop format compatibility (command + args array)

Reproduction

  1. Create .mux/mcp.jsonc with a non-responsive command:
    { "servers": { "broken": { "command": "sleep 60" } } }
  2. Send a message in the workspace
  3. Observe: chat hangs indefinitely

Generated with mux • Model: anthropic:claude-opus-4-5 • Thinking: high • Cost: $6.05

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-alignmentPR or Issue needs contributor alignment on design before implementation

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions