What are parallel tool calls?
When you give a model a set of tools (functions it can call), it normally responds either with a final answer or with a request to call one tool. **Parallel tool calling** is when the model returns multiple tool-call requests in the same assistant turn — for example, asking to call `get_weather(city)` and `get_traffic(route)` and `get_calendar(date)` simultaneously because none of them depends on the others.
Your application receives all three call requests, executes them concurrently, and then sends all three results back to the model in one message — each result tagged with the tool-call ID it answers. The model then reasons over the complete result set and produces its response or its next batch of calls.
The key insight is independence: parallel calls only make sense when the calls don't depend on each other's output. If call B needs the result of call A, those must run sequentially. The model is generally good at recognizing independence, but your prompt and tool descriptions strongly influence whether it batches correctly.
Most major providers support this. OpenAI's function calling and Anthropic's tool use both allow multiple tool calls per turn — see the OpenAI models docs and the Anthropic models overview for current support. The MCP ecosystem works the same way at the protocol level.