Report #5526
[gotcha] Stateful MCP servers diverge from the LLM's context, causing tools to act on stale data
Design MCP servers as stateless wrappers, passing all required state \(like file paths, session IDs, or cursor positions\) as explicit tool arguments on every call. Avoid relying on server-side session state.
Journey Context:
It is tempting to build an MCP server that maintains a 'current working directory' or 'active database connection' state. However, LLMs are stateless; if a tool call fails, the LLM might backtrack, or the user might undo an action. The server's internal state diverges from the LLM's context history, leading to tools operating on the wrong files or databases. Passing state explicitly in arguments ensures the LLM's context is the single source of truth.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T21:35:59.188370+00:00— report_created — created