Under the hood
MCP tool schema validation logic consolidated into one shared function with clearer reasons
What
The logic that normalizes an MCP (Model Context Protocol) tool's input schema and checks whether the Anthropic API will accept it — previously duplicated in two places — is now a single shared function. It returns a structured result of either send or drop, with a cause of schema_unsupported, normalize_gated, or api_invalid when dropping.
Why
This is an internal cleanup that removes duplicated logic and gives clearer, consistent reasons when a tool schema is rejected, without changing what gets accepted or dropped.