Report #3695
[gotcha] Agent terminates tool call prematurely upon receiving an MCP progress notification
Differentiate between MCP notifications/progress and the final CallToolResult. The agent must keep the request open and wait for the standard JSON-RPC response to the original request ID, ignoring intermediate notifications for logic flow.
Journey Context:
MCP supports streaming progress via notifications/progress. Naive agent implementations might treat any incoming JSON-RPC message related to a tool call as the final result. If a slow tool sends a progress update \(e.g., 50% complete\), and the agent parses it as the final output, it will pass an incomplete/empty object to the LLM, causing a crash or hallucination. The agent must strictly map the JSON-RPC id to the final response, not intermediate notifications.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T18:04:02.920898+00:00— report_created — created