mcp-use 1.9.1-canary.1 → 1.10.0-canary.11

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 (145) hide show
  1. package/README.md +9 -6
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/{chunk-QREDNTLS.js → chunk-5S5DWSKI.js} +1 -1
  4. package/dist/{chunk-MUZ5WYE3.js → chunk-5UB2K5L6.js} +72 -14
  5. package/dist/{chunk-33U4IA4N.js → chunk-B5N3LQQU.js} +99 -5
  6. package/dist/{chunk-3R5PDYIN.js → chunk-J75I2C26.js} +39 -11
  7. package/dist/{chunk-U5BX3ISQ.js → chunk-KMTBWOVS.js} +22 -408
  8. package/dist/{chunk-D22NUQTL.js → chunk-LXYUQEEE.js} +235 -12
  9. package/dist/{chunk-ZQUCGISK.js → chunk-NNQUSDFU.js} +21 -5
  10. package/dist/chunk-PESKSVLQ.js +1129 -0
  11. package/dist/index.cjs +1190 -200
  12. package/dist/index.d.ts +6 -4
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +63 -23
  15. package/dist/src/adapters/langchain_adapter.d.ts +1 -1
  16. package/dist/src/adapters/langchain_adapter.d.ts.map +1 -1
  17. package/dist/src/agents/index.cjs +2263 -1626
  18. package/dist/src/agents/index.js +4 -4
  19. package/dist/src/agents/mcp_agent.d.ts +5 -0
  20. package/dist/src/agents/mcp_agent.d.ts.map +1 -1
  21. package/dist/src/auth/browser-provider.d.ts +2 -2
  22. package/dist/src/auth/browser-provider.d.ts.map +1 -1
  23. package/dist/src/auth/callback.d.ts.map +1 -1
  24. package/dist/src/auth/index.cjs +39 -11
  25. package/dist/src/auth/index.js +1 -1
  26. package/dist/src/auth/types.d.ts +1 -1
  27. package/dist/src/auth/types.d.ts.map +1 -1
  28. package/dist/src/browser.cjs +2672 -1754
  29. package/dist/src/browser.d.ts +5 -1
  30. package/dist/src/browser.d.ts.map +1 -1
  31. package/dist/src/browser.js +18 -5
  32. package/dist/src/client/base.d.ts.map +1 -1
  33. package/dist/src/client/browser.d.ts +6 -0
  34. package/dist/src/client/browser.d.ts.map +1 -1
  35. package/dist/src/client/connectors/codeMode.d.ts +1 -1
  36. package/dist/src/client/connectors/codeMode.d.ts.map +1 -1
  37. package/dist/src/client/executors/base.d.ts +1 -1
  38. package/dist/src/client/executors/base.d.ts.map +1 -1
  39. package/dist/src/client/prompts.cjs +4 -1
  40. package/dist/src/client/prompts.js +3 -2
  41. package/dist/src/client.d.ts +7 -1
  42. package/dist/src/client.d.ts.map +1 -1
  43. package/dist/src/connectors/base.d.ts +56 -6
  44. package/dist/src/connectors/base.d.ts.map +1 -1
  45. package/dist/src/connectors/http.d.ts.map +1 -1
  46. package/dist/src/connectors/stdio.d.ts.map +1 -1
  47. package/dist/src/connectors/websocket.d.ts +1 -1
  48. package/dist/src/connectors/websocket.d.ts.map +1 -1
  49. package/dist/src/oauth-helper.d.ts.map +1 -1
  50. package/dist/src/react/WidgetControls.d.ts.map +1 -1
  51. package/dist/src/react/index.cjs +1357 -43
  52. package/dist/src/react/index.d.ts +4 -1
  53. package/dist/src/react/index.d.ts.map +1 -1
  54. package/dist/src/react/index.js +14 -5
  55. package/dist/src/react/types.d.ts +1 -1
  56. package/dist/src/react/types.d.ts.map +1 -1
  57. package/dist/src/react/useMcp.d.ts.map +1 -1
  58. package/dist/src/server/endpoints/mount-mcp.d.ts +4 -1
  59. package/dist/src/server/endpoints/mount-mcp.d.ts.map +1 -1
  60. package/dist/src/server/index.cjs +1923 -287
  61. package/dist/src/server/index.d.ts +3 -2
  62. package/dist/src/server/index.d.ts.map +1 -1
  63. package/dist/src/server/index.js +488 -245
  64. package/dist/src/server/mcp-server.d.ts +77 -27
  65. package/dist/src/server/mcp-server.d.ts.map +1 -1
  66. package/dist/src/server/oauth/middleware.d.ts.map +1 -1
  67. package/dist/src/server/oauth/providers/auth0.d.ts +1 -1
  68. package/dist/src/server/oauth/providers/auth0.d.ts.map +1 -1
  69. package/dist/src/server/oauth/providers/custom.d.ts +4 -2
  70. package/dist/src/server/oauth/providers/custom.d.ts.map +1 -1
  71. package/dist/src/server/oauth/providers/keycloak.d.ts +1 -1
  72. package/dist/src/server/oauth/providers/keycloak.d.ts.map +1 -1
  73. package/dist/src/server/oauth/providers/supabase.d.ts +1 -1
  74. package/dist/src/server/oauth/providers/supabase.d.ts.map +1 -1
  75. package/dist/src/server/oauth/providers/types.d.ts +9 -5
  76. package/dist/src/server/oauth/providers/types.d.ts.map +1 -1
  77. package/dist/src/server/oauth/providers.d.ts +27 -9
  78. package/dist/src/server/oauth/providers.d.ts.map +1 -1
  79. package/dist/src/server/oauth/setup.d.ts +5 -4
  80. package/dist/src/server/oauth/setup.d.ts.map +1 -1
  81. package/dist/src/server/oauth/utils.d.ts +3 -2
  82. package/dist/src/server/oauth/utils.d.ts.map +1 -1
  83. package/dist/src/server/prompts/conversion.d.ts +1 -1
  84. package/dist/src/server/prompts/conversion.d.ts.map +1 -1
  85. package/dist/src/server/prompts/index.d.ts +6 -5
  86. package/dist/src/server/prompts/index.d.ts.map +1 -1
  87. package/dist/src/server/resources/conversion.d.ts +1 -1
  88. package/dist/src/server/resources/conversion.d.ts.map +1 -1
  89. package/dist/src/server/resources/index.d.ts +44 -25
  90. package/dist/src/server/resources/index.d.ts.map +1 -1
  91. package/dist/src/server/resources/subscriptions.d.ts +1 -1
  92. package/dist/src/server/resources/subscriptions.d.ts.map +1 -1
  93. package/dist/src/server/sessions/session-manager.d.ts +11 -5
  94. package/dist/src/server/sessions/session-manager.d.ts.map +1 -1
  95. package/dist/src/server/tools/tool-execution-helpers.d.ts +31 -8
  96. package/dist/src/server/tools/tool-execution-helpers.d.ts.map +1 -1
  97. package/dist/src/server/tools/tool-registration.d.ts +21 -7
  98. package/dist/src/server/tools/tool-registration.d.ts.map +1 -1
  99. package/dist/src/server/types/common.d.ts +25 -9
  100. package/dist/src/server/types/common.d.ts.map +1 -1
  101. package/dist/src/server/types/index.d.ts +3 -3
  102. package/dist/src/server/types/index.d.ts.map +1 -1
  103. package/dist/src/server/types/prompt.d.ts +3 -2
  104. package/dist/src/server/types/prompt.d.ts.map +1 -1
  105. package/dist/src/server/types/resource.d.ts +60 -10
  106. package/dist/src/server/types/resource.d.ts.map +1 -1
  107. package/dist/src/server/types/tool-context.d.ts +116 -1
  108. package/dist/src/server/types/tool-context.d.ts.map +1 -1
  109. package/dist/src/server/types/tool.d.ts +43 -2
  110. package/dist/src/server/types/tool.d.ts.map +1 -1
  111. package/dist/src/server/types/widget.d.ts +11 -1
  112. package/dist/src/server/types/widget.d.ts.map +1 -1
  113. package/dist/src/server/utils/response-helpers.d.ts +17 -29
  114. package/dist/src/server/utils/response-helpers.d.ts.map +1 -1
  115. package/dist/src/server/widgets/index.d.ts +3 -3
  116. package/dist/src/server/widgets/index.d.ts.map +1 -1
  117. package/dist/src/server/widgets/mount-widgets-dev.d.ts.map +1 -1
  118. package/dist/src/server/widgets/ui-resource-registration.d.ts +13 -25
  119. package/dist/src/server/widgets/ui-resource-registration.d.ts.map +1 -1
  120. package/dist/src/server/widgets/widget-helpers.d.ts +11 -6
  121. package/dist/src/server/widgets/widget-helpers.d.ts.map +1 -1
  122. package/dist/src/server/widgets/widget-types.d.ts +3 -3
  123. package/dist/src/server/widgets/widget-types.d.ts.map +1 -1
  124. package/dist/src/session.d.ts +372 -2
  125. package/dist/src/session.d.ts.map +1 -1
  126. package/dist/src/task_managers/sse.d.ts +2 -2
  127. package/dist/src/task_managers/sse.d.ts.map +1 -1
  128. package/dist/src/task_managers/stdio.d.ts +2 -2
  129. package/dist/src/task_managers/stdio.d.ts.map +1 -1
  130. package/dist/src/task_managers/streamable_http.d.ts +2 -2
  131. package/dist/src/task_managers/streamable_http.d.ts.map +1 -1
  132. package/dist/src/telemetry/events.d.ts +247 -0
  133. package/dist/src/telemetry/events.d.ts.map +1 -1
  134. package/dist/src/telemetry/index.d.ts +4 -4
  135. package/dist/src/telemetry/index.d.ts.map +1 -1
  136. package/dist/src/telemetry/telemetry.d.ts +122 -4
  137. package/dist/src/telemetry/telemetry.d.ts.map +1 -1
  138. package/dist/src/telemetry/utils.d.ts +1 -1
  139. package/dist/src/telemetry/utils.d.ts.map +1 -1
  140. package/dist/src/version.d.ts +8 -0
  141. package/dist/src/version.d.ts.map +1 -0
  142. package/dist/{tool-execution-helpers-BQJTPWPN.js → tool-execution-helpers-OOVLOJYH.js} +3 -2
  143. package/dist/tsup.config.d.ts.map +1 -1
  144. package/package.json +7 -5
  145. package/dist/chunk-MTHLLDCX.js +0 -97
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BaseConnector
3
- } from "./chunk-ZQUCGISK.js";
3
+ } from "./chunk-NNQUSDFU.js";
4
4
  import {
5
5
  __name
6
6
  } from "./chunk-3GQAWCBQ.js";
