{"version":"2.1.287","anchor":"tool-schema-sanitizer-drops-anyofoneof-branches-that-carry","canonical_anchor":"tool-schema-sanitizer-drops-anyofoneof-branches-that-carry","heading":"Some alternative options are now removed from tool input descriptions","tier":"internal","area":"Tools","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.287\/e\/tool-schema-sanitizer-drops-anyofoneof-branches-that-carry","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.287","markdown":"### Some alternative options are now removed from tool input descriptions\n\nWhen cleaning tool input schemas, Claude Code can now drop some anyOf or oneOf alternatives that carry a description\n\n**Unclear.** It is not clear which descriptions trigger the removal, or when this cleanup runs.\n\n**What**\n\nEvery tool Claude can use comes with a schema, a formal description of what inputs the tool accepts. Before sending these schemas to the API, Claude Code cleans them up. That cleanup now also looks at `anyOf` and `oneOf` lists. These are parts of a schema that list alternative shapes an input may take.\n\n- Alternatives whose description passes a certain check are removed from the list.\n\n- If no alternatives remain, the whole `anyOf` or `oneOf` entry is removed.\n\nThis extra cleanup runs only in some cases, not every time.\n\n**Why**\n\nThe tool definitions sent to the API, including those from MCP servers (external tool providers connected to Claude Code), can now be smaller than the original definitions. If a tool you added has inputs with several allowed shapes, some of those shapes may no longer reach the model.\n\n- Area: Tools\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 1\/5"}