@mcp-ts/sdk 1.0.0

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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +297 -0
  3. package/dist/adapters/agui-adapter.d.mts +119 -0
  4. package/dist/adapters/agui-adapter.d.ts +119 -0
  5. package/dist/adapters/agui-adapter.js +109 -0
  6. package/dist/adapters/agui-adapter.js.map +1 -0
  7. package/dist/adapters/agui-adapter.mjs +107 -0
  8. package/dist/adapters/agui-adapter.mjs.map +1 -0
  9. package/dist/adapters/agui-middleware.d.mts +171 -0
  10. package/dist/adapters/agui-middleware.d.ts +171 -0
  11. package/dist/adapters/agui-middleware.js +429 -0
  12. package/dist/adapters/agui-middleware.js.map +1 -0
  13. package/dist/adapters/agui-middleware.mjs +417 -0
  14. package/dist/adapters/agui-middleware.mjs.map +1 -0
  15. package/dist/adapters/ai-adapter.d.mts +38 -0
  16. package/dist/adapters/ai-adapter.d.ts +38 -0
  17. package/dist/adapters/ai-adapter.js +82 -0
  18. package/dist/adapters/ai-adapter.js.map +1 -0
  19. package/dist/adapters/ai-adapter.mjs +80 -0
  20. package/dist/adapters/ai-adapter.mjs.map +1 -0
  21. package/dist/adapters/langchain-adapter.d.mts +46 -0
  22. package/dist/adapters/langchain-adapter.d.ts +46 -0
  23. package/dist/adapters/langchain-adapter.js +102 -0
  24. package/dist/adapters/langchain-adapter.js.map +1 -0
  25. package/dist/adapters/langchain-adapter.mjs +100 -0
  26. package/dist/adapters/langchain-adapter.mjs.map +1 -0
  27. package/dist/adapters/mastra-adapter.d.mts +49 -0
  28. package/dist/adapters/mastra-adapter.d.ts +49 -0
  29. package/dist/adapters/mastra-adapter.js +95 -0
  30. package/dist/adapters/mastra-adapter.js.map +1 -0
  31. package/dist/adapters/mastra-adapter.mjs +93 -0
  32. package/dist/adapters/mastra-adapter.mjs.map +1 -0
  33. package/dist/client/index.d.mts +119 -0
  34. package/dist/client/index.d.ts +119 -0
  35. package/dist/client/index.js +225 -0
  36. package/dist/client/index.js.map +1 -0
  37. package/dist/client/index.mjs +223 -0
  38. package/dist/client/index.mjs.map +1 -0
  39. package/dist/client/react.d.mts +151 -0
  40. package/dist/client/react.d.ts +151 -0
  41. package/dist/client/react.js +492 -0
  42. package/dist/client/react.js.map +1 -0
  43. package/dist/client/react.mjs +489 -0
  44. package/dist/client/react.mjs.map +1 -0
  45. package/dist/client/vue.d.mts +157 -0
  46. package/dist/client/vue.d.ts +157 -0
  47. package/dist/client/vue.js +474 -0
  48. package/dist/client/vue.js.map +1 -0
  49. package/dist/client/vue.mjs +471 -0
  50. package/dist/client/vue.mjs.map +1 -0
  51. package/dist/events-BP6WyRNh.d.mts +110 -0
  52. package/dist/events-BP6WyRNh.d.ts +110 -0
  53. package/dist/index.d.mts +10 -0
  54. package/dist/index.d.ts +10 -0
  55. package/dist/index.js +2784 -0
  56. package/dist/index.js.map +1 -0
  57. package/dist/index.mjs +2723 -0
  58. package/dist/index.mjs.map +1 -0
  59. package/dist/multi-session-client-BOFgPypS.d.ts +389 -0
  60. package/dist/multi-session-client-DMF3ED2O.d.mts +389 -0
  61. package/dist/server/index.d.mts +269 -0
  62. package/dist/server/index.d.ts +269 -0
  63. package/dist/server/index.js +2444 -0
  64. package/dist/server/index.js.map +1 -0
  65. package/dist/server/index.mjs +2414 -0
  66. package/dist/server/index.mjs.map +1 -0
  67. package/dist/shared/index.d.mts +24 -0
  68. package/dist/shared/index.d.ts +24 -0
  69. package/dist/shared/index.js +223 -0
  70. package/dist/shared/index.js.map +1 -0
  71. package/dist/shared/index.mjs +190 -0
  72. package/dist/shared/index.mjs.map +1 -0
  73. package/dist/types-SbDlA2VX.d.mts +153 -0
  74. package/dist/types-SbDlA2VX.d.ts +153 -0
  75. package/dist/utils-0qmYrqoa.d.mts +92 -0
  76. package/dist/utils-0qmYrqoa.d.ts +92 -0
  77. package/package.json +165 -0
  78. package/src/adapters/agui-adapter.ts +210 -0
  79. package/src/adapters/agui-middleware.ts +512 -0
  80. package/src/adapters/ai-adapter.ts +115 -0
  81. package/src/adapters/langchain-adapter.ts +127 -0
  82. package/src/adapters/mastra-adapter.ts +126 -0
  83. package/src/client/core/sse-client.ts +340 -0
  84. package/src/client/index.ts +26 -0
  85. package/src/client/react/index.ts +10 -0
  86. package/src/client/react/useMcp.ts +558 -0
  87. package/src/client/vue/index.ts +10 -0
  88. package/src/client/vue/useMcp.ts +542 -0
  89. package/src/index.ts +11 -0
  90. package/src/server/handlers/nextjs-handler.ts +216 -0
  91. package/src/server/handlers/sse-handler.ts +699 -0
  92. package/src/server/index.ts +57 -0
  93. package/src/server/mcp/multi-session-client.ts +132 -0
  94. package/src/server/mcp/oauth-client.ts +1168 -0
  95. package/src/server/mcp/storage-oauth-provider.ts +239 -0
  96. package/src/server/storage/file-backend.ts +169 -0
  97. package/src/server/storage/index.ts +115 -0
  98. package/src/server/storage/memory-backend.ts +132 -0
  99. package/src/server/storage/redis-backend.ts +210 -0
  100. package/src/server/storage/redis.ts +160 -0
  101. package/src/server/storage/types.ts +109 -0
  102. package/src/shared/constants.ts +29 -0
  103. package/src/shared/errors.ts +133 -0
  104. package/src/shared/events.ts +166 -0
  105. package/src/shared/index.ts +70 -0
  106. package/src/shared/types.ts +274 -0
  107. package/src/shared/utils.ts +16 -0
