@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.mjs CHANGED
@@ -3458,6 +3458,9 @@ var SSEConnectionManager = class {
3458
3458
  case "connect":
3459
3459
  result = await this.connect(request.params);
3460
3460
  break;
3461
+ case "reconnect":
3462
+ result = await this.reconnect(request.params);
3463
+ break;
3461
3464
  case "disconnect":
3462
3465
  result = await this.disconnect(request.params);
3463
3466
  break;
@@ -3600,6 +3603,66 @@ var SSEConnectionManager = class {
3600
3603
  throw error;
3601
3604
  }
3602
3605
  }
3606
+ /**
3607
+ * Reconnect to an MCP server — tears down the active client transport/connection
3608
+ * and creates a fresh connection while reusing the existing session credentials in a single RPC call.
3609
+ */
3610
+ async reconnect(params) {
3611
+ const { serverId: rawServerId, serverName, serverUrl, callbackUrl, transportType } = params;
3612
+ const headers = normalizeHeaders(params.headers);
3613
+ const serverId = rawServerId && rawServerId.length <= 12 ? rawServerId : generateServerId();
3614
+ const existingSessions = await sessions.list(this.userId);
3615
+ const duplicate = existingSessions.find(
3616
+ (s) => s.serverId === serverId || s.serverUrl === serverUrl
3617
+ );
3618
+ const sessionId = duplicate ? duplicate.sessionId : await sessions.generateSessionId();
3619
+ if (duplicate) {
3620
+ const existingClient = this.clients.get(duplicate.sessionId);
3621
+ if (existingClient) {
3622
+ await existingClient.disconnect();
3623
+ this.clients.delete(duplicate.sessionId);
3624
+ }
3625
+ }
3626
+ try {
3627
+ const clientMetadata = await this.getResolvedClientMetadata();
3628
+ const client = new MCPClient({
3629
+ userId: this.userId,
3630
+ sessionId,
3631
+ serverId,
3632
+ serverName,
3633
+ serverUrl,
3634
+ callbackUrl,
3635
+ transportType,
3636
+ headers,
3637
+ ...clientMetadata
3638
+ });
3639
+ this.clients.set(sessionId, client);
3640
+ client.onConnectionEvent((event) => {
3641
+ this.emitConnectionEvent(event);
3642
+ });
3643
+ client.onObservabilityEvent((event) => {
3644
+ this.sendEvent(event);
3645
+ });
3646
+ await client.connect();
3647
+ await this.listPolicyFilteredTools(sessionId);
3648
+ return { sessionId, success: true };
3649
+ } catch (error) {
3650
+ if (error instanceof UnauthorizedError) {
3651
+ this.clients.delete(sessionId);
3652
+ return { sessionId, success: true };
3653
+ }
3654
+ this.emitConnectionEvent({
3655
+ type: "error",
3656
+ sessionId,
3657
+ serverId,
3658
+ error: error instanceof Error ? error.message : "Connection failed",
3659
+ errorType: "connection",
3660
+ timestamp: Date.now()
3661
+ });
3662
+ this.clients.delete(sessionId);
3663
+ throw error;
3664
+ }
3665
+ }
3603
3666
  /**
3604
3667
  * Disconnect from an MCP server
3605
3668
  */
@@ -4127,6 +4190,9 @@ var SSEClient = class {
4127
4190
  async disconnectFromServer(sessionId) {
4128
4191
  return this.sendRequest("disconnect", { sessionId });
4129
4192
  }
4193
+ async reconnectToServer(params) {
4194
+ return this.sendRequest("reconnect", params);
4195
+ }
4130
4196
  async setToolPolicy(sessionId, toolPolicy) {
4131
4197
  return this.sendRequest("setToolPolicy", { sessionId, toolPolicy });
4132
4198
  }