@@ -1,10 +1,13 @@
1
1
  import {
2
2
  BrowserMCPClient
3
- } from "./chunk-D22NUQTL.js";
3
+ } from "./chunk-LXYUQEEE.js";
4
4
  import {
5
5
  BrowserOAuthClientProvider,
6
6
  sanitizeUrl
7
- } from "./chunk-3R5PDYIN.js";
7
+ } from "./chunk-J75I2C26.js";
8
+ import {
9
+ Tel
10
+ } from "./chunk-PESKSVLQ.js";
8
11
  import {
9
12
  __name
10
13
  } from "./chunk-3GQAWCBQ.js";
@@ -133,8 +136,20 @@ function useMcp(options) {
133
136
  }
134
137
  }
135
138
  connectingRef.current = false;
139
+ if (url) {
140
+ Tel.getInstance().trackUseMcpConnection({
141
+ url,
142
+ transportType,
143
+ success: false,
144
+ errorType: connectionError?.name || "UnknownError",
145
+ hasOAuth: !!authProviderRef.current,
146
+ hasSampling: !!samplingCallback,
147
+ hasElicitation: !!onElicitation
148
+ }).catch(() => {
149
+ });
150
+ }
136
151
  },
137
- [addLog]
152
+ [addLog, url, transportType, samplingCallback, onElicitation]
138
153
  );
