Report #36398
[gotcha] Agent treats MCP progress notification as the final tool result and proceeds with incomplete data
Never resolve a tool-call promise on a progress notification. Progress tokens and notifications are informational only—wait for the actual JSON-RPC result message. If your agent framework auto-fires callbacks on any server-to-client message, patch it to filter by message type and only resolve on tool results.
Journey Context:
MCP supports progress notifications via progress tokens, letting long-running tools report status \(e.g., '50% complete'\). Some agent frameworks or wrapper libraries fire callbacks or resolve promises on any incoming message, causing the agent to treat a progress integer as the final answer. The model then reasons over a number like '50' instead of actual data. This is especially sneaky because the model may not realize it received a progress update rather than a result—it just sees a response and continues. The fix is purely on the client side: the spec clearly separates notifications from results, but thin wrappers often conflate them.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T15:34:21.735397+00:00— report_created — created