Server tools, such as web search, web fetch, code execution and tool search, run on Anthropic's infrastructure. The call appears as a server_tool_use block followed by its result block in the same response, and you never send a tool_result for it.
Server tools and client tools
Client tools run in your application. That covers your own tools and Anthropic-schema tools such as bash and the text editor. Claude stops with stop_reason: "tool_use" and you send back a tool_result. Server tools run on Anthropic's side. Their call has an id starting srvtoolu_, and the result, for example a web_search_tool_result, follows in the same assistant turn.
Server tools can cost more than tokens. Web search, for example, is charged per search on top of token usage.
pause_turn
Server tools run in a loop on the API side. On a long turn the API may pause and return stop_reason: "pause_turn". This is not an error and the answer was not cut off. Send the request again with the returned content appended as the assistant message, and keep the same tools. A continued turn can pause again, so check stop_reason each time and cap the number of continuations.
Turns that mix server and client tools
Claude can call a server tool and one of your client tools in the same response, such as web_fetch with your run_command. The API then does not run the server tool yet. You get stop_reason: "tool_use", a server_tool_use block with no result block, and your tool_use block.
Run your tool and reply with a user message that holds only tool_result blocks, with the same tools array. The API runs the pending fetch, and the next response starts with its result block. Adding text after your results ends the assistant turn early and returns a 400 saying the web_fetch call has no matching result block. Never send a tool_result for the srvtoolu_ id.
Where the exam catches people
Believing pause_turn is a failure or a truncation: it is a paused server-side loop that you continue by sending the content back.
Believing a server_tool_use block with no result means the server tool failed: it is waiting for your client tool_result blocks.
Believing you can add a text note after the results on a mixed turn: any text ends the turn and causes a 400.
Believing server tools need a tool_result from you: you only answer client tool_use blocks.