@modelcontextprotocol/sdk 1.26.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/cjs/client/auth.d.ts +79 -1
  2. package/dist/cjs/client/auth.d.ts.map +1 -1
  3. package/dist/cjs/client/auth.js +93 -16
  4. package/dist/cjs/client/auth.js.map +1 -1
  5. package/dist/cjs/examples/client/simpleStreamableHttp.js +62 -23
  6. package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -1
  7. package/dist/cjs/examples/server/simpleStreamableHttp.js +89 -0
  8. package/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -1
  9. package/dist/cjs/experimental/tasks/server.d.ts +88 -1
  10. package/dist/cjs/experimental/tasks/server.d.ts.map +1 -1
  11. package/dist/cjs/experimental/tasks/server.js +157 -0
  12. package/dist/cjs/experimental/tasks/server.js.map +1 -1
  13. package/dist/cjs/server/sse.d.ts.map +1 -1
  14. package/dist/cjs/server/sse.js +8 -1
  15. package/dist/cjs/server/sse.js.map +1 -1
  16. package/dist/cjs/server/webStandardStreamableHttp.d.ts.map +1 -1
  17. package/dist/cjs/server/webStandardStreamableHttp.js +3 -2
  18. package/dist/cjs/server/webStandardStreamableHttp.js.map +1 -1
  19. package/dist/cjs/types.d.ts +4 -0
  20. package/dist/cjs/types.d.ts.map +1 -1
  21. package/dist/esm/client/auth.d.ts +79 -1
  22. package/dist/esm/client/auth.d.ts.map +1 -1
  23. package/dist/esm/client/auth.js +92 -16
  24. package/dist/esm/client/auth.js.map +1 -1
  25. package/dist/esm/examples/client/simpleStreamableHttp.js +62 -23
  26. package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -1
  27. package/dist/esm/examples/server/simpleStreamableHttp.js +89 -0
  28. package/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -1
  29. package/dist/esm/experimental/tasks/server.d.ts +88 -1
  30. package/dist/esm/experimental/tasks/server.d.ts.map +1 -1
  31. package/dist/esm/experimental/tasks/server.js +157 -0
  32. package/dist/esm/experimental/tasks/server.js.map +1 -1
  33. package/dist/esm/server/sse.d.ts.map +1 -1
  34. package/dist/esm/server/sse.js +8 -1
  35. package/dist/esm/server/sse.js.map +1 -1
  36. package/dist/esm/server/webStandardStreamableHttp.d.ts.map +1 -1
  37. package/dist/esm/server/webStandardStreamableHttp.js +3 -2
  38. package/dist/esm/server/webStandardStreamableHttp.js.map +1 -1
  39. package/dist/esm/types.d.ts +4 -0
  40. package/dist/esm/types.d.ts.map +1 -1
  41. package/package.json +8 -2
