mcp-use 1.10.6 → 1.11.0-canary.10

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 (135) hide show
  1. package/README.md +1 -1
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/{chunk-JH3ZOGLI.js → chunk-3GB7G5X7.js} +2 -2
  4. package/dist/{chunk-EEUJZMOP.js → chunk-5QAXQTDL.js} +1 -1
  5. package/dist/{chunk-44DFBJUL.js → chunk-BEGEDH6P.js} +196 -496
  6. package/dist/{chunk-FDKY2O5P.js → chunk-BLGIG2QD.js} +443 -969
  7. package/dist/{chunk-BLWPCOUZ.js → chunk-CBJTHTR4.js} +3 -8
  8. package/dist/{chunk-34R6SIER.js → chunk-FRUZDWXH.js} +1 -1
  9. package/dist/chunk-GUB5GQDD.js +101 -0
  10. package/dist/chunk-GXNAXUDI.js +0 -0
  11. package/dist/{chunk-CPG2WZUL.js → chunk-JRGQRPTN.js} +1 -1
  12. package/dist/chunk-MFSO5PUW.js +1049 -0
  13. package/dist/{chunk-D5WOXLJ2.js → chunk-NXFHUS7A.js} +171 -11
  14. package/dist/chunk-ULFNVP5Z.js +12 -0
  15. package/dist/chunk-UWWLWLS2.js +62 -0
  16. package/dist/chunk-VTEYN43V.js +1055 -0
  17. package/dist/{chunk-KIWNNI6F.js → chunk-XPTKLSBC.js} +16 -2
  18. package/dist/index.cjs +5065 -4608
  19. package/dist/index.d.ts +2 -3
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +53 -1068
  22. package/dist/{langfuse-N5Y5BSXK.js → langfuse-74RGPTAH.js} +2 -2
  23. package/dist/notifications-FLGIFS56.js +9 -0
  24. package/dist/src/adapters/base.d.ts +44 -0
  25. package/dist/src/adapters/base.d.ts.map +1 -1
  26. package/dist/src/adapters/index.cjs +1346 -0
  27. package/dist/src/adapters/index.js +11 -0
  28. package/dist/src/adapters/langchain_adapter.d.ts +12 -1
  29. package/dist/src/adapters/langchain_adapter.d.ts.map +1 -1
  30. package/dist/src/agents/index.cjs +3141 -159
  31. package/dist/src/agents/index.d.ts +2 -0
  32. package/dist/src/agents/index.d.ts.map +1 -1
  33. package/dist/src/agents/index.js +10 -6
  34. package/dist/src/agents/mcp_agent.d.ts +59 -37
  35. package/dist/src/agents/mcp_agent.d.ts.map +1 -1
  36. package/dist/src/agents/remote.d.ts +25 -0
  37. package/dist/src/agents/remote.d.ts.map +1 -1
  38. package/dist/src/agents/types.d.ts +76 -0
  39. package/dist/src/agents/types.d.ts.map +1 -1
  40. package/dist/src/agents/utils/index.d.ts +1 -0
  41. package/dist/src/agents/utils/index.d.ts.map +1 -1
  42. package/dist/src/agents/utils/llm_provider.d.ts +53 -0
  43. package/dist/src/agents/utils/llm_provider.d.ts.map +1 -0
  44. package/dist/src/browser.cjs +1856 -423
  45. package/dist/src/browser.d.ts +1 -2
  46. package/dist/src/browser.d.ts.map +1 -1
  47. package/dist/src/browser.js +26 -15
  48. package/dist/src/client/base.d.ts +1 -0
  49. package/dist/src/client/base.d.ts.map +1 -1
  50. package/dist/src/client/browser.d.ts +2 -2
  51. package/dist/src/client/browser.d.ts.map +1 -1
  52. package/dist/src/client/prompts.cjs +1 -1
  53. package/dist/src/client/prompts.js +5 -4
  54. package/dist/src/client.cjs +3787 -0
  55. package/dist/src/client.js +20 -0
  56. package/dist/src/config.d.ts.map +1 -1
  57. package/dist/src/connectors/base.d.ts +8 -0
  58. package/dist/src/connectors/base.d.ts.map +1 -1
  59. package/dist/src/connectors/index.d.ts +0 -1
  60. package/dist/src/connectors/index.d.ts.map +1 -1
  61. package/dist/src/managers/server_manager.d.ts.map +1 -1
  62. package/dist/src/managers/tools/connect_mcp_server.d.ts.map +1 -1
  63. package/dist/src/react/index.cjs +259 -298
  64. package/dist/src/react/index.js +6 -5
  65. package/dist/src/react/types.d.ts +42 -4
  66. package/dist/src/react/types.d.ts.map +1 -1
  67. package/dist/src/react/useMcp.d.ts.map +1 -1
  68. package/dist/src/react/useWidget.d.ts +11 -7
  69. package/dist/src/react/useWidget.d.ts.map +1 -1
  70. package/dist/src/react/widget-types.d.ts +6 -2
  71. package/dist/src/react/widget-types.d.ts.map +1 -1
  72. package/dist/src/server/endpoints/mount-mcp.d.ts.map +1 -1
  73. package/dist/src/server/index.cjs +1288 -140
  74. package/dist/src/server/index.d.ts +2 -0
  75. package/dist/src/server/index.d.ts.map +1 -1
  76. package/dist/src/server/index.js +1183 -102
  77. package/dist/src/server/mcp-server.d.ts +5 -1
  78. package/dist/src/server/mcp-server.d.ts.map +1 -1
  79. package/dist/src/server/notifications/index.d.ts +1 -1
  80. package/dist/src/server/notifications/index.d.ts.map +1 -1
  81. package/dist/src/server/notifications/notification-registration.d.ts +51 -0
  82. package/dist/src/server/notifications/notification-registration.d.ts.map +1 -1
  83. package/dist/src/server/sessions/index.d.ts +3 -1
  84. package/dist/src/server/sessions/index.d.ts.map +1 -1
  85. package/dist/src/server/sessions/session-manager.d.ts +36 -19
  86. package/dist/src/server/sessions/session-manager.d.ts.map +1 -1
  87. package/dist/src/server/sessions/stores/filesystem.d.ts +121 -0
  88. package/dist/src/server/sessions/stores/filesystem.d.ts.map +1 -0
  89. package/dist/src/server/sessions/stores/index.d.ts +94 -0
  90. package/dist/src/server/sessions/stores/index.d.ts.map +1 -0
  91. package/dist/src/server/sessions/stores/memory.d.ts +82 -0
  92. package/dist/src/server/sessions/stores/memory.d.ts.map +1 -0
  93. package/dist/src/server/sessions/stores/redis.d.ts +164 -0
  94. package/dist/src/server/sessions/stores/redis.d.ts.map +1 -0
  95. package/dist/src/server/sessions/streams/index.d.ts +77 -0
  96. package/dist/src/server/sessions/streams/index.d.ts.map +1 -0
  97. package/dist/src/server/sessions/streams/memory.d.ts +76 -0
  98. package/dist/src/server/sessions/streams/memory.d.ts.map +1 -0
  99. package/dist/src/server/sessions/streams/redis.d.ts +146 -0
  100. package/dist/src/server/sessions/streams/redis.d.ts.map +1 -0
  101. package/dist/src/server/types/common.d.ts +105 -28
  102. package/dist/src/server/types/common.d.ts.map +1 -1
  103. package/dist/src/server/types/resource.d.ts +16 -0
  104. package/dist/src/server/types/resource.d.ts.map +1 -1
  105. package/dist/src/server/types/widget.d.ts +21 -2
  106. package/dist/src/server/types/widget.d.ts.map +1 -1
  107. package/dist/src/server/utils/response-helpers.d.ts +12 -6
  108. package/dist/src/server/utils/response-helpers.d.ts.map +1 -1
  109. package/dist/src/server/widgets/index.d.ts +1 -1
  110. package/dist/src/server/widgets/index.d.ts.map +1 -1
  111. package/dist/src/server/widgets/mount-widgets-dev.d.ts.map +1 -1
  112. package/dist/src/server/widgets/setup-widget-routes.d.ts.map +1 -1
  113. package/dist/src/server/widgets/ui-resource-registration.d.ts.map +1 -1
  114. package/dist/src/server/widgets/widget-helpers.d.ts +22 -0
  115. package/dist/src/server/widgets/widget-helpers.d.ts.map +1 -1
  116. package/dist/src/server/widgets/widget-types.d.ts +2 -0
  117. package/dist/src/server/widgets/widget-types.d.ts.map +1 -1
  118. package/dist/src/session.d.ts +16 -2
  119. package/dist/src/session.d.ts.map +1 -1
  120. package/dist/src/task_managers/index.d.ts +10 -1
  121. package/dist/src/task_managers/index.d.ts.map +1 -1
  122. package/dist/src/task_managers/sse.d.ts +34 -1
  123. package/dist/src/task_managers/sse.d.ts.map +1 -1
  124. package/dist/src/task_managers/streamable_http.d.ts +8 -2
  125. package/dist/src/task_managers/streamable_http.d.ts.map +1 -1
  126. package/dist/src/version.d.ts +1 -1
  127. package/dist/src/version.d.ts.map +1 -1
  128. package/dist/{tool-execution-helpers-4X6A63AS.js → tool-execution-helpers-N7R7YGAW.js} +3 -3
  129. package/dist/tsup.config.d.ts.map +1 -1
  130. package/package.json +47 -14
  131. package/dist/src/connectors/websocket.d.ts +0 -38
  132. package/dist/src/connectors/websocket.d.ts.map +0 -1
  133. package/dist/src/task_managers/websocket.d.ts +0 -18
  134. package/dist/src/task_managers/websocket.d.ts.map +0 -1
  135. /package/dist/{chunk-EW4MJSHA.js → chunk-LGDFGYRL.js} +0 -0
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  BrowserMCPClient
3
- } from "./chunk-44DFBJUL.js";
3
+ } from "./chunk-GUB5GQDD.js";
4
4
  import {
5
5
  BrowserOAuthClientProvider,
6
6
  sanitizeUrl
7
7
  } from "./chunk-J75I2C26.js";
