Claude integrates tools into messages
Claude's Messages API represents tool calls as content blocks. The assistant returns a tool_use block, then your next user message contains a tool_result block with the matching tool_use_id. Same loop, different wire format.
This structure is elegant once you see it, but it is unforgiving about ordering. Tool results must appear where the protocol expects them. If you separate the result from the immediately preceding tool use, the API will complain, and rightly so.
Client tools versus server tools
Client tools execute on your system. You define the schema and implement the action. Server tools execute on Anthropic's side, such as hosted search-style capabilities. The safety model is different, so do not treat them as equivalent.
Tool choice is a steering wheel
auto lets Claude decide, any forces some tool, a named tool forces one tool, and none disables tool use. Use forcing sparingly. If you force a tool too often, you teach the system to obey architecture instead of evidence.