@@ -102,7 +102,7 @@ export interface OAuthClientProvider {
102
102
  * credentials, in the case where the server has indicated that they are no longer valid.
103
103
  * This avoids requiring the user to intervene manually.
104
104
  */
105
- invalidateCredentials?(scope: 'all' | 'client' | 'tokens' | 'verifier'): void | Promise<void>;
105
+ invalidateCredentials?(scope: 'all' | 'client' | 'tokens' | 'verifier' | 'discovery'): void | Promise<void>;
106
106
  /**
107
107
  * Prepares grant-specific parameters for a token request.
108
108
  *
@@ -140,6 +140,40 @@ export interface OAuthClientProvider {
140
140
  * }
141
141
  */
142
142
  prepareTokenRequest?(scope?: string): URLSearchParams | Promise<URLSearchParams | undefined> | undefined;
143
+ /**
144
+ * Saves the OAuth discovery state after RFC 9728 and authorization server metadata
145
+ * discovery. Providers can persist this state to avoid redundant discovery requests
146
+ * on subsequent {@linkcode auth} calls.
147
+ *
148
+ * This state can also be provided out-of-band (e.g., from a previous session or
149
+ * external configuration) to bootstrap the OAuth flow without discovery.
150
+ *
151
+ * Called by {@linkcode auth} after successful discovery.
152
+ */
153
+ saveDiscoveryState?(state: OAuthDiscoveryState): void | Promise<void>;
154
+ /**
155
+ * Returns previously saved discovery state, or `undefined` if none is cached.
156
+ *
157
+ * When available, {@linkcode auth} restores the discovery state (authorization server
158
+ * URL, resource metadata, etc.) instead of performing RFC 9728 discovery, reducing
159
+ * latency on subsequent calls.
160
+ *
161
+ * Providers should clear cached discovery state on repeated authentication failures
162
+ * (via {@linkcode invalidateCredentials} with scope `'discovery'` or `'all'`) to allow
163
+ * re-discovery in case the authorization server has changed.
164
+ */
165
+ discoveryState?(): OAuthDiscoveryState | undefined | Promise<OAuthDiscoveryState | undefined>;
166
+ }
167
+ /**
168
+ * Discovery state that can be persisted across sessions by an {@linkcode OAuthClientProvider}.
169
+ *
170
+ * Contains the results of RFC 9728 protected resource metadata discovery and
171
+ * authorization server metadata discovery. Persisting this state avoids
172
+ * redundant discovery HTTP requests on subsequent {@linkcode auth} calls.
173
+ */
174
+ export interface OAuthDiscoveryState extends OAuthServerInfo {
175
+ /** The URL at which the protected resource metadata was found, if available. */
176
+ resourceMetadataUrl?: string;
143
177
  }
144
178
  export type AuthResult = 'AUTHORIZED' | 'REDIRECT';
145
179
  export declare class UnauthorizedError extends Error {
@@ -255,6 +289,50 @@ export declare function discoverAuthorizationServerMetadata(authorizationServerU
255
289
  fetchFn?: FetchLike;
256
290
  protocolVersion?: string;
257
291
  }): Promise<AuthorizationServerMetadata | undefined>;
292
+ /**
293
+ * Result of {@linkcode discoverOAuthServerInfo}.
294
+ */
295
+ export interface OAuthServerInfo {
296
+ /**
297
+ * The authorization server URL, either discovered via RFC 9728
298
+ * or derived from the MCP server URL as a fallback.
299
+ */
300
+ authorizationServerUrl: string;
301
+ /**
302
+ * The authorization server metadata (endpoints, capabilities),
303
+ * or `undefined` if metadata discovery failed.
304
+ */
305
+ authorizationServerMetadata?: AuthorizationServerMetadata;
306
+ /**
307
+ * The OAuth 2.0 Protected Resource Metadata from RFC 9728,
308
+ * or `undefined` if the server does not support it.
309
+ */
310
+ resourceMetadata?: OAuthProtectedResourceMetadata;
311
+ }
312
+ /**
313
+ * Discovers the authorization server for an MCP server following
314
+ * {@link https://datatracker.ietf.org/doc/html/rfc9728 | RFC 9728} (OAuth 2.0 Protected
315
+ * Resource Metadata), with fallback to treating the server URL as the
316
+ * authorization server.
317
+ *
318
+ * This function combines two discovery steps into one call:
319
+ * 1. Probes `/.well-known/oauth-protected-resource` on the MCP server to find the
320
+ * authorization server URL (RFC 9728).
321
+ * 2. Fetches authorization server metadata from that URL (RFC 8414 / OpenID Connect Discovery).
322
+ *
323
+ * Use this when you need the authorization server metadata for operations outside the
324
+ * {@linkcode auth} orchestrator, such as token refresh or token revocation.
325
+ *
326
+ * @param serverUrl - The MCP resource server URL
327
+ * @param opts - Optional configuration
328
+ * @param opts.resourceMetadataUrl - Override URL for the protected resource metadata endpoint
329
+ * @param opts.fetchFn - Custom fetch function for HTTP requests
330
+ * @returns Authorization server URL, metadata, and resource metadata (if available)
331
+ */
332
+ export declare function discoverOAuthServerInfo(serverUrl: string | URL, opts?: {
333
+ resourceMetadataUrl?: URL;
334
+ fetchFn?: FetchLike;
335
+ }): Promise<OAuthServerInfo>;
258
336
  /**
259
337
  * Begins the authorization flow with the given server, by generating a PKCE challenge and constructing the authorization URL.
260
338
  */
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ exports.discoverOAuthProtectedResourceMetadata = discoverOAuthProtectedResourceM
15
15
  exports.discoverOAuthMetadata = discoverOAuthMetadata;