@@ -0,0 +1,157 @@
1
+ import { c as McpConnectionState, M as McpConnectionEvent } from '../events-BP6WyRNh.mjs';
2
+ export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, d as McpObservabilityEvent } from '../events-BP6WyRNh.mjs';
3
+ import { T as ToolInfo, k as FinishAuthResult, n as ListToolsRpcResult, L as ListPromptsResult, l as ListResourcesResult } from '../types-SbDlA2VX.mjs';
4
+ export { p as McpRpcRequest, q as McpRpcResponse } from '../types-SbDlA2VX.mjs';
5
+ export { SSEClient, SSEClientOptions } from './index.mjs';
6
+ import '@modelcontextprotocol/sdk/types.js';
7
+
8
+ /**
9
+ * useMcp Vue Composable
10
+ * Manages MCP connections with SSE-based real-time updates
11
+ * Based on Cloudflare's agents pattern
12
+ */
13
+
14
+ interface UseMcpOptions {
15
+ /**
16
+ * SSE endpoint URL
17
+ */
18
+ url: string;
19
+ /**
20
+ * User/Client identifier
21
+ */
22
+ identity: string;
23
+ /**
24
+ * Optional auth token
25
+ */
26
+ authToken?: string;
27
+ /**
28
+ * Auto-connect on mount
29
+ * @default true
30
+ */
31
+ autoConnect?: boolean;
32
+ /**
33
+ * Auto-initialize sessions on mount
34
+ * @default true
35
+ */
36
+ autoInitialize?: boolean;
37
+ /**
38
+ * Connection event callback
39
+ */
40
+ onConnectionEvent?: (event: McpConnectionEvent) => void;
41
+ /**
42
+ * Debug logging callback
43
+ */
44
+ onLog?: (level: string, message: string, metadata?: Record<string, unknown>) => void;
45
+ /**
46
+ * Optional callback to handle OAuth redirects (e.g. for popup flow)
47
+ * If provided, this will be called instead of window.location.href assignment
48
+ */
49
+ onRedirect?: (url: string) => void;
50
+ }
51
+ interface McpConnection {
52
+ sessionId: string;
53
+ serverId: string;
54
+ serverName: string;
55
+ serverUrl?: string;
56
+ transport?: string;
57
+ state: McpConnectionState;
58
+ tools: ToolInfo[];
59
+ error?: string;
60
+ connectedAt?: Date;
61
+ }
62
+ interface McpClient {
63
+ /**
64
+ * All connections (Represents a Reactive Ref)
65
+ */
66
+ connections: {
67
+ value: McpConnection[];
68
+ };
69
+ /**
70
+ * SSE connection status (Represents a Reactive Ref)
71
+ */
72
+ status: {
73
+ value: 'connecting' | 'connected' | 'disconnected' | 'error';
74
+ };
75
+ /**
76
+ * Whether initializing (Represents a Reactive Ref)
77
+ */
78
+ isInitializing: {
79
+ value: boolean;
80
+ };
81
+ /**
82
+ * Connect to an MCP server
83
+ */
84
+ connect: (params: {
85
+ serverId: string;
86
+ serverName: string;
87
+ serverUrl: string;
88
+ callbackUrl: string;
89
+ transportType?: 'sse' | 'streamable_http';
90
+ }) => Promise<string>;
91
+ /**
92
+ * Disconnect from an MCP server
93
+ */
94
+ disconnect: (sessionId: string) => Promise<void>;
95
+ /**
96
+ * Get connection by session ID
97
+ */
98
+ getConnection: (sessionId: string) => McpConnection | undefined;
99
+ /**
100
+ * Get connection by server ID
101
+ */
102
+ getConnectionByServerId: (serverId: string) => McpConnection | undefined;
103
+ /**
104
+ * Check if server is connected
105
+ */
106
+ isServerConnected: (serverId: string) => boolean;
107
+ /**
108
+ * Get tools for a session
109
+ */
110
+ getTools: (sessionId: string) => ToolInfo[];
111
+ /**
112
+ * Refresh all connections
113
+ */
114
+ refresh: () => Promise<void>;
115
+ /**
116
+ * Manually connect SSE
117
+ */
118
+ connectSSE: () => void;
119
+ /**
120
+ * Manually disconnect SSE
121
+ */
122
+ disconnectSSE: () => void;
123
+ /**
124
+ * Complete OAuth authorization
125
+ */
126
+ finishAuth: (sessionId: string, code: string) => Promise<FinishAuthResult>;
127
+ /**
128
+ * Call a tool from a session
129
+ */
130
+ callTool: (sessionId: string, toolName: string, toolArgs: Record<string, unknown>) => Promise<unknown>;
131
+ /**
132
+ * List available tools for a session
133
+ */
134
+ listTools: (sessionId: string) => Promise<ListToolsRpcResult>;
135
+ /**
136
+ * List available prompts for a session
137
+ */
138
+ listPrompts: (sessionId: string) => Promise<ListPromptsResult>;
139
+ /**
140
+ * Get a specific prompt with arguments
141
+ */
142
+ getPrompt: (sessionId: string, name: string, args?: Record<string, string>) => Promise<unknown>;
143
+ /**
144
+ * List available resources for a session
145
+ */
146
+ listResources: (sessionId: string) => Promise<ListResourcesResult>;
147
+ /**
148
+ * Read a specific resource
149
+ */
150
+ readResource: (sessionId: string, uri: string) => Promise<unknown>;
151
+ }
152
+ /**
153
+ * Vue Composable for MCP connection management with SSE
154
+ */
155
+ declare function useMcp(options: UseMcpOptions): McpClient;
156
+
157
+ export { type McpClient, type McpConnection, McpConnectionEvent, McpConnectionState, ToolInfo, type UseMcpOptions, useMcp };
@@ -0,0 +1,157 @@
1
+ import { c as McpConnectionState, M as McpConnectionEvent } from '../events-BP6WyRNh.js';
2
+ export { D as Disposable, a as DisposableStore, E as Emitter, b as Event, d as McpObservabilityEvent } from '../events-BP6WyRNh.js';
3
+ import { T as ToolInfo, k as FinishAuthResult, n as ListToolsRpcResult, L as ListPromptsResult, l as ListResourcesResult } from '../types-SbDlA2VX.js';
4
+ export { p as McpRpcRequest, q as McpRpcResponse } from '../types-SbDlA2VX.js';
5
+ export { SSEClient, SSEClientOptions } from './index.js';
6
+ import '@modelcontextprotocol/sdk/types.js';
7
+
8
+ /**
9
+ * useMcp Vue Composable
10
+ * Manages MCP connections with SSE-based real-time updates
11
+ * Based on Cloudflare's agents pattern
12
+ */
13
+
14
+ interface UseMcpOptions {
15
+ /**
16
+ * SSE endpoint URL
17
+ */
18
+ url: string;
19
+ /**
20
+ * User/Client identifier
21
+ */
22
+ identity: string;
23
+ /**
24
+ * Optional auth token
25
+ */
26
+ authToken?: string;
27
+ /**
28
+ * Auto-connect on mount
29
+ * @default true
30
+ */
31
+ autoConnect?: boolean;
32
+ /**
33
+ * Auto-initialize sessions on mount
34
+ * @default true
35
+ */
36
+ autoInitialize?: boolean;
37
+ /**
38
+ * Connection event callback
39
+ */
40
+ onConnectionEvent?: (event: McpConnectionEvent) => void;
41
+ /**
42
+ * Debug logging callback
43
+ */
44
+ onLog?: (level: string, message: string, metadata?: Record<string, unknown>) => void;
45
+ /**
46
+ * Optional callback to handle OAuth redirects (e.g. for popup flow)
47
+ * If provided, this will be called instead of window.location.href assignment
48
+ */
49
+ onRedirect?: (url: string) => void;
50
+ }
51
+ interface McpConnection {
52
+ sessionId: string;
53
+ serverId: string;
54
+ serverName: string;
55
+ serverUrl?: string;
56
+ transport?: string;
57
+ state: McpConnectionState;
58
+ tools: ToolInfo[];
59
+ error?: string;
60
+ connectedAt?: Date;
61
+ }
62
+ interface McpClient {
63
+ /**
64
+ * All connections (Represents a Reactive Ref)
65
+ */
66
+ connections: {
67
+ value: McpConnection[];
68
+ };
69
+ /**
70
+ * SSE connection status (Represents a Reactive Ref)
71
+ */
72
+ status: {
73
+ value: 'connecting' | 'connected' | 'disconnected' | 'error';
74
+ };
75
+ /**
76
+ * Whether initializing (Represents a Reactive Ref)
77
+ */
78
+ isInitializing: {
79
+ value: boolean;
80
+ };
81
+ /**
82
+ * Connect to an MCP server
83
+ */
84
+ connect: (params: {
85
+ serverId: string;
86
+ serverName: string;
87
+ serverUrl: string;
88
+ callbackUrl: string;
89
+ transportType?: 'sse' | 'streamable_http';
90
+ }) => Promise<string>;
91
+ /**
92
+ * Disconnect from an MCP server
93
+ */
94
+ disconnect: (sessionId: string) => Promise<void>;
95
+ /**
96
+ * Get connection by session ID
97
+ */
98
+ getConnection: (sessionId: string) => McpConnection | undefined;
99
+ /**
100
+ * Get connection by server ID
101
+ */
102
+ getConnectionByServerId: (serverId: string) => McpConnection | undefined;
103
+ /**
104
+ * Check if server is connected
105
+ */
106
+ isServerConnected: (serverId: string) => boolean;
107
+ /**
108
+ * Get tools for a session
109
+ */
110
+ getTools: (sessionId: string) => ToolInfo[];
111
+ /**
112
+ * Refresh all connections
113
+ */
114
+ refresh: () => Promise<void>;
115
+ /**
116
+ * Manually connect SSE
117
+ */
118
+ connectSSE: () => void;
119
+ /**
120
+ * Manually disconnect SSE
121
+ */
122
+ disconnectSSE: () => void;
123
+ /**
124
+ * Complete OAuth authorization
125
+ */
126
+ finishAuth: (sessionId: string, code: string) => Promise<FinishAuthResult>;
127
+ /**
128
+ * Call a tool from a session
129
+ */
130
+ callTool: (sessionId: string, toolName: string, toolArgs: Record<string, unknown>) => Promise<unknown>;
131
+ /**
132
+ * List available tools for a session
133
+ */
134
+ listTools: (sessionId: string) => Promise<ListToolsRpcResult>;
135
+ /**
136
+ * List available prompts for a session
137
+ */
138
+ listPrompts: (sessionId: string) => Promise<ListPromptsResult>;
139
+ /**
140
+ * Get a specific prompt with arguments
141
+ */
142
+ getPrompt: (sessionId: string, name: string, args?: Record<string, string>) => Promise<unknown>;
143
+ /**
144
+ * List available resources for a session
145
+ */
146
+ listResources: (sessionId: string) => Promise<ListResourcesResult>;
147
+ /**
148
+ * Read a specific resource
149
+ */
150
+ readResource: (sessionId: string, uri: string) => Promise<unknown>;
151
+ }
152
+ /**
153
+ * Vue Composable for MCP connection management with SSE
154
+ */
155
+ declare function useMcp(options: UseMcpOptions): McpClient;
156
+
157
+ export { type McpClient, type McpConnection, McpConnectionEvent, McpConnectionState, ToolInfo, type UseMcpOptions, useMcp };