@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
@@ -3386,6 +3386,9 @@ var SSEConnectionManager = class {
3386
3386
  case "connect":
3387
3387
  result = await this.connect(request.params);
3388
3388
  break;
3389
+ case "reconnect":
3390
+ result = await this.reconnect(request.params);
3391
+ break;
3389
3392
  case "disconnect":
3390
3393
  result = await this.disconnect(request.params);
3391
3394
  break;
@@ -3528,6 +3531,66 @@ var SSEConnectionManager = class {
3528
3531
  throw error;
3529
3532
  }
3530
3533
  }
3534
+ /**
3535
+ * Reconnect to an MCP server — tears down the active client transport/connection
3536
+ * and creates a fresh connection while reusing the existing session credentials in a single RPC call.
3537
+ */
3538
+ async reconnect(params) {
3539
+ const { serverId: rawServerId, serverName, serverUrl, callbackUrl, transportType } = params;
3540
+ const headers = normalizeHeaders(params.headers);
3541
+ const serverId = rawServerId && rawServerId.length <= 12 ? rawServerId : generateServerId();
3542
+ const existingSessions = await sessions.list(this.userId);
3543
+ const duplicate = existingSessions.find(
3544
+ (s) => s.serverId === serverId || s.serverUrl === serverUrl
3545
+ );
3546
+ const sessionId = duplicate ? duplicate.sessionId : await sessions.generateSessionId();
3547
+ if (duplicate) {
3548
+ const existingClient = this.clients.get(duplicate.sessionId);
3549
+ if (existingClient) {
3550
+ await existingClient.disconnect();
3551
+ this.clients.delete(duplicate.sessionId);
3552
+ }
3553
+ }
3554
+ try {
3555
+ const clientMetadata = await this.getResolvedClientMetadata();
3556
+ const client = new MCPClient({
3557
+ userId: this.userId,
3558
+ sessionId,
3559
+ serverId,
3560
+ serverName,
3561
+ serverUrl,
3562
+ callbackUrl,
3563
+ transportType,
3564
+ headers,
3565
+ ...clientMetadata
3566
+ });
3567
+ this.clients.set(sessionId, client);
3568
+ client.onConnectionEvent((event) => {
3569
+ this.emitConnectionEvent(event);
3570
+ });
3571
+ client.onObservabilityEvent((event) => {
3572
+ this.sendEvent(event);
3573
+ });
3574
+ await client.connect();
3575
+ await this.listPolicyFilteredTools(sessionId);
3576
+ return { sessionId, success: true };
3577
+ } catch (error) {
3578
+ if (error instanceof UnauthorizedError) {
3579
+ this.clients.delete(sessionId);
3580
+ return { sessionId, success: true };
3581
+ }
3582
+ this.emitConnectionEvent({
3583
+ type: "error",
3584
+ sessionId,
3585
+ serverId,
3586
+ error: error instanceof Error ? error.message : "Connection failed",
3587
+ errorType: "connection",
3588
+ timestamp: Date.now()
3589
+ });
3590
+ this.clients.delete(sessionId);
3591
+ throw error;
3592
+ }
3593
+ }
3531
3594
  /**
3532
3595
  * Disconnect from an MCP server
3533
3596
  */