@mcp-ts/sdk 1.3.1 → 1.3.3

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 (63) hide show
  1. package/README.md +371 -290
  2. package/dist/adapters/agui-adapter.d.mts +3 -3
  3. package/dist/adapters/agui-adapter.d.ts +3 -3
  4. package/dist/adapters/agui-middleware.d.mts +3 -3
  5. package/dist/adapters/agui-middleware.d.ts +3 -3
  6. package/dist/adapters/ai-adapter.d.mts +3 -3
  7. package/dist/adapters/ai-adapter.d.ts +3 -3
  8. package/dist/adapters/langchain-adapter.d.mts +3 -3
  9. package/dist/adapters/langchain-adapter.d.ts +3 -3
  10. package/dist/adapters/mastra-adapter.d.mts +3 -3
  11. package/dist/adapters/mastra-adapter.d.ts +3 -3
  12. package/dist/client/index.d.mts +10 -66
  13. package/dist/client/index.d.ts +10 -66
  14. package/dist/client/index.js +91 -173
  15. package/dist/client/index.js.map +1 -1
  16. package/dist/client/index.mjs +91 -173
  17. package/dist/client/index.mjs.map +1 -1
  18. package/dist/client/react.d.mts +15 -5
  19. package/dist/client/react.d.ts +15 -5
  20. package/dist/client/react.js +130 -182
  21. package/dist/client/react.js.map +1 -1
  22. package/dist/client/react.mjs +130 -182
  23. package/dist/client/react.mjs.map +1 -1
  24. package/dist/client/vue.d.mts +27 -7
  25. package/dist/client/vue.d.ts +27 -7
  26. package/dist/client/vue.js +131 -182
  27. package/dist/client/vue.js.map +1 -1
  28. package/dist/client/vue.mjs +131 -182
  29. package/dist/client/vue.mjs.map +1 -1
  30. package/dist/{events-BgeztGYZ.d.mts → events-CK3N--3g.d.mts} +2 -0
  31. package/dist/{events-BgeztGYZ.d.ts → events-CK3N--3g.d.ts} +2 -0
  32. package/dist/index.d.mts +3 -3
  33. package/dist/index.d.ts +3 -3
  34. package/dist/index.js +224 -258
  35. package/dist/index.js.map +1 -1
  36. package/dist/index.mjs +224 -258
  37. package/dist/index.mjs.map +1 -1
  38. package/dist/{multi-session-client-CxogNckF.d.mts → multi-session-client-DzjmT7FX.d.mts} +4 -10
  39. package/dist/{multi-session-client-cox_WXUj.d.ts → multi-session-client-FAFpUzZ4.d.ts} +4 -10
  40. package/dist/server/index.d.mts +18 -23
  41. package/dist/server/index.d.ts +18 -23
  42. package/dist/server/index.js +133 -85
  43. package/dist/server/index.js.map +1 -1
  44. package/dist/server/index.mjs +133 -85
  45. package/dist/server/index.mjs.map +1 -1
  46. package/dist/shared/index.d.mts +3 -3
  47. package/dist/shared/index.d.ts +3 -3
  48. package/dist/shared/index.js.map +1 -1
  49. package/dist/shared/index.mjs.map +1 -1
  50. package/dist/{types-CLccx9wW.d.mts → types-CW6lghof.d.mts} +6 -0
  51. package/dist/{types-CLccx9wW.d.ts → types-CW6lghof.d.ts} +6 -0
  52. package/package.json +1 -1
  53. package/src/client/core/sse-client.ts +354 -493
  54. package/src/client/react/index.ts +16 -16
  55. package/src/client/react/use-mcp-apps.tsx +214 -214
  56. package/src/client/react/use-mcp.ts +84 -19
  57. package/src/client/vue/use-mcp.ts +119 -44
  58. package/src/server/handlers/nextjs-handler.ts +207 -217
  59. package/src/server/handlers/sse-handler.ts +14 -0
  60. package/src/server/mcp/oauth-client.ts +48 -46
  61. package/src/server/storage/types.ts +12 -5
  62. package/src/shared/events.ts +2 -0
  63. package/src/shared/types.ts +6 -0
