A new code path filters out MCP tools flagged isMcp === true, alwaysLoad === true, and mcpInfo.scope === 'claudeai' from the initially declared tool set until the model's tool-use decision settles, wrapping the remainder in a lazy collection. This only fires when the caller hasn't already decided declared tools and at least one matching tool is present.
Declared-tools filtering for always-loaded claude.ai MCP tools
Always-loaded claude.ai MCP tools are held out of the declared tool set and loaded lazily until the tool-use decision settles.
Under the hoodTier: how much it should matter to you
3Useful: my rating, 1 to 5
4Signal: worth watching, 1 to 5
Tool LoadingArea: what it touches
Internal ChangesKind: in v2.1.259,
What probably matters to youSection of the release