@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
@@ -1,4 +1,4 @@
1
- import { m as Event, M as McpConnectionEvent, t as McpObservabilityEvent, s as McpConnectionState, A as ToolClientProvider, T as ToolClient } from './types-DK_NGWd4.mjs';
1
+ import { m as Event, M as McpConnectionEvent, t as McpObservabilityEvent, s as McpConnectionState, A as ToolClientProvider, T as ToolClient } from './types-CbFbPkfQ.mjs';
2
2
  import { ListToolsResult, CallToolResult, ListPromptsResult, GetPromptResult, ListResourcesResult, ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
3
3
  import { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
4
4
  import { OAuthClientMetadata, OAuthClientInformationMixed, OAuthClientInformationFull, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
@@ -1,4 +1,4 @@
1
- import { m as Event, M as McpConnectionEvent, t as McpObservabilityEvent, s as McpConnectionState, A as ToolClientProvider, T as ToolClient } from './types-DK_NGWd4.js';
1
+ import { m as Event, M as McpConnectionEvent, t as McpObservabilityEvent, s as McpConnectionState, A as ToolClientProvider, T as ToolClient } from './types-CbFbPkfQ.js';
2
2
  import { ListToolsResult, CallToolResult, ListPromptsResult, GetPromptResult, ListResourcesResult, ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
3
3
  import { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
4
4
  import { OAuthClientMetadata, OAuthClientInformationMixed, OAuthClientInformationFull, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
@@ -1,8 +1,8 @@
1
- import { c as SessionMutationListener, e as SessionStore } from '../multi-session-client-DMZGVABI.mjs';
2
- export { M as MCPClient, a as MultiSessionClient, S as Session, b as SessionMutationEvent, d as SessionMutationType, f as StorageOAuthClientProvider } from '../multi-session-client-DMZGVABI.mjs';
1
+ import { c as SessionMutationListener, e as SessionStore } from '../multi-session-client-CclWRxTD.mjs';
2
+ export { M as MCPClient, a as MultiSessionClient, S as Session, b as SessionMutationEvent, d as SessionMutationType, f as StorageOAuthClientProvider } from '../multi-session-client-CclWRxTD.mjs';
3
3
  export { U as UnauthorizedError, s as sanitizeServerLabel } from '../utils-DELRKQPU.mjs';
4
- import { M as McpConnectionEvent, t as McpObservabilityEvent, x as McpRpcResponse, w as McpRpcRequest } from '../types-DK_NGWd4.mjs';
5
- export { a as CallToolRequest, b as CallToolResponse, f as ConnectRequest, g as ConnectResponse, k as Disposable, E as Emitter, m as Event, q as ListToolsResponse, s as McpConnectionState, T as ToolClient, A as ToolClientProvider, B as ToolInfo } from '../types-DK_NGWd4.mjs';
4
+ import { M as McpConnectionEvent, t as McpObservabilityEvent, x as McpRpcResponse, w as McpRpcRequest } from '../types-CbFbPkfQ.mjs';
5
+ export { a as CallToolRequest, b as CallToolResponse, f as ConnectRequest, g as ConnectResponse, k as Disposable, E as Emitter, m as Event, q as ListToolsResponse, s as McpConnectionState, T as ToolClient, A as ToolClientProvider, B as ToolInfo } from '../types-CbFbPkfQ.mjs';
6
6
  export { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
7
7
  export { CallToolResult, ListToolsResult, Tool } from '@modelcontextprotocol/sdk/types.js';
8
8
  import '@modelcontextprotocol/sdk/client/auth.js';
@@ -79,6 +79,11 @@ declare class SSEConnectionManager {
79
79
  * Connect to an MCP server
80
80
  */
81
81
  private connect;
82
+ /**
83
+ * Reconnect to an MCP server — tears down the active client transport/connection
84
+ * and creates a fresh connection while reusing the existing session credentials in a single RPC call.
85
+ */
86
+ private reconnect;
82
87
  /**
83
88
  * Disconnect from an MCP server
84
89
  */
@@ -1,8 +1,8 @@
1
- import { c as SessionMutationListener, e as SessionStore } from '../multi-session-client-CSPSHHla.js';
2
- export { M as MCPClient, a as MultiSessionClient, S as Session, b as SessionMutationEvent, d as SessionMutationType, f as StorageOAuthClientProvider } from '../multi-session-client-CSPSHHla.js';
1
+ import { c as SessionMutationListener, e as SessionStore } from '../multi-session-client-DzvZD6Tt.js';
2
+ export { M as MCPClient, a as MultiSessionClient, S as Session, b as SessionMutationEvent, d as SessionMutationType, f as StorageOAuthClientProvider } from '../multi-session-client-DzvZD6Tt.js';
3
3
  export { U as UnauthorizedError, s as sanitizeServerLabel } from '../utils-DELRKQPU.js';
4
- import { M as McpConnectionEvent, t as McpObservabilityEvent, x as McpRpcResponse, w as McpRpcRequest } from '../types-DK_NGWd4.js';
5
- export { a as CallToolRequest, b as CallToolResponse, f as ConnectRequest, g as ConnectResponse, k as Disposable, E as Emitter, m as Event, q as ListToolsResponse, s as McpConnectionState, T as ToolClient, A as ToolClientProvider, B as ToolInfo } from '../types-DK_NGWd4.js';
4
+ import { M as McpConnectionEvent, t as McpObservabilityEvent, x as McpRpcResponse, w as McpRpcRequest } from '../types-CbFbPkfQ.js';
5
+ export { a as CallToolRequest, b as CallToolResponse, f as ConnectRequest, g as ConnectResponse, k as Disposable, E as Emitter, m as Event, q as ListToolsResponse, s as McpConnectionState, T as ToolClient, A as ToolClientProvider, B as ToolInfo } from '../types-CbFbPkfQ.js';
6
6
  export { OAuthClientInformation, OAuthClientInformationFull, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
7
7
  export { CallToolResult, ListToolsResult, Tool } from '@modelcontextprotocol/sdk/types.js';
8
8
  import '@modelcontextprotocol/sdk/client/auth.js';
@@ -79,6 +79,11 @@ declare class SSEConnectionManager {
79
79
  * Connect to an MCP server
80
80
  */
81
81
  private connect;
82
+ /**
83
+ * Reconnect to an MCP server — tears down the active client transport/connection
84
+ * and creates a fresh connection while reusing the existing session credentials in a single RPC call.
85
+ */
86
+ private reconnect;
82
87
  /**
83
88
  * Disconnect from an MCP server
84
89
  */
@@ -3465,6 +3465,9 @@ var SSEConnectionManager = class {
3465
3465
  case "connect":
3466
3466
  result = await this.connect(request.params);
3467
3467
  break;
3468
+ case "reconnect":
3469
+ result = await this.reconnect(request.params);
3470
+ break;
3468
3471
  case "disconnect":
3469
3472
  result = await this.disconnect(request.params);
3470
3473
  break;
@@ -3607,6 +3610,66 @@ var SSEConnectionManager = class {
3607
3610
  throw error;
3608
3611
  }
3609
3612
  }
3613
+ /**
3614
+ * Reconnect to an MCP server — tears down the active client transport/connection
3615
+ * and creates a fresh connection while reusing the existing session credentials in a single RPC call.
3616
+ */
3617
+ async reconnect(params) {
3618
+ const { serverId: rawServerId, serverName, serverUrl, callbackUrl, transportType } = params;
3619
+ const headers = normalizeHeaders(params.headers);
3620
+ const serverId = rawServerId && rawServerId.length <= 12 ? rawServerId : generateServerId();
3621
+ const existingSessions = await sessions.list(this.userId);
3622
+ const duplicate = existingSessions.find(
3623
+ (s) => s.serverId === serverId || s.serverUrl === serverUrl
3624
+ );
3625
+ const sessionId = duplicate ? duplicate.sessionId : await sessions.generateSessionId();
3626
+ if (duplicate) {
3627
+ const existingClient = this.clients.get(duplicate.sessionId);
3628
+ if (existingClient) {
3629
+ await existingClient.disconnect();
3630
+ this.clients.delete(duplicate.sessionId);
3631
+ }
3632
+ }
3633
+ try {
3634
+ const clientMetadata = await this.getResolvedClientMetadata();
3635
+ const client = new MCPClient({
3636
+ userId: this.userId,
3637
+ sessionId,
3638
+ serverId,
3639
+ serverName,
3640
+ serverUrl,
3641
+ callbackUrl,
3642
+ transportType,
3643
+ headers,
3644
+ ...clientMetadata
3645
+ });
3646
+ this.clients.set(sessionId, client);
3647
+ client.onConnectionEvent((event) => {
3648
+ this.emitConnectionEvent(event);
3649
+ });
3650
+ client.onObservabilityEvent((event) => {
3651
+ this.sendEvent(event);
3652
+ });
3653
+ await client.connect();
3654
+ await this.listPolicyFilteredTools(sessionId);
3655
+ return { sessionId, success: true };
3656
+ } catch (error) {
3657
+ if (error instanceof UnauthorizedError) {
3658
+ this.clients.delete(sessionId);
3659
+ return { sessionId, success: true };
3660
+ }
3661
+ this.emitConnectionEvent({
3662
+ type: "error",
3663
+ sessionId,
3664
+ serverId,
3665
+ error: error instanceof Error ? error.message : "Connection failed",
3666
+ errorType: "connection",
3667
+ timestamp: Date.now()
3668
+ });
3669
+ this.clients.delete(sessionId);
3670
+ throw error;
3671
+ }
3672
+ }
3610
3673
  /**
3611
3674
  * Disconnect from an MCP server
3612
3675
  */