@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.
- package/dist/adapters/agui-adapter.d.mts +3 -3
- package/dist/adapters/agui-adapter.d.ts +3 -3
- package/dist/adapters/agui-middleware.d.mts +3 -3
- package/dist/adapters/agui-middleware.d.ts +3 -3
- package/dist/adapters/ai-adapter.d.mts +3 -3
- package/dist/adapters/ai-adapter.d.ts +3 -3
- package/dist/adapters/langchain-adapter.d.mts +3 -3
- package/dist/adapters/langchain-adapter.d.ts +3 -3
- package/dist/adapters/mastra-adapter.d.mts +2 -2
- package/dist/adapters/mastra-adapter.d.ts +2 -2
- package/dist/client/index.d.mts +2 -2
- package/dist/client/index.d.ts +2 -2
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/index.mjs +3 -0
- package/dist/client/index.mjs.map +1 -1
- package/dist/client/react.d.mts +4 -4
- package/dist/client/react.d.ts +4 -4
- package/dist/client/react.js +22 -37
- package/dist/client/react.js.map +1 -1
- package/dist/client/react.mjs +22 -37
- package/dist/client/react.mjs.map +1 -1
- package/dist/client/vue.d.mts +4 -4
- package/dist/client/vue.d.ts +4 -4
- package/dist/client/vue.js +3 -0
- package/dist/client/vue.js.map +1 -1
- package/dist/client/vue.mjs +3 -0
- package/dist/client/vue.mjs.map +1 -1
- package/dist/{index-sVcqrhf7.d.ts → index-BEdyuz1M.d.ts} +2 -1
- package/dist/{index-CTURVnom.d.mts → index-C99wE2Zf.d.mts} +2 -1
- package/dist/index.d.mts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +66 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +66 -0
- package/dist/index.mjs.map +1 -1
- package/dist/{multi-session-client-DMZGVABI.d.mts → multi-session-client-CclWRxTD.d.mts} +1 -1
- package/dist/{multi-session-client-CSPSHHla.d.ts → multi-session-client-DzvZD6Tt.d.ts} +1 -1
- package/dist/server/index.d.mts +9 -4
- package/dist/server/index.d.ts +9 -4
- package/dist/server/index.js +63 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +63 -0
- package/dist/server/index.mjs.map +1 -1
- package/dist/shared/index.d.mts +4 -4
- package/dist/shared/index.d.ts +4 -4
- package/dist/shared/index.js.map +1 -1
- package/dist/shared/index.mjs.map +1 -1
- package/dist/{tool-router-CVLBaCwH.d.mts → tool-router-C9ECn3FX.d.mts} +1 -1
- package/dist/{tool-router-CS9l0w4a.d.ts → tool-router-CUSSk6lT.d.ts} +1 -1
- package/dist/{types-DK_NGWd4.d.mts → types-CbFbPkfQ.d.mts} +3 -2
- package/dist/{types-DK_NGWd4.d.ts → types-CbFbPkfQ.d.ts} +3 -2
- package/package.json +2 -2
- package/src/client/core/sse-client.ts +4 -0
- package/src/client/react/oauth-popup.tsx +17 -24
- package/src/client/react/use-mcp.ts +6 -15
- package/src/server/handlers/sse-handler.ts +86 -0
- package/src/shared/types.ts +4 -0
package/dist/client/react.mjs
CHANGED
|
@@ -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
|
|
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
|
-
[
|
|
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 (
|
|
755
|
+
if (targetSessionId) {
|
|
765
756
|
pendingPopupsRef.current.set(targetSessionId, { popupWindow, state: rawState });
|
|
766
757
|
}
|
|
767
758
|
if (!targetSessionId) {
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
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
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
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
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
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();
|