8
8
  import {
9
9
  Tel
10
- } from "./chunk-JH3ZOGLI.js";
10
+ } from "./chunk-3GB7G5X7.js";
11
11
  import {
12
12
  __name
13
13
  } from "./chunk-3GQAWCBQ.js";
@@ -101,6 +101,11 @@ function useMcp(options) {
101
101
  if (clientRef.current) {
102
102
  try {
103
103
  const serverName = "inspector-server";
104
+ const session = clientRef.current.getSession(serverName);
105
+ if (session && session._healthCheckCleanup) {
106
+ session._healthCheckCleanup();
107
+ session._healthCheckCleanup = null;
108
+ }
104
109
  await clientRef.current.closeSession(serverName);
105
110
  } catch (err) {
106
111
  if (!quiet) addLog("warn", "Error closing session:", err);
@@ -240,9 +245,25 @@ function useMcp(options) {
240
245
  serverName,
241
246
  false
242
247
  );
243
- if (onNotification) {
244
- session.on("notification", onNotification);
245
- }
248
+ session.on("notification", (notification) => {
249
+ onNotification?.(notification);
250
+ if (notification.method === "notifications/tools/list_changed") {
251
+ addLog("info", "Tools list changed, auto-refreshing...");
252
+ refreshTools().catch(
253
+ (err) => addLog("warn", "Auto-refresh tools failed:", err)
254
+ );
255
+ } else if (notification.method === "notifications/resources/list_changed") {
256
+ addLog("info", "Resources list changed, auto-refreshing...");
257
+ refreshResources().catch(
258
+ (err) => addLog("warn", "Auto-refresh resources failed:", err)
259
+ );
260
+ } else if (notification.method === "notifications/prompts/list_changed") {
261
+ addLog("info", "Prompts list changed, auto-refreshing...");
262
+ refreshPrompts().catch(
263
+ (err) => addLog("warn", "Auto-refresh prompts failed:", err)
264
+ );
265
+ }
266
+ });
246
267
  await session.initialize();
247
268
  addLog("info", "\u2705 Successfully connected to MCP server");
248
269
  addLog("info", "Server info:", session.connector.serverInfo);
@@ -258,6 +279,63 @@ function useMcp(options) {
258
279
  );
259
280
  setState("ready");
260
281
  successfulTransportRef.current = transportTypeParam;
282
+ const setupConnectionMonitoring = /* @__PURE__ */ __name(() => {
283
+ let healthCheckInterval = null;
284
+ let lastSuccessfulCheck = Date.now();
285
+ const HEALTH_CHECK_INTERVAL = 1e4;
286
+ const HEALTH_CHECK_TIMEOUT = 3e4;
287
+ const checkConnectionHealth = /* @__PURE__ */ __name(async () => {
288
+ if (!isMountedRef.current || stateRef.current !== "ready") {
289
+ if (healthCheckInterval) {
290
+ clearInterval(healthCheckInterval);
291
+ healthCheckInterval = null;
292
+ }
293
+ return;
294
+ }
295
+ try {
296
+ await session.connector.listTools();
297
+ lastSuccessfulCheck = Date.now();
298
+ } catch (err) {
299
+ const timeSinceLastSuccess = Date.now() - lastSuccessfulCheck;
300
+ if (timeSinceLastSuccess > HEALTH_CHECK_TIMEOUT) {
301
+ addLog(
302
+ "warn",
303
+ `Connection appears to be broken (no response for ${Math.round(timeSinceLastSuccess / 1e3)}s), attempting to reconnect...`
304
+ );
305
+ if (healthCheckInterval) {
306
+ clearInterval(healthCheckInterval);
307
+ healthCheckInterval = null;
308
+ }
309
+ if (autoReconnectRef.current && isMountedRef.current) {
310
+ setState("discovering");
311
+ addLog("info", "Auto-reconnecting to MCP server...");
312
+ setTimeout(
313
+ () => {
314
+ if (isMountedRef.current && stateRef.current === "discovering") {
315
+ connect();
316
+ }
317
+ },
318
+ typeof autoReconnectRef.current === "number" ? autoReconnectRef.current : DEFAULT_RECONNECT_DELAY
319
+ );
320
+ }
321
+ }
322
+ }
323
+ }, "checkConnectionHealth");
324
+ healthCheckInterval = setInterval(
325
+ checkConnectionHealth,
326
+ HEALTH_CHECK_INTERVAL
327
+ );
328
+ return () => {
329
+ if (healthCheckInterval) {
330
+ clearInterval(healthCheckInterval);
331
+ healthCheckInterval = null;
332
+ }
333
+ };
334
+ }, "setupConnectionMonitoring");
335
+ if (autoReconnect) {
336
+ const cleanup = setupConnectionMonitoring();
337
+ session._healthCheckCleanup = cleanup;
338
+ }
261
339
  Tel.getInstance().trackUseMcpConnection({
262
340
  url,
263
341
  transportType: transportTypeParam,
@@ -609,6 +687,70 @@ function useMcp(options) {
609
687
  throw err;
610
688
  }
611
689
  }, [state]);
690
+ const refreshTools = useCallback(async () => {
691
+ if (stateRef.current !== "ready" || !clientRef.current) {
692
+ addLog("debug", "Cannot refresh tools - client not ready");
693
+ return;
694
+ }
695
+ addLog("debug", "Refreshing tools list");
696
+ try {
697
+ const serverName = "inspector-server";
698
+ const session = clientRef.current.getSession(serverName);
699
+ if (!session) {
700
+ addLog("warn", "No active session found for tools refresh");
701
+ return;
702
+ }
703
+ const toolsResult = await session.connector.listTools();
704
+ setTools(toolsResult || []);
705
+ addLog("info", "Tools list refreshed successfully");
706
+ } catch (err) {
707
+ addLog("warn", "Failed to refresh tools:", err);
708
+ }
709
+ }, [addLog]);
710
+ const refreshResources = useCallback(async () => {
711
+ if (stateRef.current !== "ready" || !clientRef.current) {
712
+ addLog("debug", "Cannot refresh resources - client not ready");
713
+ return;
714
+ }
715
+ addLog("debug", "Refreshing resources list");
716
+ try {
717
+ const serverName = "inspector-server";
718
+ const session = clientRef.current.getSession(serverName);
719
+ if (!session) {
720
+ addLog("warn", "No active session found for resources refresh");
721
+ return;
722
+ }
723
+ const resourcesResult = await session.connector.listAllResources();
724
+ setResources(resourcesResult.resources || []);
725
+ addLog("info", "Resources list refreshed successfully");
726
+ } catch (err) {
727
+ addLog("warn", "Failed to refresh resources:", err);
728
+ }
729
+ }, [addLog]);
730
+ const refreshPrompts = useCallback(async () => {
731
+ if (stateRef.current !== "ready" || !clientRef.current) {
732
+ addLog("debug", "Cannot refresh prompts - client not ready");
733
+ return;
734
+ }
735
+ addLog("debug", "Refreshing prompts list");
736
+ try {
737
+ const serverName = "inspector-server";
738
+ const session = clientRef.current.getSession(serverName);
739
+ if (!session) {
740
+ addLog("warn", "No active session found for prompts refresh");
741
+ return;
742
+ }
743
+ const promptsResult = await session.connector.listPrompts();
744
+ setPrompts(promptsResult.prompts || []);
745
+ addLog("info", "Prompts list refreshed successfully");
746
+ } catch (err) {
747
+ addLog("warn", "Failed to refresh prompts:", err);
748
+ }
749
+ }, [addLog]);
750
+ const refreshAll = useCallback(async () => {
751
+ addLog("info", "Refreshing all lists (tools, resources, prompts)");
752
+ await Promise.all([refreshTools(), refreshResources(), refreshPrompts()]);
753
+ }, [refreshTools, refreshResources, refreshPrompts, addLog]);
612
754
  const getPrompt = useCallback(
613
755
  async (name, args) => {
614
756
  if (stateRef.current !== "ready" || !clientRef.current) {
@@ -760,6 +902,10 @@ function useMcp(options) {
760
902
  listResources,
761
903
  listPrompts,
762
904
  getPrompt,
905
+ refreshTools,
906
+ refreshResources,
907
+ refreshPrompts,
908
+ refreshAll,
763
909
  retry,
764
910
  disconnect,
765
911
  authenticate,
@@ -907,6 +1053,15 @@ function useWidget(defaultProps) {
907
1053
  const toolInput = provider === "openai" ? useOpenAiGlobal("toolInput") : urlParams.toolInput;
908
1054
  const toolOutput = provider === "openai" ? useOpenAiGlobal("toolOutput") : urlParams.toolOutput;
909
1055
  const toolResponseMetadata = useOpenAiGlobal("toolResponseMetadata");
1056
+ const widgetProps = useMemo(() => {
1057
+ if (toolResponseMetadata && typeof toolResponseMetadata === "object") {
1058
+ const metaProps = toolResponseMetadata["mcp-use/props"];
1059
+ if (metaProps) {
1060
+ return metaProps;
1061
+ }
1062
+ }
1063
+ return defaultProps || {};
1064
+ }, [toolResponseMetadata, defaultProps]);
910
1065
  const widgetState = useOpenAiGlobal("widgetState");
911
1066
  const theme = useOpenAiGlobal("theme");
912
1067
  const displayMode = useOpenAiGlobal("displayMode");
@@ -971,9 +1126,13 @@ function useWidget(defaultProps) {
971
1126
  },
972
1127
  [widgetState, localWidgetState]
973
1128
  );
1129
+ const isPending = useMemo(() => {
1130
+ return provider === "openai" && toolResponseMetadata === null;
1131
+ }, [provider, toolResponseMetadata]);
974
1132
  return {
975
1133
  // Props and state (with defaults)
976
- props: toolInput || defaultProps || {},
1134
+ props: widgetProps,
1135
+ toolInput: toolInput || {},
977
1136
  output: toolOutput ?? null,
978
1137
  metadata: toolResponseMetadata ?? null,
979
1138
  state: localWidgetState,
@@ -995,7 +1154,8 @@ function useWidget(defaultProps) {
995
1154
  openExternal,
996
1155
  requestDisplayMode,
997
1156
  // Availability
998
- isAvailable: isOpenAiAvailable
1157
+ isAvailable: isOpenAiAvailable,
1158
+ isPending
999
1159
  };
1000
1160
  }
1001
1161
  __name(useWidget, "useWidget");
@@ -1098,7 +1258,7 @@ function WidgetControls({
1098
1258
  );
1099
1259
  const isFullscreen = displayMode === "fullscreen" && isAvailable;
1100
1260
  const isPip = displayMode === "pip" && isAvailable;
1101
- const isDevMode = typeof window !== "undefined" && window.location.pathname.includes("/inspector/api/dev-widget/");
1261
+ const isInInspector = typeof window !== "undefined" && window.location.pathname.includes("/inspector/api/");
1102
1262
  useEffect4(() => {
1103
1263
  const timeoutId = setTimeout(() => {
1104
1264
  if (typeof window !== "undefined" && window.openai) {
@@ -1430,7 +1590,7 @@ function WidgetControls({
1430
1590
  className: getPositionClasses().join(" "),
1431
1591
  style: getPositionOffsetStyles()
1432
1592
  },
1433
- !isDevMode && /* @__PURE__ */ React4.createElement(React4.Fragment, null, !isFullscreen && !isPip && /* @__PURE__ */ React4.createElement(React4.Fragment, null, (viewControls === true || viewControls === "fullscreen") && /* @__PURE__ */ React4.createElement(IconButton, { onClick: handleFullscreen, label: "Fullscreen" }, /* @__PURE__ */ React4.createElement("path", { d: "M15 3h6v6" }), /* @__PURE__ */ React4.createElement("path", { d: "m21 3-7 7" }), /* @__PURE__ */ React4.createElement("path", { d: "m3 21 7-7" }), /* @__PURE__ */ React4.createElement("path", { d: "M9 21H3v-6" })), (viewControls === true || viewControls === "pip") && /* @__PURE__ */ React4.createElement(IconButton, { onClick: handlePip, label: "Picture in Picture" }, /* @__PURE__ */ React4.createElement("path", { d: "M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4" }), /* @__PURE__ */ React4.createElement("rect", { width: "10", height: "7", x: "12", y: "13", rx: "2" }))), enableDebugger && /* @__PURE__ */ React4.createElement(IconButton, { onClick: handleToggleOverlay, label: "Debug Info" }, /* @__PURE__ */ React4.createElement("path", { d: "M12 20v-9" }), /* @__PURE__ */ React4.createElement("path", { d: "M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z" }), /* @__PURE__ */ React4.createElement("path", { d: "M14.12 3.88 16 2" }), /* @__PURE__ */ React4.createElement("path", { d: "M21 21a4 4 0 0 0-3.81-4" }), /* @__PURE__ */ React4.createElement("path", { d: "M21 5a4 4 0 0 1-3.55 3.97" }), /* @__PURE__ */ React4.createElement("path", { d: "M22 13h-4" }), /* @__PURE__ */ React4.createElement("path", { d: "M3 21a4 4 0 0 1 3.81-4" }), /* @__PURE__ */ React4.createElement("path", { d: "M3 5a4 4 0 0 0 3.55 3.97" }), /* @__PURE__ */ React4.createElement("path", { d: "M6 13H2" }), /* @__PURE__ */ React4.createElement("path", { d: "m8 2 1.88 1.88" }), /* @__PURE__ */ React4.createElement("path", { d: "M9 7.13V6a3 3 0 1 1 6 0v1.13" })))
1593
+ !isInInspector && /* @__PURE__ */ React4.createElement(React4.Fragment, null, !isFullscreen && !isPip && /* @__PURE__ */ React4.createElement(React4.Fragment, null, (viewControls === true || viewControls === "fullscreen") && /* @__PURE__ */ React4.createElement(IconButton, { onClick: handleFullscreen, label: "Fullscreen" }, /* @__PURE__ */ React4.createElement("path", { d: "M15 3h6v6" }), /* @__PURE__ */ React4.createElement("path", { d: "m21 3-7 7" }), /* @__PURE__ */ React4.createElement("path", { d: "m3 21 7-7" }), /* @__PURE__ */ React4.createElement("path", { d: "M9 21H3v-6" })), (viewControls === true || viewControls === "pip") && /* @__PURE__ */ React4.createElement(IconButton, { onClick: handlePip, label: "Picture in Picture" }, /* @__PURE__ */ React4.createElement("path", { d: "M21 9V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v10c0 1.1.9 2 2 2h4" }), /* @__PURE__ */ React4.createElement("rect", { width: "10", height: "7", x: "12", y: "13", rx: "2" }))), enableDebugger && /* @__PURE__ */ React4.createElement(IconButton, { onClick: handleToggleOverlay, label: "Debug Info" }, /* @__PURE__ */ React4.createElement("path", { d: "M12 20v-9" }), /* @__PURE__ */ React4.createElement("path", { d: "M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z" }), /* @__PURE__ */ React4.createElement("path", { d: "M14.12 3.88 16 2" }), /* @__PURE__ */ React4.createElement("path", { d: "M21 21a4 4 0 0 0-3.81-4" }), /* @__PURE__ */ React4.createElement("path", { d: "M21 5a4 4 0 0 1-3.55 3.97" }), /* @__PURE__ */ React4.createElement("path", { d: "M22 13h-4" }), /* @__PURE__ */ React4.createElement("path", { d: "M3 21a4 4 0 0 1 3.81-4" }), /* @__PURE__ */ React4.createElement("path", { d: "M3 5a4 4 0 0 0 3.55 3.97" }), /* @__PURE__ */ React4.createElement("path", { d: "M6 13H2" }), /* @__PURE__ */ React4.createElement("path", { d: "m8 2 1.88 1.88" }), /* @__PURE__ */ React4.createElement("path", { d: "M9 7.13V6a3 3 0 1 1 6 0v1.13" })))
1434
1594
  ),
1435
1595
  children
1436
1596
  ), isOverlayOpen && enableDebugger && /* @__PURE__ */ React4.createElement(
@@ -1588,7 +1748,7 @@ function McpUseProvider({
1588
1748
  let mounted = true;
1589
1749
  (async () => {
1590
1750
  try {
1591
- const routerModule = await import("react-router-dom");
1751
+ const routerModule = await import("react-router");
1592
1752
  if (mounted) {
1593
1753
  setBrowserRouter(() => routerModule.BrowserRouter);
1594
1754
  setIsRouterLoading(false);
@@ -1597,7 +1757,7 @@ function McpUseProvider({
1597
1757
  if (mounted) {
1598
1758
  setRouterError(
1599
1759
  new Error(
1600
- "\u274C react-router-dom not installed!\n\nTo use MCP widgets with McpUseProvider, you need to install:\n\n npm install react-router-dom\n # or\n pnpm add react-router-dom\n\nThis dependency is automatically included in projects created with 'create-mcp-use-app'."
1760
+ "\u274C react-router not installed!\n\nTo use MCP widgets with McpUseProvider, you need to install:\n\n npm install react-router\n # or\n pnpm add react-router\n\nThis dependency is automatically included in projects created with 'create-mcp-use-app'."
1601
1761
  )
1602
1762
  );
1603
1763
  setIsRouterLoading(false);
@@ -0,0 +1,12 @@
1
+ import {
2
+ CODE_MODE_AGENT_PROMPT
3
+ } from "./chunk-CBJTHTR4.js";
4
+
5
+ // src/client/prompts.ts
6
+ var PROMPTS = {
7
+ CODE_MODE: CODE_MODE_AGENT_PROMPT
8
+ };
9
+
10
+ export {
11
+ PROMPTS
12
+ };
@@ -0,0 +1,62 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-3GQAWCBQ.js";
4
+
5
+ // src/server/utils/jsonrpc-helpers.ts
6
+ function createNotification(method, params) {
7
+ return {
8
+ jsonrpc: "2.0",
9
+ method,
10
+ ...params && { params }
11
+ };
12
+ }
13
+ __name(createNotification, "createNotification");
14
+ function createRequest(id, method, params) {
15
+ return {
16
+ jsonrpc: "2.0",
17
+ id,
18
+ method,
19
+ ...params && { params }
20
+ };
21
+ }
22
+ __name(createRequest, "createRequest");
23
+
24
+ // src/server/sessions/notifications.ts
25
+ async function sendNotificationToAll(sessions, method, params) {
26
+ const notification = createNotification(method, params);
27
+ for (const [sessionId, session] of sessions.entries()) {
28
+ try {
29
+ await session.transport.send(notification);
30
+ } catch (error) {
31
+ console.warn(
32
+ `[MCP] Failed to send notification to session ${sessionId}:`,
33
+ error
34
+ );
35
+ }
36
+ }
37
+ }
38
+ __name(sendNotificationToAll, "sendNotificationToAll");
39
+ async function sendNotificationToSession(sessions, sessionId, method, params) {
40
+ const session = sessions.get(sessionId);
41
+ if (!session) {
42
+ return false;
43
+ }
44
+ const notification = createNotification(method, params);
45
+ try {
46
+ await session.transport.send(notification);
47
+ return true;
48
+ } catch (error) {
49
+ console.warn(
50
+ `[MCP] Failed to send notification to session ${sessionId}:`,
51
+ error
52
+ );
53
+ return false;
54
+ }
55
+ }
56
+ __name(sendNotificationToSession, "sendNotificationToSession");
57
+
58
+ export {
59
+ createRequest,
60
+ sendNotificationToAll,
61
+ sendNotificationToSession
62
+ };