Report #17339
[gotcha] Stateful MCP server returns incorrect data when agent makes concurrent tool calls
Ensure MCP servers are stateless where possible, or strictly serialize tool calls from the client side. If state is required, use unique request IDs or session tokens passed in the tool arguments to isolate state.
Journey Context:
Developers often build MCP servers with in-memory state \(e.g., current working directory, loaded dataframe\). If an LLM agent parallelizes independent tool calls \(which some frameworks do to save time\), the server's state machine gets corrupted because the execution order of concurrent requests is non-deterministic. State must be explicitly managed via arguments or serialized execution, as MCP JSON-RPC does not inherently guarantee execution order for concurrent requests on a single server instance.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T05:11:49.404800+00:00— report_created — created