139
154
  const connect = useCallback(async () => {
140
155
  if (!enabled || !url) {
@@ -243,6 +258,15 @@ function useMcp(options) {
243
258
  );
244
259
  setState("ready");
245
260
  successfulTransportRef.current = transportTypeParam;
261
+ Tel.getInstance().trackUseMcpConnection({
262
+ url,
263
+ transportType: transportTypeParam,
264
+ success: true,
265
+ hasOAuth: !!authProviderRef.current,
266
+ hasSampling: !!samplingCallback,
267
+ hasElicitation: !!onElicitation
268
+ }).catch(() => {
269
+ });
246
270
  setTools(session.connector.tools || []);
247
271
  const resourcesResult = await session.connector.listAllResources();
248
272
  setResources(resourcesResult.resources || []);
@@ -260,15 +284,16 @@ function useMcp(options) {
260
284
  }
261
285
  return "success";
262
286
  } catch (err) {
263
- const errorMessage = err?.message || String(err);
264
- if (err.code === 401 || errorMessage.includes("401") || errorMessage.includes("Unauthorized")) {
287
+ const error2 = err;
288
+ const errorMessage = error2?.message || String(err);
289
+ if (error2.code === 401 || errorMessage.includes("401") || errorMessage.includes("Unauthorized")) {
265
290
  if (authProviderRef.current) {
266
291
  addLog(
267
292
  "info",
268
293
  "Authentication required. OAuth provider available."
269
294
  );
270
295
  try {
271
- const { auth } = await import("@modelcontextprotocol/sdk/client/auth.js");
296
+ const { auth } = await import("@mcp-use/modelcontextprotocol-sdk/client/auth.js");
272
297
  const baseUrl = new URL(url).origin;
273
298
  auth(authProviderRef.current, { serverUrl: baseUrl }).catch(
274
299
  () => {
@@ -309,7 +334,10 @@ function useMcp(options) {
309
334
  );
310
335
  return "failed";
311
336
  }
312
- failConnection(errorMessage, err);
337
+ failConnection(
338
+ errorMessage,
339
+ error2 instanceof Error ? error2 : new Error(String(error2))
340
+ );
313
341
  return "failed";
314
342
  }
315
343
  }, "tryConnectWithTransport");
@@ -363,6 +391,7 @@ function useMcp(options) {
363
391
  );
364
392
  }
365
393
  addLog("info", `Calling tool: ${name}`, args);
394
+ const startTime = Date.now();
366
395
  try {
367
396
  const serverName = "inspector-server";
368
397
  const session = clientRef.current.getSession(serverName);
@@ -375,9 +404,22 @@ function useMcp(options) {
375
404
  options2
376
405
  );
377
406
  addLog("info", `Tool "${name}" call successful:`, result);
407
+ Tel.getInstance().trackUseMcpToolCall({
408
+ toolName: name,
409
+ success: true,
410
+ executionTimeMs: Date.now() - startTime
411
+ }).catch(() => {
412
+ });
378
413
  return result;
379
414
  } catch (err) {
380
415
  addLog("error", `Tool "${name}" call failed:`, err);
416
+ Tel.getInstance().trackUseMcpToolCall({
417
+ toolName: name,
418
+ success: false,
419
+ errorType: err instanceof Error ? err.name : "UnknownError",
420
+ executionTimeMs: Date.now() - startTime
421
+ }).catch(() => {
422
+ });
381
423
  throw err;
382
424
  }
383
425
  },
@@ -433,7 +475,7 @@ function useMcp(options) {
433
475
  });
434
476
  authProviderRef.current = freshAuthProvider;
435
477
  addLog("info", "Triggering fresh OAuth authorization...");
436
- const { auth } = await import("@modelcontextprotocol/sdk/client/auth.js");
478
+ const { auth } = await import("@mcp-use/modelcontextprotocol-sdk/client/auth.js");
437
479
  const baseUrl = new URL(url).origin;
438
480
  auth(freshAuthProvider, {
439
481
  serverUrl: baseUrl
@@ -441,7 +483,7 @@ function useMcp(options) {
441
483
  addLog(
442
484
  "info",
443
485
  "OAuth flow initiated:",
444
- err?.message || "Redirecting..."
486
+ err instanceof Error ? err.message : "Redirecting..."
445
487
  );
446
488
  });
447
489
  } catch (authError) {
@@ -527,9 +569,20 @@ function useMcp(options) {
527
569
  }
528
570
  const result = await session.connector.readResource(uri);
529
571
  addLog("info", "Resource read successful:", result);
572
+ Tel.getInstance().trackUseMcpResourceRead({
573
+ resourceUri: uri,
574
+ success: true
575
+ }).catch(() => {
576
+ });
530
577
  return result;
531
578
  } catch (err) {
532
579
  addLog("error", "Resource read failed:", err);
580
+ Tel.getInstance().trackUseMcpResourceRead({
581
+ resourceUri: uri,
582
+ success: false,
583
+ errorType: err instanceof Error ? err.name : "UnknownError"
584
+ }).catch(() => {
585
+ });
533
586
  throw err;
534
587
  }
535
588
  },
@@ -1183,7 +1236,8 @@ function WidgetControls({
1183
1236
  const result = await callTool(toolName, args);
1184
1237
  setActionResult(`Success: ${JSON.stringify(result, null, 2)}`);
1185
1238
  } catch (error) {
1186
- setActionResult(`Error: ${error.message}`);
1239
+ const err = error;
1240
+ setActionResult(`Error: ${err.message}`);
1187
1241
  }
1188
1242
  }, "handleCallTool");
