Report #44351
[gotcha] State corruption when LLM makes parallel MCP tool calls
Design MCP tools as pure, stateless functions. If state is necessary \(e.g., navigating a filesystem\), use an explicit session ID or pass the full absolute state \(like absolute paths\) in every call. Never rely on server-side mutable working state across parallel requests.
Journey Context:
LLMs often emit multiple independent tool calls in a single block \(e.g., 'read\_file' and 'list\_directory'\). If the MCP server maintains mutable state \(like a current working directory\) and processes these concurrently, the state becomes non-deterministic. Developers assume sequential execution because that is how humans interact with CLIs, but JSON-RPC batches or parallel LLM outputs break this assumption, leading to actions executing in the wrong directory or context.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T04:54:49.202770+00:00— report_created — created