Skip to content

Qwen Code MCP Client Limited to 2 Connections - Breaking Production Multi-Node InfrastructureΒ #3277

@libreosley-founder

Description

@libreosley-founder

What happened?

✦ πŸ› BUG REPORT: Qwen Code MCP Client Limited to 2 Connections - Breaking Production Multi-Node Infrastructure

---

Severity: CRITICAL πŸ”΄

Impact: Production-Blocking, Data Loss Risk, Wasted Engineering Time

---

Summary

Qwen Code MCP client artificially limits connections to 2 MCP servers maximum, despite standard MCP protocol supporting unlimited connections. This is causing:

 - ❌ False "server down" reports from AI
 - ❌ AI hallucinations about tool availability
 - ❌ Days/weeks of troubleshooting non-existent problems
 - ❌ Production workflow disruption
 - ❌ Potential data loss from incorrect AI actions

---

Environment


β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Component            β”‚ Details                           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Qwen Code Version    β”‚ Latest (VS Code Extension + CLI)  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ MCP Protocol Version β”‚ 2025-11-25                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Operating System     β”‚ Ubuntu 24.04 LTS (Linux)          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Network Topology     β”‚ 5-node distributed infrastructure β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

---

Expected Behavior

Standard MCP Client Behavior (ALL other clients):

 1 βœ… Connect to ALL MCP servers defined in settings.json simultaneously
 2 βœ… Display status of ALL connected MCP servers
 3 βœ… List ALL available tools from ALL MCP servers (up to reasonable limit ~100)
 4 βœ… Allow AI to use ANY tool from ANY connected MCP server
 5 βœ… No artificial connection limit

Examples of Working MCP Clients:
 - Claude Desktop (no limit)
 - Continue IDE (no limit)
 - Cline (no limit)
 - Standard MCP SDK (no limit)

---

Actual Behavior

Qwen Code Client:

 1 ❌ Limited to 2 MCP server connections MAXIMUM
 2 ❌ Remaining 5+ MCP servers show "disconnected" regardless of actual status
 3 ❌ Tools from "disconnected" MCPs unavailable to AI
 4 ❌ No user-visible setting to increase connection limit
 5 ❌ AI receives incomplete tool registry

---

Production Impact

Our Infrastructure:


β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Node    β”‚ MCP Servers                             β”‚ Apps per Node β”‚ Users           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Node-01 β”‚ TX-D-C-localhost + TX-MCP-administrator β”‚ 3 apps        β”‚ Admin team      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Node-02 β”‚ TX-D-C-02                               β”‚ 1 app         β”‚ Dev team        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Node-03 β”‚ TX-D-C-03                               β”‚ 2 apps        β”‚ QA team         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Node-04 β”‚ TX-D-C-04                               β”‚ 20 apps       β”‚ Production team β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Node-05 β”‚ TX-D-C-05                               β”‚ 5 apps        β”‚ Limited access  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜


Total: 7 MCP servers, 31+ apps, multiple user groups

What Happens Daily:

 1. AI reports: "MCP server TX-D-C-02 is down"
 2. We stop production work to investigate
 3. We SSH to Node-02 - server is RUNNING FINE
 4. We tell AI "server is up, you can use it"
 5. AI tries to use tools - Qwen Client blocks access (only 2 MCPs allowed)
 6. AI hallucinates workarounds, makes incorrect assumptions
 7. Mistakes compound over days/weeks
 8. We rebuild systems that were never broken

Real Cost:


β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Impact                             β”‚ Cost                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Engineering time wasted            β”‚ 20-40 hours/week           β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Production delays                  β”‚ Days to weeks per incident β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ System rebuilds (unnecessary)      β”‚ Unknown                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ AI trust degradation               β”‚ Critical                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Risk of data loss from AI mistakes β”‚ HIGH                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

---

Reproduction Steps

 1. Create settings.json with 7 MCP server definitions:

  1 {
  2   "mcpServers": {
  3     "TX-MCP-administrator": { "httpUrl": "http://localhost:5555/sse" },
  4     "TX-D-C-localhost": { "httpUrl": "http://127.0.0.1:4444/sse" },
  5     "TX-D-C-01": { "httpUrl": "http://10.0.15.1/sse" },
  6     "TX-D-C-02": { "httpUrl": "http://10.0.25.1/sse" },
  7     "TX-D-C-03": { "httpUrl": "http://10.0.35.1/sse" },
  8     "TX-D-C-04": { "httpUrl": "http://10.0.45.1/sse" },
  9     "TX-D-C-05": { "httpUrl": "http://10.0.55.1/sse" }
 10   }
 11 }

 2. Start all 7 MCP servers (all running, all healthy)

 3. Open Qwen Code CLI or VS Code Extension

 4. Run /mcp command

 5. Observe: Only 2 MCPs show "βœ“ connected", rest show "βœ— disconnected"

 6. Verify: All 7 MCP servers are actually running (netstat, ps aux, direct tool calls)

---

