@mcp-ts/sdk 2.5.0 → 2.5.1

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 (58) hide show
  1. package/dist/adapters/agui-adapter.d.mts +3 -3
  2. package/dist/adapters/agui-adapter.d.ts +3 -3
  3. package/dist/adapters/agui-middleware.d.mts +3 -3
  4. package/dist/adapters/agui-middleware.d.ts +3 -3
  5. package/dist/adapters/ai-adapter.d.mts +3 -3
  6. package/dist/adapters/ai-adapter.d.ts +3 -3
  7. package/dist/adapters/langchain-adapter.d.mts +3 -3
  8. package/dist/adapters/langchain-adapter.d.ts +3 -3
  9. package/dist/adapters/mastra-adapter.d.mts +2 -2
  10. package/dist/adapters/mastra-adapter.d.ts +2 -2
  11. package/dist/client/index.d.mts +2 -2
  12. package/dist/client/index.d.ts +2 -2
  13. package/dist/client/index.js +3 -0
  14. package/dist/client/index.js.map +1 -1
  15. package/dist/client/index.mjs +3 -0
  16. package/dist/client/index.mjs.map +1 -1
  17. package/dist/client/react.d.mts +4 -4
  18. package/dist/client/react.d.ts +4 -4
  19. package/dist/client/react.js +22 -37
  20. package/dist/client/react.js.map +1 -1
  21. package/dist/client/react.mjs +22 -37
  22. package/dist/client/react.mjs.map +1 -1
  23. package/dist/client/vue.d.mts +4 -4
  24. package/dist/client/vue.d.ts +4 -4
  25. package/dist/client/vue.js +3 -0
  26. package/dist/client/vue.js.map +1 -1
  27. package/dist/client/vue.mjs +3 -0
  28. package/dist/client/vue.mjs.map +1 -1
  29. package/dist/{index-sVcqrhf7.d.ts → index-BEdyuz1M.d.ts} +2 -1
  30. package/dist/{index-CTURVnom.d.mts → index-C99wE2Zf.d.mts} +2 -1
  31. package/dist/index.d.mts +4 -4
  32. package/dist/index.d.ts +4 -4
  33. package/dist/index.js +66 -0
  34. package/dist/index.js.map +1 -1
  35. package/dist/index.mjs +66 -0
  36. package/dist/index.mjs.map +1 -1
  37. package/dist/{multi-session-client-DMZGVABI.d.mts → multi-session-client-CclWRxTD.d.mts} +1 -1
  38. package/dist/{multi-session-client-CSPSHHla.d.ts → multi-session-client-DzvZD6Tt.d.ts} +1 -1
  39. package/dist/server/index.d.mts +9 -4
  40. package/dist/server/index.d.ts +9 -4
  41. package/dist/server/index.js +63 -0
  42. package/dist/server/index.js.map +1 -1
  43. package/dist/server/index.mjs +63 -0
  44. package/dist/server/index.mjs.map +1 -1
  45. package/dist/shared/index.d.mts +4 -4
  46. package/dist/shared/index.d.ts +4 -4
  47. package/dist/shared/index.js.map +1 -1
  48. package/dist/shared/index.mjs.map +1 -1
  49. package/dist/{tool-router-CVLBaCwH.d.mts → tool-router-C9ECn3FX.d.mts} +1 -1
  50. package/dist/{tool-router-CS9l0w4a.d.ts → tool-router-CUSSk6lT.d.ts} +1 -1
  51. package/dist/{types-DK_NGWd4.d.mts → types-CbFbPkfQ.d.mts} +3 -2
  52. package/dist/{types-DK_NGWd4.d.ts → types-CbFbPkfQ.d.ts} +3 -2
  53. package/package.json +2 -2
  54. package/src/client/core/sse-client.ts +4 -0
  55. package/src/client/react/oauth-popup.tsx +17 -24
  56. package/src/client/react/use-mcp.ts +6 -15
  57. package/src/server/handlers/sse-handler.ts +86 -0
  58. package/src/shared/types.ts +4 -0