16
16
  exports.buildDiscoveryUrls = buildDiscoveryUrls;
17
17
  exports.discoverAuthorizationServerMetadata = discoverAuthorizationServerMetadata;
18
+ exports.discoverOAuthServerInfo = discoverOAuthServerInfo;
18
19
  exports.startAuthorization = startAuthorization;
19
20
  exports.prepareAuthorizationCodeRequest = prepareAuthorizationCodeRequest;
20
21
  exports.exchangeAuthorization = exchangeAuthorization;
@@ -182,28 +183,60 @@ async function auth(provider, options) {
182
183
  }
183
184
  }
184
185
  async function authInternal(provider, { serverUrl, authorizationCode, scope, resourceMetadataUrl, fetchFn }) {
186
+ // Check if the provider has cached discovery state to skip discovery
187
+ const cachedState = await provider.discoveryState?.();
185
188
  let resourceMetadata;
186
189
  let authorizationServerUrl;
187
- try {
188
- resourceMetadata = await discoverOAuthProtectedResourceMetadata(serverUrl, { resourceMetadataUrl }, fetchFn);
189
- if (resourceMetadata.authorization_servers && resourceMetadata.authorization_servers.length > 0) {
190
- authorizationServerUrl = resourceMetadata.authorization_servers[0];
190
+ let metadata;
191
+ // If resourceMetadataUrl is not provided, try to load it from cached state
192
+ // This handles browser redirects where the URL was saved before navigation
193
+ let effectiveResourceMetadataUrl = resourceMetadataUrl;
194
+ if (!effectiveResourceMetadataUrl && cachedState?.resourceMetadataUrl) {
195
+ effectiveResourceMetadataUrl = new URL(cachedState.resourceMetadataUrl);
196
+ }
197
+ if (cachedState?.authorizationServerUrl) {
198
+ // Restore discovery state from cache
199
+ authorizationServerUrl = cachedState.authorizationServerUrl;
200
+ resourceMetadata = cachedState.resourceMetadata;
201
+ metadata =
202
+ cachedState.authorizationServerMetadata ?? (await discoverAuthorizationServerMetadata(authorizationServerUrl, { fetchFn }));
203
+ // If resource metadata wasn't cached, try to fetch it for selectResourceURL
204
+ if (!resourceMetadata) {
205
+ try {
206
+ resourceMetadata = await discoverOAuthProtectedResourceMetadata(serverUrl, { resourceMetadataUrl: effectiveResourceMetadataUrl }, fetchFn);
207
+ }
208
+ catch {
209
+ // RFC 9728 not available — selectResourceURL will handle undefined
210
+ }
211
+ }
212
+ // Re-save if we enriched the cached state with missing metadata
213
+ if (metadata !== cachedState.authorizationServerMetadata || resourceMetadata !== cachedState.resourceMetadata) {
214
+ await provider.saveDiscoveryState?.({
215
+ authorizationServerUrl: String(authorizationServerUrl),
216
+ resourceMetadataUrl: effectiveResourceMetadataUrl?.toString(),
217
+ resourceMetadata,
218
+ authorizationServerMetadata: metadata
219
+ });
191
220
  }
192
221
  }
193
- catch {
194
- // Ignore errors and fall back to /.well-known/oauth-authorization-server
195
- }
196
- /**
197
- * If we don't get a valid authorization server metadata from protected resource metadata,
198
- * fallback to the legacy MCP spec's implementation (version 2025-03-26): MCP server base URL acts as the Authorization server.
199
- */
200
- if (!authorizationServerUrl) {
201
- authorizationServerUrl = new URL('/', serverUrl);
222
+ else {
223
+ // Full discovery via RFC 9728
224
+ const serverInfo = await discoverOAuthServerInfo(serverUrl, { resourceMetadataUrl: effectiveResourceMetadataUrl, fetchFn });
225
+ authorizationServerUrl = serverInfo.authorizationServerUrl;
226
+ metadata = serverInfo.authorizationServerMetadata;
227
+ resourceMetadata = serverInfo.resourceMetadata;
228
+ // Persist discovery state for future use
229
+ // TODO: resourceMetadataUrl is only populated when explicitly provided via options
230
+ // or loaded from cached state. The URL derived internally by
231
+ // discoverOAuthProtectedResourceMetadata() is not captured back here.
232
+ await provider.saveDiscoveryState?.({
233
+ authorizationServerUrl: String(authorizationServerUrl),
234
+ resourceMetadataUrl: effectiveResourceMetadataUrl?.toString(),
235
+ resourceMetadata,
236
+ authorizationServerMetadata: metadata
237
+ });
202
238
  }
203
239
  const resource = await selectResourceURL(serverUrl, provider, resourceMetadata);
204
- const metadata = await discoverAuthorizationServerMetadata(authorizationServerUrl, {
205
- fetchFn
206
- });
207
240
  // Handle client registration if needed
208
241
  let clientInformation = await Promise.resolve(provider.clientInformation());
209
242
  if (!clientInformation) {
@@ -620,6 +653,50 @@ async function discoverAuthorizationServerMetadata(authorizationServerUrl, { fet
620
653
  }
621
654
  return undefined;
622
655
  }
656
+ /**
657
+ * Discovers the authorization server for an MCP server following
658
+ * {@link https://datatracker.ietf.org/doc/html/rfc9728 | RFC 9728} (OAuth 2.0 Protected
659
+ * Resource Metadata), with fallback to treating the server URL as the
660
+ * authorization server.
661
+ *
662
+ * This function combines two discovery steps into one call:
663
+ * 1. Probes `/.well-known/oauth-protected-resource` on the MCP server to find the
664
+ * authorization server URL (RFC 9728).
665
+ * 2. Fetches authorization server metadata from that URL (RFC 8414 / OpenID Connect Discovery).
666
+ *
667
+ * Use this when you need the authorization server metadata for operations outside the
668
+ * {@linkcode auth} orchestrator, such as token refresh or token revocation.
669
+ *
670
+ * @param serverUrl - The MCP resource server URL
671
+ * @param opts - Optional configuration
672
+ * @param opts.resourceMetadataUrl - Override URL for the protected resource metadata endpoint
673
+ * @param opts.fetchFn - Custom fetch function for HTTP requests
674
+ * @returns Authorization server URL, metadata, and resource metadata (if available)
675
+ */
676
+ async function discoverOAuthServerInfo(serverUrl, opts) {
677
+ let resourceMetadata;
678
+ let authorizationServerUrl;
679
+ try {
680
+ resourceMetadata = await discoverOAuthProtectedResourceMetadata(serverUrl, { resourceMetadataUrl: opts?.resourceMetadataUrl }, opts?.fetchFn);
681
+ if (resourceMetadata.authorization_servers && resourceMetadata.authorization_servers.length > 0) {
682
+ authorizationServerUrl = resourceMetadata.authorization_servers[0];
683
+ }
684
+ }
685
+ catch {
686
+ // RFC 9728 not supported -- fall back to treating the server URL as the authorization server
687
+ }
688
+ // If we don't get a valid authorization server from protected resource metadata,
689
+ // fall back to the legacy MCP spec behavior: MCP server base URL acts as the authorization server
690
+ if (!authorizationServerUrl) {
691
+ authorizationServerUrl = String(new URL('/', serverUrl));
692
+ }
693
+ const authorizationServerMetadata = await discoverAuthorizationServerMetadata(authorizationServerUrl, { fetchFn: opts?.fetchFn });
694
+ return {
695
+ authorizationServerUrl,
696
+ authorizationServerMetadata,
697
+ resourceMetadata
698
+ };
699
+ }
623
700
  /**
624
701
  * Begins the authorization flow with the given server, by generating a PKCE challenge and constructing the authorization URL.
625
702
  */
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ const index_js_1 = require("../../client/index.js");
4
4
  const streamableHttp_js_1 = require("../../client/streamableHttp.js");
5
5
  const node_readline_1 = require("node:readline");
6
6
  const types_js_1 = require("../../types.js");
7
+ const in_memory_js_1 = require("../../experimental/tasks/stores/in-memory.js");
7
8
  const metadataUtils_js_1 = require("../../shared/metadataUtils.js");
8
9
  const ajv_1 = require("ajv");
9
10
  // Create readline interface for user input
@@ -40,6 +41,7 @@ function printHelp() {
40
41
  console.log(' greet [name] - Call the greet tool');
41
42
  console.log(' multi-greet [name] - Call the multi-greet tool with notifications');
42
43
  console.log(' collect-info [type] - Test form elicitation with collect-user-info tool (contact/preferences/feedback)');
44
+ console.log(' collect-info-task [type] - Test bidirectional task support (server+client tasks) with elicitation');
43
45
  console.log(' start-notifications [interval] [count] - Start periodic notifications');
44
46
  console.log(' run-notifications-tool-with-resumability [interval] [count] - Run notification tool with resumability');
45
47
  console.log(' list-prompts - List available prompts');
@@ -97,6 +99,10 @@ function commandLoop() {
97
99
  case 'collect-info':
98
100
  await callCollectInfoTool(args[1] || 'contact');
99
101
  break;
102
+ case 'collect-info-task': {
103
+ await callCollectInfoWithTask(args[1] || 'contact');
104
+ break;
105
+ }
100
106
  case 'start-notifications': {
101
107
  const interval = args[1] ? parseInt(args[1], 10) : 2000;
102
108
  const count = args[2] ? parseInt(args[2], 10) : 10;
@@ -190,7 +196,9 @@ async function connect(url) {
190
196
  }
191
197
  console.log(`Connecting to ${serverUrl}...`);
192
198
  try {
193
- // Create a new client with form elicitation capability
199
+ // Create task store for client-side task support
200
+ const clientTaskStore = new in_memory_js_1.InMemoryTaskStore();
201
+ // Create a new client with form elicitation capability and task support
194
202
  client = new index_js_1.Client({
195
203
  name: 'example-client',
196
204
  version: '1.0.0'
@@ -198,22 +206,42 @@ async function connect(url) {
198
206
  capabilities: {
199
207
  elicitation: {
200
208
  form: {}
209
+ },
210
+ tasks: {
211
+ requests: {
212
+ elicitation: {
213
+ create: {}
214
+ }
215
+ }
201
216
  }
202
- }
217
+ },
218
+ taskStore: clientTaskStore
203
219
  });
204
220
  client.onerror = error => {
205
221
  console.error('\x1b[31mClient error:', error, '\x1b[0m');
206
222
  };
207
- // Set up elicitation request handler with proper validation
208
- client.setRequestHandler(types_js_1.ElicitRequestSchema, async (request) => {
223
+ // Set up elicitation request handler with proper validation and task support
224
+ client.setRequestHandler(types_js_1.ElicitRequestSchema, async (request, extra) => {
209
225
  if (request.params.mode !== 'form') {
210
226
  throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Unsupported elicitation mode: ${request.params.mode}`);
211
227
  }
212
228
  console.log('\nšŸ”” Elicitation (form) Request Received:');
213
229
  console.log(`Message: ${request.params.message}`);
214
230
  console.log(`Related Task: ${request.params._meta?.[types_js_1.RELATED_TASK_META_KEY]?.taskId}`);
231
+ console.log(`Task Creation Requested: ${request.params.task ? 'yes' : 'no'}`);
215
232
  console.log('Requested Schema:');
216
233
  console.log(JSON.stringify(request.params.requestedSchema, null, 2));
234
+ // Helper to return result, optionally creating a task if requested
235
+ const returnResult = async (result) => {
236
+ if (request.params.task && extra.taskStore) {
237
+ // Create a task and store the result
238
+ const task = await extra.taskStore.createTask({ ttl: extra.taskRequestedTtl });
239
+ await extra.taskStore.storeTaskResult(task.taskId, 'completed', result);
240
+ console.log(`šŸ“‹ Created client-side task: ${task.taskId}`);
241
+ return { task };
242
+ }
243
+ return result;
244
+ };
217
245
  const schema = request.params.requestedSchema;
218
246
  const properties = schema.properties;
219
247
  const required = schema.required || [];
@@ -319,7 +347,7 @@ async function connect(url) {
319
347
  }
320
348
  }
321
349
  if (inputCancelled) {
322
- return { action: 'cancel' };
350
+ return returnResult({ action: 'cancel' });
323
351
  }
324
352
  // If we didn't complete all fields due to an error, try again
325
353
  if (Object.keys(content).length !==
@@ -330,7 +358,7 @@ async function connect(url) {
330
358
  }
331
359
  else {
332
360
  console.log('Maximum attempts reached. Declining request.');
333
- return { action: 'decline' };
361
+ return returnResult({ action: 'decline' });
334
362
  }
335
363
  }
336
364
  // Validate the complete object against the schema
@@ -346,7 +374,7 @@ async function connect(url) {
346
374
  }
347
375
  else {
348
376
  console.log('Maximum attempts reached. Declining request.');
349
- return { action: 'decline' };
377
+ return returnResult({ action: 'decline' });
350
378
  }
351
379
  }
352
380
  // Show the collected data and ask for confirmation
@@ -357,27 +385,33 @@ async function connect(url) {
357
385
  resolve(input.trim().toLowerCase());
358
386
  });
359
387
  });
360
- if (confirmAnswer === 'yes' || confirmAnswer === 'y') {
361
- return {
362
- action: 'accept',
363
- content
364
- };
365
- }
366
- else if (confirmAnswer === 'cancel' || confirmAnswer === 'c') {
367
- return { action: 'cancel' };
368
- }
369
- else if (confirmAnswer === 'no' || confirmAnswer === 'n') {
370
- if (attempts < maxAttempts) {
371
- console.log('Please re-enter the information...');
372
- continue;
388
+ switch (confirmAnswer) {
389
+ case 'yes':
390
+ case 'y': {
391
+ return returnResult({
392
+ action: 'accept',
393
+ content: content
394
+ });
373
395
  }
374
- else {
375
- return { action: 'decline' };
396
+ case 'cancel':
397
+ case 'c': {
398
+ return returnResult({ action: 'cancel' });
399
+ }
400
+ case 'no':
401
+ case 'n': {
402
+ if (attempts < maxAttempts) {
403
+ console.log('Please re-enter the information...');
404
+ continue;
405
+ }
406
+ else {
407
+ return returnResult({ action: 'decline' });
408
+ }
409
+ break;
376
410
  }
377
411
  }
378
412
  }
379
413
  console.log('Maximum attempts reached. Declining request.');
380
- return { action: 'decline' };
414
+ return returnResult({ action: 'decline' });
381
415
  });
382
416
  transport = new streamableHttp_js_1.StreamableHTTPClientTransport(new URL(serverUrl), {
383
417
  sessionId: sessionId
@@ -560,6 +594,11 @@ async function callCollectInfoTool(infoType) {
560
594
  console.log(`Testing form elicitation with collect-user-info tool (${infoType})...`);
561
595
  await callTool('collect-user-info', { infoType });
562
596
  }
597
+ async function callCollectInfoWithTask(infoType) {
598
+ console.log(`\nšŸ”„ Testing bidirectional task support with collect-user-info-task tool (${infoType})...`);
599
+ console.log('This will create a task on the server, which will elicit input and create a task on the client.\n');
600
+ await callToolTask('collect-user-info-task', { infoType });
601
+ }
563
602
  async function startNotifications(interval, count) {
564
603
  console.log(`Starting notification stream: interval=${interval}ms, count=${count || 'unlimited'}`);
565
604
  await callTool('start-notification-stream', { interval, count });