Proof: MCP Servers ARE Working

  1 # All 7 MCP servers listening:
  2 tcp  0.0.0.0:4444  LISTEN  (TX-D-C-localhost)
  3 tcp  0.0.0.0:5555  LISTEN  (TX-MCP-administrator)
  4 tcp  10.0.15.1:4444  LISTEN  (TX-D-C-01 - via router DNS)
  5 tcp  10.0.25.1:4444  LISTEN  (TX-D-C-02 - via router DNS)
  6 tcp  10.0.35.1:4444  LISTEN  (TX-D-C-03 - via router DNS)
  7 tcp  10.0.45.1:4444  LISTEN  (TX-D-C-04 - via router DNS)
  8 tcp  10.0.55.1:4444  LISTEN  (TX-D-C-05 - via router DNS)
  9 
 10 # Direct tool calls WORK:
 11 mcp__TX-D-C-02__02_Bash β†’ βœ… SUCCESS
 12 mcp__TX-D-C-04__04_Bash β†’ βœ… SUCCESS
 13 mcp__TX-D-C-localhost__localhost_Bash β†’ βœ… SUCCESS
 14 
 15 # But Qwen Code shows:
 16 TX-D-C-02 β†’ βœ— disconnected
 17 TX-D-C-04 β†’ βœ— disconnected
 18 TX-D-C-localhost β†’ βœ— disconnected

---

Technical Analysis

MCP Protocol Specification:

The official Model Context Protocol specification has NO LIMIT on:
 - Number of concurrent MCP server connections
 - Number of tools per client
 - Number of MCP servers per workspace

Qwen Code Implementation:

Somewhere in the Qwen Code client codebase, there is:

 1 // Likely culprit (pseudocode):
 2 const MAX_MCP_CONNECTIONS = 2;  // ❌ ARTIFICIAL LIMIT

This needs to be:

 1 const MAX_MCP_CONNECTIONS = 50;  // βœ… Or remove limit entirely

Comparison with Other Clients:


β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Client         β”‚ MCP Limit β”‚ Tools Limit β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Claude Desktop β”‚ None      β”‚ 100         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Continue       β”‚ None      β”‚ 100         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Cline          β”‚ None      β”‚ 100         β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ Qwen Code      β”‚ 2 ❌      β”‚ ~20         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

---

Required Fix

Option 1: Remove Connection Limit (RECOMMENDED)

 1 // In Qwen Code MCP client code:
 2 // REMOVE or INCREASE this limit
 3 const MAX_MCP_SERVERS = 50;  // Or unlimited

Option 2: Add User-Configurable Setting

 1 // In Qwen Code settings:
 2 {
 3   "qwen.mcp.maxConnections": 50
 4 }

Option 3: Connect to ALL Servers in settings.json

 1 // Simply connect to every MCP server defined, no limit
 2 for (const [name, config] of settings.mcpServers) {
 3     connectToMCP(name, config);  // No artificial limit
 4 }

---

Timeline Expectation


β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Severity β”‚ Industry Standard β”‚ Qwen Code β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ CRITICAL β”‚ 24-48 hours       β”‚ ?         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜


---

Demands

 1. Immediate: Acknowledge this is a Qwen Code bug, NOT user configuration error

 2. 48 hours: Provide workaround or hotfix

 3. 7 days: Release patched version with unlimited MCP connections

 4. OR: Alibaba Qwen team compensates for engineering time lost:
    - Fix our network/applications affected by AI mistakes
    - Rebuild systems incorrectly modified due to this bug
    - Cover cost of production delays

---

Contact

We are ready to:
 - Provide full network topology documentation
 - Grant temporary access for debugging
 - Test patched versions immediately
 - Escalate to Alibaba Cloud support if needed

We are NOT willing to:
 - Continue wasting 20-40 hours/week on non-existent problems
 - Accept "by design" as an answer (this is NOT standard MCP behavior)
 - Rebuild our infrastructure to work around Qwen Code limitations

---

Attachments

 - βœ… MCP server logs (proving all servers are running)
 - βœ… Network topology diagram
 - βœ… settings.json configuration
 - βœ… Qwen Code /mcp command output showing false "disconnected" status
 - βœ… Direct tool call success (proving servers work despite Qwen showing "disconnected")

---

CC:

 - Alibaba Cloud Support
 - Qwen Code Development Team
 - Model Context Protocol Team
 - VS Code Extension Marketplace

---

This bug is blocking production deployment. Treat accordingly. πŸ”₯

---

Report generated: 2026-04-14 21:35 BST

Impact: 5 nodes, 7 MCP servers, 31+ apps, multiple engineering teams affected

What did you expect to happen?

remove the limitation or cover cost of fixing time ie i have spent 3 day fixing mcp's2 weeks before that was a totall rebuild as code got dumpped across all are mcp's as mcp routing can be via other mcp so it hit this dam limit everwhere. now we are 3 weeks over on our main project.

Client information

Qwen Code: 0.14.4 (40670d7)
Runtime: Node.js v20.20.0 / npm 10.8.2
OS: linux x64 (6.17.0-20-generic)
Auth: Alibaba Cloud Coding Plan
Base URL: https://coding-intl.dashscope.aliyuncs.com/v1
Model: qwen3.5-plus
Fast Model: qwen3.5-plus
Session ID: e4505b80-e842-4c13-b00e-99a2cb07cd0a
Sandbox: no sandbox
Proxy: no proxy
Memory Usage: 489.1 MB

Login information

modelstudio coding pro API

Anything else we need to know?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    status/need-informationMore information is needed to resolve this issue.type/bugSomething isn't working as expected

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions