@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
package/dist/index.js CHANGED
@@ -3540,6 +3540,9 @@ var SSEConnectionManager = class {
3540
3540
  case "connect":
3541
3541
  result = await this.connect(request.params);
3542
3542
  break;
3543
+ case "reconnect":
3544
+ result = await this.reconnect(request.params);
3545
+ break;
3543
3546
  case "disconnect":
3544
3547
  result = await this.disconnect(request.params);
3545
3548
  break;
@@ -3682,6 +3685,66 @@ var SSEConnectionManager = class {
3682
3685
  throw error;
3683
3686
  }
3684
3687
  }
3688
+ /**
3689
+ * Reconnect to an MCP server — tears down the active client transport/connection
3690
+ * and creates a fresh connection while reusing the existing session credentials in a single RPC call.
3691
+ */
3692
+ async reconnect(params) {
3693
+ const { serverId: rawServerId, serverName, serverUrl, callbackUrl, transportType } = params;
3694
+ const headers = normalizeHeaders(params.headers);
3695
+ const serverId = rawServerId && rawServerId.length <= 12 ? rawServerId : generateServerId();
3696
+ const existingSessions = await sessions.list(this.userId);
3697
+ const duplicate = existingSessions.find(
3698
+ (s) => s.serverId === serverId || s.serverUrl === serverUrl
3699
+ );
3700
+ const sessionId = duplicate ? duplicate.sessionId : await sessions.generateSessionId();
3701
+ if (duplicate) {
3702
+ const existingClient = this.clients.get(duplicate.sessionId);
3703
+ if (existingClient) {
3704
+ await existingClient.disconnect();
3705
+ this.clients.delete(duplicate.sessionId);
3706
+ }
3707
+ }
3708
+ try {
3709
+ const clientMetadata = await this.getResolvedClientMetadata();
3710
+ const client = new MCPClient({
3711
+ userId: this.userId,
3712
+ sessionId,
3713
+ serverId,
3714
+ serverName,
3715
+ serverUrl,
3716
+ callbackUrl,
3717
+ transportType,
3718
+ headers,
3719
+ ...clientMetadata
3720
+ });
3721
+ this.clients.set(sessionId, client);
3722
+ client.onConnectionEvent((event) => {
3723
+ this.emitConnectionEvent(event);
3724
+ });
3725
+ client.onObservabilityEvent((event) => {
3726
+ this.sendEvent(event);
3727
+ });
3728
+ await client.connect();
3729
+ await this.listPolicyFilteredTools(sessionId);
3730
+ return { sessionId, success: true };
3731
+ } catch (error) {
3732
+ if (error instanceof UnauthorizedError) {
3733
+ this.clients.delete(sessionId);
3734
+ return { sessionId, success: true };
3735
+ }
3736
+ this.emitConnectionEvent({
3737
+ type: "error",
3738
+ sessionId,
3739
+ serverId,
3740
+ error: error instanceof Error ? error.message : "Connection failed",
3741
+ errorType: "connection",
3742
+ timestamp: Date.now()
3743
+ });
3744
+ this.clients.delete(sessionId);
3745
+ throw error;
3746
+ }
3747
+ }
3685
3748
  /**
3686
3749
  * Disconnect from an MCP server
3687
3750
  */
@@ -4216,6 +4279,9 @@ var SSEClient = class {
4216
4279
  async disconnectFromServer(sessionId) {
4217
4280
  return this.sendRequest("disconnect", { sessionId });
4218
4281
  }
4282
+ async reconnectToServer(params) {
4283
+ return this.sendRequest("reconnect", params);
4284
+ }
4219
4285
  async setToolPolicy(sessionId, toolPolicy) {
4220
4286
  return this.sendRequest("setToolPolicy", { sessionId, toolPolicy });
4221
4287
  }