@@ -1,8 +1,8 @@
1
- import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-CxogNckF.mjs';
2
- import '../events-BgeztGYZ.mjs';
1
+ import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-DzjmT7FX.mjs';
2
+ import '../events-CK3N--3g.mjs';
3
3
  import '@modelcontextprotocol/sdk/types.js';
4
- import '@modelcontextprotocol/sdk/shared/auth.js';
5
4
  import '@modelcontextprotocol/sdk/client/auth.js';
5
+ import '@modelcontextprotocol/sdk/shared/auth.js';
6
6
 
7
7
  /**
8
8
  * MCP Adapter for AG-UI Integration
@@ -1,8 +1,8 @@
1
- import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-cox_WXUj.js';
2
- import '../events-BgeztGYZ.js';
1
+ import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-FAFpUzZ4.js';
2
+ import '../events-CK3N--3g.js';
3
3
  import '@modelcontextprotocol/sdk/types.js';
4
- import '@modelcontextprotocol/sdk/shared/auth.js';
5
4
  import '@modelcontextprotocol/sdk/client/auth.js';
5
+ import '@modelcontextprotocol/sdk/shared/auth.js';
6
6
 
7
7
  /**
8
8
  * MCP Adapter for AG-UI Integration
@@ -2,11 +2,11 @@ import { Observable } from 'rxjs';
2
2
  import { Middleware, RunAgentInput, AbstractAgent, BaseEvent } from '@ag-ui/client';
3
3
  export { AbstractAgent, BaseEvent, EventType, Middleware, RunAgentInput, Tool, ToolCallEndEvent } from '@ag-ui/client';
4
4
  import { AguiTool } from './agui-adapter.mjs';
5
- import '../multi-session-client-CxogNckF.mjs';
6
- import '../events-BgeztGYZ.mjs';
5
+ import '../multi-session-client-DzjmT7FX.mjs';
6
+ import '../events-CK3N--3g.mjs';
7
7
  import '@modelcontextprotocol/sdk/types.js';
8
- import '@modelcontextprotocol/sdk/shared/auth.js';
9
8
  import '@modelcontextprotocol/sdk/client/auth.js';
9
+ import '@modelcontextprotocol/sdk/shared/auth.js';
10
10
 
11
11
  /**
12
12
  * AG-UI Middleware for MCP Tool Execution
@@ -2,11 +2,11 @@ import { Observable } from 'rxjs';
2
2
  import { Middleware, RunAgentInput, AbstractAgent, BaseEvent } from '@ag-ui/client';
3
3
  export { AbstractAgent, BaseEvent, EventType, Middleware, RunAgentInput, Tool, ToolCallEndEvent } from '@ag-ui/client';
4
4
  import { AguiTool } from './agui-adapter.js';
5
- import '../multi-session-client-cox_WXUj.js';
6
- import '../events-BgeztGYZ.js';
5
+ import '../multi-session-client-FAFpUzZ4.js';
6
+ import '../events-CK3N--3g.js';
7
7
  import '@modelcontextprotocol/sdk/types.js';
8
- import '@modelcontextprotocol/sdk/shared/auth.js';
9
8
  import '@modelcontextprotocol/sdk/client/auth.js';
9
+ import '@modelcontextprotocol/sdk/shared/auth.js';
10
10
 
11
11
  /**
12
12
  * AG-UI Middleware for MCP Tool Execution
@@ -1,9 +1,9 @@
1
- import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-CxogNckF.mjs';
1
+ import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-DzjmT7FX.mjs';
2
2
  import { ToolSet } from 'ai';
3
- import '../events-BgeztGYZ.mjs';
3
+ import '../events-CK3N--3g.mjs';
4
4
  import '@modelcontextprotocol/sdk/types.js';
5
- import '@modelcontextprotocol/sdk/shared/auth.js';
6
5
  import '@modelcontextprotocol/sdk/client/auth.js';
6
+ import '@modelcontextprotocol/sdk/shared/auth.js';
7
7
 
8
8
  interface AIAdapterOptions {
9
9
  /**
@@ -1,9 +1,9 @@
1
- import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-cox_WXUj.js';
1
+ import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-FAFpUzZ4.js';
2
2
  import { ToolSet } from 'ai';
3
- import '../events-BgeztGYZ.js';
3
+ import '../events-CK3N--3g.js';
4
4
  import '@modelcontextprotocol/sdk/types.js';
5
- import '@modelcontextprotocol/sdk/shared/auth.js';
6
5
  import '@modelcontextprotocol/sdk/client/auth.js';
6
+ import '@modelcontextprotocol/sdk/shared/auth.js';
7
7
 
8
8
  interface AIAdapterOptions {
9
9
  /**
@@ -1,9 +1,9 @@
1
- import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-CxogNckF.mjs';
1
+ import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-DzjmT7FX.mjs';
2
2
  import { StructuredTool } from '@langchain/core/tools';
3
- import '../events-BgeztGYZ.mjs';
3
+ import '../events-CK3N--3g.mjs';
4
4
  import '@modelcontextprotocol/sdk/types.js';
5
- import '@modelcontextprotocol/sdk/shared/auth.js';
6
5
  import '@modelcontextprotocol/sdk/client/auth.js';
6
+ import '@modelcontextprotocol/sdk/shared/auth.js';
7
7
 
8
8
  interface LangChainAdapterOptions {
9
9
  /**
@@ -1,9 +1,9 @@
1
- import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-cox_WXUj.js';
1
+ import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-FAFpUzZ4.js';
2
2
  import { StructuredTool } from '@langchain/core/tools';
3
- import '../events-BgeztGYZ.js';
3
+ import '../events-CK3N--3g.js';
4
4
  import '@modelcontextprotocol/sdk/types.js';
5
- import '@modelcontextprotocol/sdk/shared/auth.js';
6
5
  import '@modelcontextprotocol/sdk/client/auth.js';
6
+ import '@modelcontextprotocol/sdk/shared/auth.js';
7
7
 
8
8
  interface LangChainAdapterOptions {
9
9
  /**
@@ -1,9 +1,9 @@
1
- import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-CxogNckF.mjs';
1
+ import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-DzjmT7FX.mjs';
2
2
  import { z } from 'zod';
3
- import '../events-BgeztGYZ.mjs';
3
+ import '../events-CK3N--3g.mjs';
4
4
  import '@modelcontextprotocol/sdk/types.js';
5
- import '@modelcontextprotocol/sdk/shared/auth.js';
6
5
  import '@modelcontextprotocol/sdk/client/auth.js';
6
+ import '@modelcontextprotocol/sdk/shared/auth.js';
7
7
 
8
8
  interface MastraAdapterOptions {
9
9
  /**
@@ -1,9 +1,9 @@
1
- import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-cox_WXUj.js';
1
+ import { M as MCPClient, a as MultiSessionClient } from '../multi-session-client-FAFpUzZ4.js';
2
2
  import { z } from 'zod';
3
- import '../events-BgeztGYZ.js';
3
+ import '../events-CK3N--3g.js';
4
4
  import '@modelcontextprotocol/sdk/types.js';
5
- import '@modelcontextprotocol/sdk/shared/auth.js';
6
5
  import '@modelcontextprotocol/sdk/client/auth.js';
6
+ import '@modelcontextprotocol/sdk/shared/auth.js';
7
7
 
8
8
  interface MastraAdapterOptions {
9
9
  /**
@@ -1,25 +1,18 @@
1
- import { M as McpConnectionEvent, d as McpObservabilityEvent, e as McpAppsUIEvent } from '../events-BgeztGYZ.mjs';
2
- export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, c as McpConnectionState } from '../events-BgeztGYZ.mjs';
3
- import { s as SessionListResult, e as ConnectParams, h as ConnectResult, j as DisconnectResult, n as ListToolsRpcResult, r as RestoreSessionResult, k as FinishAuthResult, L as ListPromptsResult, l as ListResourcesResult } from '../types-CLccx9wW.mjs';
4
- export { p as McpRpcRequest, q as McpRpcResponse, T as ToolInfo } from '../types-CLccx9wW.mjs';
1
+ import { M as McpConnectionEvent, d as McpObservabilityEvent, e as McpAppsUIEvent } from '../events-CK3N--3g.mjs';
2
+ export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, c as McpConnectionState } from '../events-CK3N--3g.mjs';
3
+ import { s as SessionListResult, e as ConnectParams, h as ConnectResult, j as DisconnectResult, n as ListToolsRpcResult, r as RestoreSessionResult, k as FinishAuthResult, L as ListPromptsResult, l as ListResourcesResult } from '../types-CW6lghof.mjs';
4
+ export { p as McpRpcRequest, q as McpRpcResponse, T as ToolInfo } from '../types-CW6lghof.mjs';
5
5
  import '@modelcontextprotocol/sdk/types.js';
6
6
 
7
7
  /**
8
- * SSE Client for MCP Connections
8
+ * Stateless RPC-over-stream client for MCP connections.
9
9
  *
10
- * Browser-side client that manages real-time communication with the MCP server
11
- * using Server-Sent Events (SSE) for server→client streaming and HTTP POST for
12
- * client→server RPC requests.
13
- *
14
- * Key features:
15
- * - Direct HTTP response for RPC calls (bypasses SSE latency)
16
- * - Resource preloading for instant MCP App UI loading
17
- * - Automatic reconnection with exponential backoff
18
- * - Type-safe RPC methods
10
+ * Uses single POST requests with `Accept: text/event-stream` for every RPC call.
11
+ * Progress events and the final rpc-response are delivered in the same response.
19
12
  */
