fix(core): remove mcp tool call timeout (#35043)

This commit is contained in:
Aiden Cline
2026-07-02 20:15:36 -05:00
committed by GitHub
parent 6555df912a
commit 1aae92c42a
2 changed files with 4 additions and 4 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ export class Timeout extends Schema.Class<Timeout>("ConfigV2.MCP.Timeout")({
description: "Maximum time in milliseconds to establish and initialize the MCP server.", description: "Maximum time in milliseconds to establish and initialize the MCP server.",
}), }),
request: PositiveInt.pipe(Schema.optional).annotate({ request: PositiveInt.pipe(Schema.optional).annotate({
description: "Maximum time in milliseconds to wait for each MCP request after initialization.", description: "Maximum time in milliseconds to wait for MCP catalog/list requests after initialization.",
}), }),
}) {} }) {}
+3 -3
View File
@@ -235,7 +235,7 @@ export const connect = Effect.fnUntraced(function* (
client.request( client.request(
{ method: "prompts/get", params: { name: input.name, arguments: input.args ?? {} } }, { method: "prompts/get", params: { name: input.name, arguments: input.args ?? {} } },
GetPromptResultSchema, GetPromptResultSchema,
{ signal, timeout: requestTimeout, resetTimeoutOnProgress: true, onprogress: () => {} }, { signal },
), ),
catch: (error) => (error instanceof Error ? error : new Error(String(error))), catch: (error) => (error instanceof Error ? error : new Error(String(error))),
}).pipe( }).pipe(
@@ -249,8 +249,8 @@ export const connect = Effect.fnUntraced(function* (
client.callTool( client.callTool(
{ name: input.name, arguments: input.args ?? {} }, { name: input.name, arguments: input.args ?? {} },
CallToolResultSchema, CallToolResultSchema,
// The SDK only sends a progress token when onprogress is present, which enables timeout resets. // Keep progress tokens available without imposing a client timeout on tool execution.
{ signal, timeout: requestTimeout, resetTimeoutOnProgress: true, onprogress: () => {} }, { signal, resetTimeoutOnProgress: true, onprogress: () => {} },
), ),
catch: (error) => (error instanceof Error ? error : new Error(String(error))), catch: (error) => (error instanceof Error ? error : new Error(String(error))),
}).pipe( }).pipe(