mcp sdk tool call batching - can you send multiple tool calls in single request or is it always sequential
Building a workflow that needs to call 6-8 tools in parallel (independent data fetches from different apis) and MCP SDK 0.5.0 appears to execute tools sequentially even when calls are independent. Tested yesterday with batch of 8 file read operations - SDK processed them one at a time, total latency 940ms vs theoretical 180ms if they ran in parallel. SDK architecture suggests it should support concurrent execution (async tool handlers, asyncio event loop) but actual behavior is purely sequential. Is there a config flag to enable batching or does the SDK fundamentally not support this? Running Python 3.11.7, MCP SDK 0.5.0, tool handlers are all async def, no shared state between tools.
sequential only in 0.5.0
That's unfortunate - we were hoping to batch tool calls for performance on read-heavy workflows (search + filter + rank). Is there a technical reason the SDK doesn't support batching, or is it just not implemented yet? Curious if parallel execution with separate requests would give similar performance or if the serialization overhead kills it.
sequential only in 0.5.0 yeah. we wanted batching for read-heavy workflows (search + filter + aggregate) and had to build a wrapper that fires tools in parallel via asyncio then collects results. sdk has no native batching support at all