@@ -37,6 +37,9 @@ var SSEClient = class {
37
37
  async disconnectFromServer(sessionId) {
38
38
  return this.sendRequest("disconnect", { sessionId });
39
39
  }
40
+ async reconnectToServer(params) {
41
+ return this.sendRequest("reconnect", params);
42
+ }
40
43
  async setToolPolicy(sessionId, toolPolicy) {
41
44
  return this.sendRequest("setToolPolicy", { sessionId, toolPolicy });
42
45
  }
@@ -475,21 +478,10 @@ function useMcp(options) {
475
478
  if (!clientRef.current) {
476
479
  throw new Error("SSE client not initialized");
477
480
  }
478
- const existing = connections.find(
479
- (c) => c.serverId === params.serverId || c.serverUrl === params.serverUrl
480
- );
481
- if (existing) {
482
- await clientRef.current.disconnectFromServer(existing.sessionId);
483
- if (isMountedRef.current) {
484
- setConnections(
485
- (prev) => prev.filter((c) => c.sessionId !== existing.sessionId)
486
- );
487
- }
488
- }
489
- const result = await clientRef.current.connectToServer(params);
481
+ const result = await clientRef.current.reconnectToServer(params);
490
482
  return result.sessionId;
491
483
  },
492
- [connections]
484
+ []
493
485
  );
494
486
  const disconnect = useCallback(async (sessionId) => {
495
487
  if (!clientRef.current) {
@@ -740,7 +732,6 @@ function createOAuthPopupRedirectHandler(options = {}) {
740
732
  openCenteredPopup(url, {
741
733
  ...options,
742
734
  onBlocked: options.onBlocked ?? ((blockedUrl) => {
743
- window.alert("Popup blocked! Allow popups for this site to complete authentication.");
744
735
  window.location.href = blockedUrl;
745
736
  })
746
737
  });
@@ -761,28 +752,24 @@ function useMcpOAuthPopup(connections, finishAuth) {
761
752
  const popupWindow = event.source && "postMessage" in event.source ? event.source : null;
762
753
  const rawState = typeof event.data.state === "string" ? event.data.state : typeof event.data.sessionId === "string" ? event.data.sessionId : "";
763
754
  const targetSessionId = rawState ? parseOAuthState(rawState)?.sessionId || rawState : "";
764
- if (popupWindow && targetSessionId) {
755
+ if (targetSessionId) {
765
756
  pendingPopupsRef.current.set(targetSessionId, { popupWindow, state: rawState });
766
757
  }
767
758
  if (!targetSessionId) {
768
- if (popupWindow) {
769
- postPopupResult(popupWindow, {
770
- success: false,
771
- error: "Missing OAuth session identifier"
772
- });
773
- }
759
+ postPopupResult(popupWindow, {
760
+ success: false,
761
+ error: "Missing OAuth session identifier"
762
+ });
774
763
  return;
775
764
  }
776
765
  const targetSession = connections.find((connection) => connection.sessionId === targetSessionId);
777
766
  if (!targetSession) {
778
- if (popupWindow) {
779
- postPopupResult(popupWindow, {
780
- sessionId: targetSessionId,
781
- state: rawState,
782
- success: false,
783
- error: "OAuth session not found in the current client state"
784
- });
785
- }
767
+ postPopupResult(popupWindow, {
768
+ sessionId: targetSessionId,
769
+ state: rawState,
770
+ success: false,
771
+ error: "OAuth session not found in the current client state"
772
+ });
786
773
  return;
787
774
  }
788
775
  const codeKey = `${targetSession.sessionId}:${code}`;
@@ -795,14 +782,12 @@ function useMcpOAuthPopup(connections, finishAuth) {
795
782
  } catch (error) {
796
783
  processingCodesRef.current.delete(codeKey);
797
784
  pendingPopupsRef.current.delete(targetSession.sessionId);
798
- if (popupWindow) {
799
- postPopupResult(popupWindow, {
800
- sessionId: rawState,
801
- state: rawState,
802
- success: false,
803
- error: error instanceof Error ? error.message : "Failed to finish auth"
804
- });
805
- }
785
+ postPopupResult(popupWindow, {
786
+ sessionId: rawState,
787
+ state: rawState,
788
+ success: false,
789
+ error: error instanceof Error ? error.message : "Failed to finish auth"
790
+ });
806
791
  }
807
792
  };
808
793
  const channel = createAuthBroadcastChannel();