1189
1243
  const handleSendFollowUpMessage = /* @__PURE__ */ __name(async () => {
@@ -1192,7 +1246,8 @@ function WidgetControls({
1192
1246
  await sendFollowUpMessage(followUpMessage);
1193
1247
  setActionResult("Follow-up message sent successfully");
1194
1248
  } catch (error) {
1195
- setActionResult(`Error: ${error.message}`);
1249
+ const err = error;
1250
+ setActionResult(`Error: ${err.message}`);
1196
1251
  }
1197
1252
  }, "handleSendFollowUpMessage");
1198
1253
  const handleOpenExternal = /* @__PURE__ */ __name(() => {
@@ -1200,7 +1255,8 @@ function WidgetControls({
1200
1255
  openExternal(externalUrl);
1201
1256
  setActionResult(`Opened external link: ${externalUrl}`);
1202
1257
  } catch (error) {
1203
- setActionResult(`Error: ${error.message}`);
1258
+ const err = error;
1259
+ setActionResult(`Error: ${err.message}`);
1204
1260
  }
1205
1261
  }, "handleOpenExternal");
1206
1262
  const handleRequestDisplayMode = /* @__PURE__ */ __name(async (mode) => {
@@ -1209,7 +1265,8 @@ function WidgetControls({
1209
1265
  const result = await requestDisplayMode(mode);
1210
1266
  setActionResult(`Display mode granted: ${result.mode}`);
1211
1267
  } catch (error) {
1212
- setActionResult(`Error: ${error.message}`);
1268
+ const err = error;
1269
+ setActionResult(`Error: ${err.message}`);
1213
1270
  }
1214
1271
  }, "handleRequestDisplayMode");
1215
1272
  const handleSetState = /* @__PURE__ */ __name(async () => {
@@ -1219,7 +1276,8 @@ function WidgetControls({
1219
1276
  await setState(newState);
1220
1277
  setActionResult(`State updated: ${JSON.stringify(newState, null, 2)}`);
1221
1278
  } catch (error) {
1222
- setActionResult(`Error: ${error.message}`);
1279
+ const err = error;
1280
+ setActionResult(`Error: ${err.message}`);
1223
1281
  }
1224
1282
  }, "handleSetState");
1225
1283
  const handleFullscreen = /* @__PURE__ */ __name(async () => {
@@ -2,14 +2,15 @@ import {
2
2
  ElicitationValidationError
3
3
  } from "./chunk-KUEVOU4M.js";
4
4
  import {
5
+ Telemetry,
5
6
  generateUUID
6
- } from "./chunk-MTHLLDCX.js";
7
+ } from "./chunk-PESKSVLQ.js";
7
8
  import {
8
9
  __name
9
10
  } from "./chunk-3GQAWCBQ.js";
10
11
 
11
12
  // src/server/tools/tool-execution-helpers.ts
12
- import { toJsonSchemaCompat } from "@modelcontextprotocol/sdk/server/zod-json-schema-compat.js";
13
+ import { toJsonSchemaCompat } from "@mcp-use/modelcontextprotocol-sdk/server/zod-json-schema-compat.js";
13
14
  function findSessionContext(sessions, initialRequestContext, extraProgressToken, extraSendNotification) {
14
15
  let requestContext = initialRequestContext;
15
16
  let session;
@@ -196,6 +197,9 @@ function createSampleMethod(createMessage, progressToken, sendNotification) {
196
197
  `Sampling timed out after ${timeout}ms`
197
198
  );
198
199
  console.log("[SAMPLING DEBUG] Got result:", result);
200
+ Telemetry.getInstance().trackServerContext({
201
+ contextType: "sample"
202
+ }).catch((e) => console.debug(`Failed to track sample context: ${e}`));
199
203
  return result;
200
204
  } catch (error) {
201
205
  console.error("[SAMPLING DEBUG] Error during sampling:", error);
@@ -219,6 +223,9 @@ function createElicitMethod(elicitInput) {
219
223
  const { timeout } = options ?? {};
220
224
  const sdkTimeout = timeout && timeout !== Infinity ? timeout : 2147483647;
221
225
  const result = await elicitInput(sdkParams, { timeout: sdkTimeout });
226
+ Telemetry.getInstance().trackServerContext({
227
+ contextType: "elicit"
228
+ }).catch((e) => console.debug(`Failed to track elicit context: ${e}`));
222
229
  if (zodSchema && result.action === "accept" && result.data) {
223
230
  try {
224
231
  const validatedData = zodSchema.parse(result.data);
@@ -227,9 +234,10 @@ function createElicitMethod(elicitInput) {
227
234
  data: validatedData
228
235
  };
229
236
  } catch (error) {
237
+ const err = error;
230
238
  throw new ElicitationValidationError(
231
- `Elicitation data validation failed: ${error.message}`,
232
- error
239
+ `Elicitation data validation failed: ${err.message}`,
240
+ err
233
241
  );
234
242
  }
235
243
  }
@@ -302,10 +310,79 @@ function createLogMethod(sendNotification, minLogLevel) {
302
310
  logger: logger || "tool"
303
311
  }
304
312
  });
313
+ Telemetry.getInstance().trackServerContext({
314
+ contextType: "notification",
315
+ notificationType: "message"
316
+ }).catch(
317
+ (e) => console.debug(`Failed to track notification context: ${e}`)
318
+ );
305
319
  };
306
320
  }
307
321
  __name(createLogMethod, "createLogMethod");
308
- function createEnhancedContext(baseContext, createMessage, elicitInput, progressToken, sendNotification, minLogLevel) {
322
+ function createClientCapabilityChecker(clientCapabilities) {
323
+ const caps = clientCapabilities || {};
324
+ return {
325
+ can(capability) {
326
+ return capability in caps;
327
+ },
328
+ capabilities() {
329
+ return { ...caps };
330
+ }
331
+ };
332
+ }
333
+ __name(createClientCapabilityChecker, "createClientCapabilityChecker");
334
+ function createSendNotificationMethod(sessionId, sessions) {
335
+ if (!sessionId || !sessions) {
336
+ return void 0;
337
+ }
338
+ return async (method, params) => {
339
+ const session = sessions.get(sessionId);
340
+ if (!session?.sendNotification) {
341
+ console.warn(
342
+ `[MCP] Cannot send notification to session ${sessionId} - no sendNotification function`
343
+ );
344
+ return;
345
+ }
346
+ try {
347
+ await session.sendNotification({
348
+ method,
349
+ params: params || {}
350
+ });
351
+ } catch (error) {
352
+ console.error(
353
+ `[MCP] Error sending notification to session ${sessionId}:`,
354
+ error
355
+ );
356
+ }
357
+ };
358
+ }
359
+ __name(createSendNotificationMethod, "createSendNotificationMethod");
360
+ function createSendNotificationToSessionMethod(sessions) {
361
+ if (!sessions) {
362
+ return void 0;
363
+ }
364
+ return async (sessionId, method, params) => {
365
+ const session = sessions.get(sessionId);
366
+ if (!session?.sendNotification) {
367
+ return false;
368
+ }
369
+ try {
370
+ await session.sendNotification({
371
+ method,
372
+ params: params || {}
373
+ });
374
+ return true;
375
+ } catch (error) {
376
+ console.error(
377
+ `[MCP] Error sending notification to session ${sessionId}:`,
378
+ error
379
+ );
380
+ return false;
381
+ }
382
+ };
383
+ }
384
+ __name(createSendNotificationToSessionMethod, "createSendNotificationToSessionMethod");
385
+ function createEnhancedContext(baseContext, createMessage, elicitInput, progressToken, sendNotification, minLogLevel, clientCapabilities, sessionId, sessions) {
309
386
  const enhancedContext = baseContext ? Object.create(baseContext) : {};
310
387
  enhancedContext.sample = createSampleMethod(
311
388
  createMessage,
@@ -318,6 +395,23 @@ function createEnhancedContext(baseContext, createMessage, elicitInput, progress
318
395
  sendNotification
319
396
  );
320
397
  enhancedContext.log = createLogMethod(sendNotification, minLogLevel);
398
+ enhancedContext.client = createClientCapabilityChecker(clientCapabilities);
399
+ if (sessionId) {
400
+ enhancedContext.session = {
401
+ sessionId
402
+ };
403
+ }
404
+ const sendNotificationMethod = createSendNotificationMethod(
405
+ sessionId,
406
+ sessions
407
+ );
408
+ if (sendNotificationMethod) {
409
+ enhancedContext.sendNotification = sendNotificationMethod;
410
+ }
411
+ const sendNotificationToSessionMethod = createSendNotificationToSessionMethod(sessions);
412
+ if (sendNotificationToSessionMethod) {
413
+ enhancedContext.sendNotificationToSession = sendNotificationToSessionMethod;
414
+ }
321
415
  return enhancedContext;
322
416
  }
323
417
  __name(createEnhancedContext, "createEnhancedContext");
@@ -261,7 +261,7 @@ var BrowserOAuthClientProvider = class {
261
261
  };
262
262
 
263
263
  // src/auth/callback.ts
264
- import { auth } from "@modelcontextprotocol/sdk/client/auth.js";
264
+ import { auth } from "@mcp-use/modelcontextprotocol-sdk/client/auth.js";
265
265
  async function onMcpAuthorization() {
266
266
  const queryParams = new URLSearchParams(window.location.search);
267
267
  const code = queryParams.get("code");
@@ -369,16 +369,44 @@ async function onMcpAuthorization() {
369
369
  );
370
370
  }
371
371
  try {
372
- document.body.innerHTML = `
373
- <div style="font-family: sans-serif; padding: 20px;">
374
- <h1>Authentication Error</h1>
375
- <p style="color: red; background-color: #ffebeb; border: 1px solid red; padding: 10px; border-radius: 4px;">
376
- ${errorMessage}
377
- </p>
378
- <p>You can close this window or <a href="#" onclick="window.close(); return false;">click here to close</a>.</p>
379
- <pre style="font-size: 0.8em; color: #555; margin-top: 20px; white-space: pre-wrap;">${err instanceof Error ? err.stack : ""}</pre>
380
- </div>
381
- `;
372
+ document.body.innerHTML = "";
373
+ const container = document.createElement("div");
374
+ container.style.fontFamily = "sans-serif";
375
+ container.style.padding = "20px";
376
+ const heading = document.createElement("h1");
377
+ heading.textContent = "Authentication Error";
378
+ container.appendChild(heading);
379
+ const errorPara = document.createElement("p");
380
+ errorPara.style.color = "red";
381
+ errorPara.style.backgroundColor = "#ffebeb";
382
+ errorPara.style.border = "1px solid red";
383
+ errorPara.style.padding = "10px";
384
+ errorPara.style.borderRadius = "4px";
385
+ errorPara.textContent = errorMessage;
386
+ container.appendChild(errorPara);
387
+ const closePara = document.createElement("p");
388
+ closePara.textContent = "You can close this window or ";
389
+ const closeLink = document.createElement("a");
390
+ closeLink.href = "#";
391
+ closeLink.textContent = "click here to close";
392
+ closeLink.onclick = (e) => {
393
+ e.preventDefault();
394
+ window.close();
395
+ return false;
396
+ };
397
+ closePara.appendChild(closeLink);
398
+ closePara.appendChild(document.createTextNode("."));
399
+ container.appendChild(closePara);
400
+ if (err instanceof Error && err.stack) {
401
+ const stackPre = document.createElement("pre");
402
+ stackPre.style.fontSize = "0.8em";
403
+ stackPre.style.color = "#555";
404
+ stackPre.style.marginTop = "20px";
405
+ stackPre.style.whiteSpace = "pre-wrap";
406
+ stackPre.textContent = err.stack;
407
+ container.appendChild(stackPre);
408
+ }
409
+ document.body.appendChild(container);
382
410
  } catch (displayError) {
383
411
  console.error(
384
412
  `${logPrefix} Could not display error in callback window:`,