20
13
 
21
14
  interface SSEClientOptions {
22
- /** SSE endpoint URL */
15
+ /** MCP endpoint URL */
23
16
  url: string;
24
17
  /** User/Client identifier */
25
18
  identity: string;
@@ -33,36 +26,17 @@ interface SSEClientOptions {
33
26
  onStatusChange?: (status: ConnectionStatus) => void;
34
27
  /** Callback for MCP App UI events */
35
28
  onEvent?: (event: McpAppsUIEvent) => void;
36
- /** Request timeout in milliseconds @default 60000 */
37
- requestTimeout?: number;
38
29
  /** Enable debug logging @default false */
39
30
  debug?: boolean;
40
31
  }
41
32
  type ConnectionStatus = 'connecting' | 'connected' | 'disconnected' | 'error';
42
- /**
43
- * SSE Client for real-time MCP connection management
44
- */
45
33
  declare class SSEClient {
46
34
  private readonly options;
47
- private eventSource;
48
- private pendingRequests;
49
35
  private resourceCache;
50
- private reconnectAttempts;
51
- private isManuallyDisconnected;
52
- private connectionPromise;
53
- private connectionResolver;
36
+ private connected;
54
37
  constructor(options: SSEClientOptions);
55
- /**
56
- * Connect to the SSE endpoint
57
- */
58
38
  connect(): void;
59
- /**
60
- * Disconnect from the SSE endpoint
61
- */
62
39
  disconnect(): void;
63
- /**
64
- * Check if connected to the SSE endpoint
65
- */
66
40
  isConnected(): boolean;
67
41
  getSessions(): Promise<SessionListResult>;
68
42
  connectToServer(params: ConnectParams): Promise<ConnectResult>;
@@ -75,48 +49,18 @@ declare class SSEClient {
75
49
  getPrompt(sessionId: string, name: string, args?: Record<string, string>): Promise<unknown>;
76
50
  listResources(sessionId: string): Promise<ListResourcesResult>;
77
51
  readResource(sessionId: string, uri: string): Promise<unknown>;
78
- /**
79
- * Preload UI resources for tools that have UI metadata.
80
- * Call this when tools are discovered to enable instant MCP App UI loading.
81
- */
82
52
  preloadToolUiResources(sessionId: string, tools: Array<{
83
53
  name: string;
84
54
  _meta?: unknown;
85
55
  }>): void;
86
- /**
87
- * Get a preloaded resource from cache, or fetch if not cached.
88
- */
89
56
  getOrFetchResource(sessionId: string, uri: string): Promise<unknown>;
90
- /**
91
- * Check if a resource is already cached
92
- */
93
57
  hasPreloadedResource(uri: string): boolean;
94
- /**
95
- * Clear the resource cache
96
- */
97
58
  clearResourceCache(): void;
98
- /**
99
- * Send an RPC request and return the response directly from HTTP.
100
- * This bypasses SSE latency by returning results in the HTTP response body.
101
- */
102
59
  private sendRequest;
103
- /**
104
- * Parse RPC response and handle different response formats
105
- */
60
+ private readRpcResponseFromStream;
106
61
  private parseRpcResponse;
107
- /**
108
- * Wait for RPC response via SSE (legacy fallback)
109
- */
110
- private waitForSseResponse;
111
- /**
112
- * Handle RPC response received via SSE (legacy)
113
- */
114
- private handleRpcResponse;
115
- private setupEventListeners;
116
- private attemptReconnect;
117
62
  private buildUrl;
118
63
  private buildHeaders;
119
- private rejectAllPendingRequests;
120
64
  private extractUiResourceUri;
121
65
  private emitUiEventIfPresent;
122
66
  private log;
@@ -1,25 +1,18 @@
1
- import { M as McpConnectionEvent, d as McpObservabilityEvent, e as McpAppsUIEvent } from '../events-BgeztGYZ.js';
2
- export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, c as McpConnectionState } from '../events-BgeztGYZ.js';
3
- import { s as SessionListResult, e as ConnectParams, h as ConnectResult, j as DisconnectResult, n as ListToolsRpcResult, r as RestoreSessionResult, k as FinishAuthResult, L as ListPromptsResult, l as ListResourcesResult } from '../types-CLccx9wW.js';
4
- export { p as McpRpcRequest, q as McpRpcResponse, T as ToolInfo } from '../types-CLccx9wW.js';
1
+ import { M as McpConnectionEvent, d as McpObservabilityEvent, e as McpAppsUIEvent } from '../events-CK3N--3g.js';
2
+ export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, c as McpConnectionState } from '../events-CK3N--3g.js';
3
+ import { s as SessionListResult, e as ConnectParams, h as ConnectResult, j as DisconnectResult, n as ListToolsRpcResult, r as RestoreSessionResult, k as FinishAuthResult, L as ListPromptsResult, l as ListResourcesResult } from '../types-CW6lghof.js';
4
+ export { p as McpRpcRequest, q as McpRpcResponse, T as ToolInfo } from '../types-CW6lghof.js';
5
5
  import '@modelcontextprotocol/sdk/types.js';
6
6
 
7
7
  /**
8
- * SSE Client for MCP Connections
8
+ * Stateless RPC-over-stream client for MCP connections.
9
9
  *
10
- * Browser-side client that manages real-time communication with the MCP server
11
- * using Server-Sent Events (SSE) for server→client streaming and HTTP POST for
12
- * client→server RPC requests.
13
- *
14
- * Key features:
15
- * - Direct HTTP response for RPC calls (bypasses SSE latency)
16
- * - Resource preloading for instant MCP App UI loading
17
- * - Automatic reconnection with exponential backoff
18
- * - Type-safe RPC methods
10
+ * Uses single POST requests with `Accept: text/event-stream` for every RPC call.
11
+ * Progress events and the final rpc-response are delivered in the same response.
19
12
  */
20
13
 
21
14
  interface SSEClientOptions {
22
- /** SSE endpoint URL */
15
+ /** MCP endpoint URL */
23
16
  url: string;
24
17
  /** User/Client identifier */
25
18
  identity: string;
@@ -33,36 +26,17 @@ interface SSEClientOptions {
33
26
  onStatusChange?: (status: ConnectionStatus) => void;
34
27
  /** Callback for MCP App UI events */
35
28
  onEvent?: (event: McpAppsUIEvent) => void;
36
- /** Request timeout in milliseconds @default 60000 */
37
- requestTimeout?: number;
38
29
  /** Enable debug logging @default false */
39
30
  debug?: boolean;
40
31
  }
41
32
  type ConnectionStatus = 'connecting' | 'connected' | 'disconnected' | 'error';
42
- /**
43
- * SSE Client for real-time MCP connection management
44
- */
45
33
  declare class SSEClient {
46
34
  private readonly options;
47
- private eventSource;
48
- private pendingRequests;
49
35
  private resourceCache;
50
- private reconnectAttempts;
51
- private isManuallyDisconnected;
52
- private connectionPromise;
53
- private connectionResolver;
36
+ private connected;
54
37
  constructor(options: SSEClientOptions);
55
- /**
56
- * Connect to the SSE endpoint
57
- */
58
38
  connect(): void;
59
- /**
60
- * Disconnect from the SSE endpoint
61
- */
62
39
  disconnect(): void;
63
- /**
64
- * Check if connected to the SSE endpoint
65
- */
66
40
  isConnected(): boolean;
67
41
  getSessions(): Promise<SessionListResult>;
68
42
  connectToServer(params: ConnectParams): Promise<ConnectResult>;
@@ -75,48 +49,18 @@ declare class SSEClient {
75
49
  getPrompt(sessionId: string, name: string, args?: Record<string, string>): Promise<unknown>;
76
50
  listResources(sessionId: string): Promise<ListResourcesResult>;
77
51
  readResource(sessionId: string, uri: string): Promise<unknown>;
78
- /**
79
- * Preload UI resources for tools that have UI metadata.
80
- * Call this when tools are discovered to enable instant MCP App UI loading.
81
- */
82
52
  preloadToolUiResources(sessionId: string, tools: Array<{
83
53
  name: string;
84
54
  _meta?: unknown;
85
55
  }>): void;
86
- /**
87
- * Get a preloaded resource from cache, or fetch if not cached.
88
- */
89
56
  getOrFetchResource(sessionId: string, uri: string): Promise<unknown>;
90
- /**
91
- * Check if a resource is already cached
92
- */
93
57
  hasPreloadedResource(uri: string): boolean;
94
- /**
95
- * Clear the resource cache
96
- */
97
58
  clearResourceCache(): void;
98
- /**
99
- * Send an RPC request and return the response directly from HTTP.
100
- * This bypasses SSE latency by returning results in the HTTP response body.
101
- */
102
59
  private sendRequest;
103
- /**
104
- * Parse RPC response and handle different response formats
105
- */
60
+ private readRpcResponseFromStream;
106
61
  private parseRpcResponse;
107
- /**
108
- * Wait for RPC response via SSE (legacy fallback)
109
- */
110
- private waitForSseResponse;
111
- /**
112
- * Handle RPC response received via SSE (legacy)
113
- */
114
- private handleRpcResponse;
115
- private setupEventListeners;
116
- private attemptReconnect;
117
62
  private buildUrl;
118
63
  private buildHeaders;
119
- private rejectAllPendingRequests;
120
64
  private extractUiResourceUri;
121
65
  private emitUiEventIfPresent;
122
66
  private log;