{"version":"2.1.221","anchor":"mcp-status-surfaces-cached-servers","canonical_anchor":"mcp-status-surfaces-cached-servers","heading":"\/mcp status surfaces cached servers","tier":"notice","area":"MCP","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221\/e\/mcp-status-surfaces-cached-servers","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221","markdown":"### \/mcp status surfaces cached servers\n\nThe \/mcp view now counts cached servers separately so you can tell them from live connections.\n\n**What**\n\nCached MCP servers are now counted and reported as their own state in the inline `\/mcp` summary, the MCP dialog, and the SDK wait-for-servers result.\n\n**Details**\n\n- The inline `\/mcp` summary line counts cached servers separately, assembling a string containing the fixed fragment `${A} cached, `.\n- The dialog status mapper returns `\"cached\"` for cached entries.\n- The control\/SDK \"wait for MCP servers\" result schema gained an optional `cached: w.array(w.string()).optional()` list alongside connected, failed, stillPending, needsAuth and disabled.\n- Only meaningful on the MCP discovery cache path (tengu_mcp_discovery_cache); without cached entries the counts read as before.\n\n**Evidence**\n\n`if (Yt.type === \"cached\") return \"cached\";`\n\n- Flag `tengu_mcp_discovery_cache`: Not enough to say (read for one account on one subscription tier against v2.1.221; this account: no value returned, anonymous baseline: no value returned, compiled default: on) These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.\n- Area: MCP\n- Names: `\/mcp`\n- Tier: You'll notice\n- Useful: 3\/5\n- Signal: 0\/5"}