{"version":"2.1.221","anchor":"mcp-tool-construction-extracted-and-reused-for-cached-server","canonical_anchor":"mcp-tool-construction-extracted-and-reused-for-cached-server","heading":"MCP tool construction extracted and reused for cached servers","tier":"internal","area":"MCP","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221\/e\/mcp-tool-construction-extracted-and-reused-for-cached-server","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221","markdown":"### MCP tool construction extracted and reused for cached servers\n\nMCP tools now get built the same way whether they come fresh from a server or from cache.\n\n**What**\n\nTurning a tools\/list response into Claude Code tool objects is now one shared function, which also serves servers rebuilt from a persisted cache.\n\n**Details**\n\n- The extracted function covers schema normalization, skipping API-incompatible schemas, degraded-mode telemetry, permission wrappers and auto-background.\n- It takes a source mode; the live listing path passes \"live\".\n- A second caller builds the same tools from a cache entry carrying a saved-at timestamp.\n- The zero-tools degraded event is now emitted only on the live path.\n\n**Evidence**\n\n`cacheSavedAt`\n\n- Area: MCP\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 0\/5"}