From 511855abb829bac250652a80433fc85348dd40ab Mon Sep 17 00:00:00 2001 From: amasen02 Date: Sat, 5 Sep 2026 16:18:27 +0530 Subject: [PATCH 1/3] fix(client): default resultSchema to CallToolResultSchema in getTaskResult (#2742) --- src/experimental/tasks/client.ts | 6 ++++-- test/client/index.test.ts | 10 +++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/experimental/tasks/client.ts b/src/experimental/tasks/client.ts index f62941dc8f..274787fa6e 100644 --- a/src/experimental/tasks/client.ts +++ b/src/experimental/tasks/client.ts @@ -178,13 +178,15 @@ export class ExperimentalClientTasks< * Retrieves the result of a completed task. * * @param taskId - The task identifier - * @param resultSchema - Zod schema for validating the result + * @param resultSchema - Zod schema for validating the result (defaults to CallToolResultSchema) * @param options - Optional request options * @returns The task result * * @experimental */ - async getTaskResult(taskId: string, resultSchema?: T, options?: RequestOptions): Promise> { + async getTaskResult< + T extends typeof CallToolResultSchema | typeof CompatibilityCallToolResultSchema | AnyObjectSchema = typeof CallToolResultSchema + >(taskId: string, resultSchema: T = CallToolResultSchema as T, options?: RequestOptions): Promise> { // Delegate to the client's underlying Protocol method return ( this._client as unknown as { diff --git a/test/client/index.test.ts b/test/client/index.test.ts index f5c6a348d1..4aa407f688 100644 --- a/test/client/index.test.ts +++ b/test/client/index.test.ts @@ -2576,9 +2576,13 @@ describe('Task-based execution', () => { expect(taskId).toBeDefined(); - // Query task result using the captured task ID - const result = await client.experimental.tasks.getTaskResult(taskId!, CallToolResultSchema); - expect(result.content).toEqual([{ type: 'text', text: 'Result data!' }]); + // Query task result using the captured task ID with default schema + const defaultResult = await client.experimental.tasks.getTaskResult(taskId!); + expect(defaultResult.content).toEqual([{ type: 'text', text: 'Result data!' }]); + + // Query task result with explicit schema + const explicitResult = await client.experimental.tasks.getTaskResult(taskId!, CallToolResultSchema); + expect(explicitResult.content).toEqual([{ type: 'text', text: 'Result data!' }]); }); test('should query task list from server using listTasks', async () => { From d197f013def098e4359e6158f19427912dd6b5ab Mon Sep 17 00:00:00 2001 From: amasen02 Date: Sat, 5 Sep 2026 16:19:15 +0530 Subject: [PATCH 2/3] chore: add changeset for getTaskResult default schema --- .changeset/default-get-task-result-schema.md | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changeset/default-get-task-result-schema.md diff --git a/.changeset/default-get-task-result-schema.md b/.changeset/default-get-task-result-schema.md new file mode 100644 index 0000000000..2b86c1d28a --- /dev/null +++ b/.changeset/default-get-task-result-schema.md @@ -0,0 +1,6 @@ +--- +'@modelcontextprotocol/sdk': patch +--- + +Default +esultSchema to CallToolResultSchema in ExperimentalClientTasks.getTaskResult, preventing unhandled type errors when called without an explicit schema argument. From 4319dc7853ddd41448ceaddecd18f595f3f63ae7 Mon Sep 17 00:00:00 2001 From: amasen02 Date: Sat, 5 Sep 2026 16:31:15 +0530 Subject: [PATCH 3/3] style: format changeset file with prettier --- .changeset/default-get-task-result-schema.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.changeset/default-get-task-result-schema.md b/.changeset/default-get-task-result-schema.md index 2b86c1d28a..4671b9ba8f 100644 --- a/.changeset/default-get-task-result-schema.md +++ b/.changeset/default-get-task-result-schema.md @@ -2,5 +2,4 @@ '@modelcontextprotocol/sdk': patch --- -Default -esultSchema to CallToolResultSchema in ExperimentalClientTasks.getTaskResult, preventing unhandled type errors when called without an explicit schema argument. +Default `resultSchema` to `CallToolResultSchema` in `ExperimentalClientTasks.getTaskResult`