From 52ef6fb630cab3f8db294a0d61219961c6a5851c Mon Sep 17 00:00:00 2001 From: Elango Date: Fri, 16 Jan 2026 16:15:07 +0530 Subject: [PATCH] feat: change resetTimeoutOnProgress default to true Long-running MCP tools that send progress notifications should keep connections alive by default. This changes the default behavior so clients automatically reset their timeout when receiving progress updates. Previously, clients would timeout after 60 seconds even if the server was actively sending progress notifications, unless they explicitly set resetTimeoutOnProgress: true. --- packages/core/src/shared/protocol.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/shared/protocol.ts b/packages/core/src/shared/protocol.ts index 90c6116e0..b8a8051e8 100644 --- a/packages/core/src/shared/protocol.ts +++ b/packages/core/src/shared/protocol.ts @@ -135,7 +135,7 @@ export type RequestOptions = { /** * If true, receiving a progress notification will reset the request timeout. * This is useful for long-running operations that send periodic progress updates. - * Default: false + * Default: true */ resetTimeoutOnProgress?: boolean; @@ -1194,7 +1194,7 @@ export abstract class Protocol cancel(McpError.fromError(ErrorCode.RequestTimeout, 'Request timed out', { timeout })); - this._setupTimeout(messageId, timeout, options?.maxTotalTimeout, timeoutHandler, options?.resetTimeoutOnProgress ?? false); + this._setupTimeout(messageId, timeout, options?.maxTotalTimeout, timeoutHandler, options?.resetTimeoutOnProgress ?? true); // Queue request if related to a task const relatedTaskId = relatedTask?.taskId;