@modelcontextprotocol/sdk 1.8.0 → 1.10.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 (188) hide show
  1. package/README.md +339 -38
  2. package/dist/cjs/client/auth.d.ts +2 -1
  3. package/dist/cjs/client/auth.d.ts.map +1 -1
  4. package/dist/cjs/client/auth.js +3 -1
  5. package/dist/cjs/client/auth.js.map +1 -1
  6. package/dist/cjs/client/index.d.ts +49 -1
  7. package/dist/cjs/client/index.d.ts.map +1 -1
  8. package/dist/cjs/client/index.js +9 -4
  9. package/dist/cjs/client/index.js.map +1 -1
  10. package/dist/cjs/client/streamableHttp.d.ts +124 -0
  11. package/dist/cjs/client/streamableHttp.d.ts.map +1 -0
  12. package/dist/cjs/client/streamableHttp.js +353 -0
  13. package/dist/cjs/client/streamableHttp.js.map +1 -0
  14. package/dist/cjs/examples/client/simpleStreamableHttp.d.ts +2 -0
  15. package/dist/cjs/examples/client/simpleStreamableHttp.d.ts.map +1 -0
  16. package/dist/cjs/examples/client/simpleStreamableHttp.js +448 -0
  17. package/dist/cjs/examples/client/simpleStreamableHttp.js.map +1 -0
  18. package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.d.ts +2 -0
  19. package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.d.ts.map +1 -0
  20. package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js +168 -0
  21. package/dist/cjs/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -0
  22. package/dist/cjs/examples/server/jsonResponseStreamableHttp.d.ts +2 -0
  23. package/dist/cjs/examples/server/jsonResponseStreamableHttp.d.ts.map +1 -0
  24. package/dist/cjs/examples/server/jsonResponseStreamableHttp.js +139 -0
  25. package/dist/cjs/examples/server/jsonResponseStreamableHttp.js.map +1 -0
  26. package/dist/cjs/examples/server/simpleSseServer.d.ts +2 -0
  27. package/dist/cjs/examples/server/simpleSseServer.d.ts.map +1 -0
  28. package/dist/cjs/examples/server/simpleSseServer.js +148 -0
  29. package/dist/cjs/examples/server/simpleSseServer.js.map +1 -0
  30. package/dist/cjs/examples/server/simpleStreamableHttp.d.ts +2 -0
  31. package/dist/cjs/examples/server/simpleStreamableHttp.d.ts.map +1 -0
  32. package/dist/cjs/examples/server/simpleStreamableHttp.js +250 -0
  33. package/dist/cjs/examples/server/simpleStreamableHttp.js.map +1 -0
  34. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.d.ts +2 -0
  35. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.d.ts.map +1 -0
  36. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js +229 -0
  37. package/dist/cjs/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -0
  38. package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.d.ts +2 -0
  39. package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.d.ts.map +1 -0
  40. package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js +112 -0
  41. package/dist/cjs/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -0
  42. package/dist/cjs/examples/shared/inMemoryEventStore.d.ts +31 -0
  43. package/dist/cjs/examples/shared/inMemoryEventStore.d.ts.map +1 -0
  44. package/dist/cjs/examples/shared/inMemoryEventStore.js +69 -0
  45. package/dist/cjs/examples/shared/inMemoryEventStore.js.map +1 -0
  46. package/dist/cjs/inMemory.d.ts +13 -3
  47. package/dist/cjs/inMemory.d.ts.map +1 -1
  48. package/dist/cjs/inMemory.js +9 -7
  49. package/dist/cjs/inMemory.js.map +1 -1
  50. package/dist/cjs/server/auth/handlers/token.d.ts.map +1 -1
  51. package/dist/cjs/server/auth/handlers/token.js +10 -5
  52. package/dist/cjs/server/auth/handlers/token.js.map +1 -1
  53. package/dist/cjs/server/auth/provider.d.ts +9 -1
  54. package/dist/cjs/server/auth/provider.d.ts.map +1 -1
  55. package/dist/cjs/server/auth/providers/proxyProvider.d.ts +43 -0
  56. package/dist/cjs/server/auth/providers/proxyProvider.d.ts.map +1 -0
  57. package/dist/cjs/server/auth/providers/proxyProvider.js +145 -0
  58. package/dist/cjs/server/auth/providers/proxyProvider.js.map +1 -0
  59. package/dist/cjs/server/auth/router.d.ts +6 -0
  60. package/dist/cjs/server/auth/router.d.ts.map +1 -1
  61. package/dist/cjs/server/auth/router.js +5 -4
  62. package/dist/cjs/server/auth/router.js.map +1 -1
  63. package/dist/cjs/server/auth/types.d.ts +5 -0
  64. package/dist/cjs/server/auth/types.d.ts.map +1 -1
  65. package/dist/cjs/server/index.d.ts +12 -0
  66. package/dist/cjs/server/index.d.ts.map +1 -1
  67. package/dist/cjs/server/mcp.d.ts +100 -19
  68. package/dist/cjs/server/mcp.d.ts.map +1 -1
  69. package/dist/cjs/server/mcp.js +154 -12
  70. package/dist/cjs/server/mcp.js.map +1 -1
  71. package/dist/cjs/server/sse.d.ts +10 -3
  72. package/dist/cjs/server/sse.d.ts.map +1 -1
  73. package/dist/cjs/server/sse.js +14 -5
  74. package/dist/cjs/server/sse.js.map +1 -1
  75. package/dist/cjs/server/streamableHttp.d.ts +146 -0
  76. package/dist/cjs/server/streamableHttp.d.ts.map +1 -0
  77. package/dist/cjs/server/streamableHttp.js +538 -0
  78. package/dist/cjs/server/streamableHttp.js.map +1 -0
  79. package/dist/cjs/shared/protocol.d.ts +31 -5
  80. package/dist/cjs/shared/protocol.d.ts.map +1 -1
  81. package/dist/cjs/shared/protocol.js +29 -19
  82. package/dist/cjs/shared/protocol.js.map +1 -1
  83. package/dist/cjs/shared/stdio.js +1 -1
  84. package/dist/cjs/shared/stdio.js.map +1 -1
  85. package/dist/cjs/shared/transport.d.ts +32 -3
  86. package/dist/cjs/shared/transport.d.ts.map +1 -1
  87. package/dist/cjs/shared/uriTemplate.d.ts +1 -0
  88. package/dist/cjs/shared/uriTemplate.d.ts.map +1 -1
  89. package/dist/cjs/shared/uriTemplate.js +3 -0
  90. package/dist/cjs/shared/uriTemplate.js.map +1 -1
  91. package/dist/cjs/types.d.ts +1990 -35
  92. package/dist/cjs/types.d.ts.map +1 -1
  93. package/dist/cjs/types.js +38 -4
  94. package/dist/cjs/types.js.map +1 -1
  95. package/dist/esm/client/auth.d.ts +2 -1
  96. package/dist/esm/client/auth.d.ts.map +1 -1
  97. package/dist/esm/client/auth.js +3 -1
  98. package/dist/esm/client/auth.js.map +1 -1
  99. package/dist/esm/client/index.d.ts +49 -1
  100. package/dist/esm/client/index.d.ts.map +1 -1
  101. package/dist/esm/client/index.js +9 -4
  102. package/dist/esm/client/index.js.map +1 -1
  103. package/dist/esm/client/streamableHttp.d.ts +124 -0
  104. package/dist/esm/client/streamableHttp.d.ts.map +1 -0
  105. package/dist/esm/client/streamableHttp.js +348 -0
  106. package/dist/esm/client/streamableHttp.js.map +1 -0
  107. package/dist/esm/examples/client/simpleStreamableHttp.d.ts +2 -0
  108. package/dist/esm/examples/client/simpleStreamableHttp.d.ts.map +1 -0
  109. package/dist/esm/examples/client/simpleStreamableHttp.js +446 -0
  110. package/dist/esm/examples/client/simpleStreamableHttp.js.map +1 -0
  111. package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.d.ts +2 -0
  112. package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.d.ts.map +1 -0
  113. package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js +166 -0
  114. package/dist/esm/examples/client/streamableHttpWithSseFallbackClient.js.map +1 -0
  115. package/dist/esm/examples/server/jsonResponseStreamableHttp.d.ts +2 -0
  116. package/dist/esm/examples/server/jsonResponseStreamableHttp.d.ts.map +1 -0
  117. package/dist/esm/examples/server/jsonResponseStreamableHttp.js +134 -0
  118. package/dist/esm/examples/server/jsonResponseStreamableHttp.js.map +1 -0
  119. package/dist/esm/examples/server/simpleSseServer.d.ts +2 -0
  120. package/dist/esm/examples/server/simpleSseServer.d.ts.map +1 -0
  121. package/dist/esm/examples/server/simpleSseServer.js +143 -0
  122. package/dist/esm/examples/server/simpleSseServer.js.map +1 -0
  123. package/dist/esm/examples/server/simpleStreamableHttp.d.ts +2 -0
  124. package/dist/esm/examples/server/simpleStreamableHttp.d.ts.map +1 -0
  125. package/dist/esm/examples/server/simpleStreamableHttp.js +245 -0
  126. package/dist/esm/examples/server/simpleStreamableHttp.js.map +1 -0
  127. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.d.ts +2 -0
  128. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.d.ts.map +1 -0
  129. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js +224 -0
  130. package/dist/esm/examples/server/sseAndStreamableHttpCompatibleServer.js.map +1 -0
  131. package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.d.ts +2 -0
  132. package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.d.ts.map +1 -0
  133. package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js +107 -0
  134. package/dist/esm/examples/server/standaloneSseWithGetStreamableHttp.js.map +1 -0
  135. package/dist/esm/examples/shared/inMemoryEventStore.d.ts +31 -0
  136. package/dist/esm/examples/shared/inMemoryEventStore.d.ts.map +1 -0
  137. package/dist/esm/examples/shared/inMemoryEventStore.js +65 -0
  138. package/dist/esm/examples/shared/inMemoryEventStore.js.map +1 -0
  139. package/dist/esm/inMemory.d.ts +13 -3
  140. package/dist/esm/inMemory.d.ts.map +1 -1
  141. package/dist/esm/inMemory.js +9 -7
  142. package/dist/esm/inMemory.js.map +1 -1
  143. package/dist/esm/server/auth/handlers/token.d.ts.map +1 -1
  144. package/dist/esm/server/auth/handlers/token.js +10 -5
  145. package/dist/esm/server/auth/handlers/token.js.map +1 -1
  146. package/dist/esm/server/auth/provider.d.ts +9 -1
  147. package/dist/esm/server/auth/provider.d.ts.map +1 -1
  148. package/dist/esm/server/auth/providers/proxyProvider.d.ts +43 -0
  149. package/dist/esm/server/auth/providers/proxyProvider.d.ts.map +1 -0
  150. package/dist/esm/server/auth/providers/proxyProvider.js +141 -0
  151. package/dist/esm/server/auth/providers/proxyProvider.js.map +1 -0
  152. package/dist/esm/server/auth/router.d.ts +6 -0
  153. package/dist/esm/server/auth/router.d.ts.map +1 -1
  154. package/dist/esm/server/auth/router.js +5 -4
  155. package/dist/esm/server/auth/router.js.map +1 -1
  156. package/dist/esm/server/auth/types.d.ts +5 -0
  157. package/dist/esm/server/auth/types.d.ts.map +1 -1
  158. package/dist/esm/server/index.d.ts +12 -0
  159. package/dist/esm/server/index.d.ts.map +1 -1
  160. package/dist/esm/server/mcp.d.ts +100 -19
  161. package/dist/esm/server/mcp.d.ts.map +1 -1
  162. package/dist/esm/server/mcp.js +154 -12
  163. package/dist/esm/server/mcp.js.map +1 -1
  164. package/dist/esm/server/sse.d.ts +10 -3
  165. package/dist/esm/server/sse.d.ts.map +1 -1
  166. package/dist/esm/server/sse.js +14 -5
  167. package/dist/esm/server/sse.js.map +1 -1
  168. package/dist/esm/server/streamableHttp.d.ts +146 -0
  169. package/dist/esm/server/streamableHttp.d.ts.map +1 -0
  170. package/dist/esm/server/streamableHttp.js +531 -0
  171. package/dist/esm/server/streamableHttp.js.map +1 -0
  172. package/dist/esm/shared/protocol.d.ts +31 -5
  173. package/dist/esm/shared/protocol.d.ts.map +1 -1
  174. package/dist/esm/shared/protocol.js +30 -20
  175. package/dist/esm/shared/protocol.js.map +1 -1
  176. package/dist/esm/shared/stdio.js +1 -1
  177. package/dist/esm/shared/stdio.js.map +1 -1
  178. package/dist/esm/shared/transport.d.ts +32 -3
  179. package/dist/esm/shared/transport.d.ts.map +1 -1
  180. package/dist/esm/shared/uriTemplate.d.ts +1 -0
  181. package/dist/esm/shared/uriTemplate.d.ts.map +1 -1
  182. package/dist/esm/shared/uriTemplate.js +3 -0
  183. package/dist/esm/shared/uriTemplate.js.map +1 -1
  184. package/dist/esm/types.d.ts +1990 -35
  185. package/dist/esm/types.d.ts.map +1 -1
  186. package/dist/esm/types.js +30 -2
  187. package/dist/esm/types.js.map +1 -1
  188. package/package.json +2 -2
@@ -0,0 +1,446 @@
1
+ import { Client } from '../../client/index.js';
2
+ import { StreamableHTTPClientTransport } from '../../client/streamableHttp.js';
3
+ import { createInterface } from 'node:readline';
4
+ import { ListToolsResultSchema, CallToolResultSchema, ListPromptsResultSchema, GetPromptResultSchema, ListResourcesResultSchema, LoggingMessageNotificationSchema, ResourceListChangedNotificationSchema, } from '../../types.js';
5
+ // Create readline interface for user input
6
+ const readline = createInterface({
7
+ input: process.stdin,
8
+ output: process.stdout
9
+ });
10
+ // Track received notifications for debugging resumability
11
+ let notificationCount = 0;
12
+ // Global client and transport for interactive commands
13
+ let client = null;
14
+ let transport = null;
15
+ let serverUrl = 'http://localhost:3000/mcp';
16
+ let notificationsToolLastEventId = undefined;
17
+ let sessionId = undefined;
18
+ async function main() {
19
+ console.log('MCP Interactive Client');
20
+ console.log('=====================');
21
+ // Connect to server immediately with default settings
22
+ await connect();
23
+ // Print help and start the command loop
24
+ printHelp();
25
+ commandLoop();
26
+ }
27
+ function printHelp() {
28
+ console.log('\nAvailable commands:');
29
+ console.log(' connect [url] - Connect to MCP server (default: http://localhost:3000/mcp)');
30
+ console.log(' disconnect - Disconnect from server');
31
+ console.log(' terminate-session - Terminate the current session');
32
+ console.log(' reconnect - Reconnect to the server');
33
+ console.log(' list-tools - List available tools');
34
+ console.log(' call-tool <name> [args] - Call a tool with optional JSON arguments');
35
+ console.log(' greet [name] - Call the greet tool');
36
+ console.log(' multi-greet [name] - Call the multi-greet tool with notifications');
37
+ console.log(' start-notifications [interval] [count] - Start periodic notifications');
38
+ console.log(' list-prompts - List available prompts');
39
+ console.log(' get-prompt [name] [args] - Get a prompt with optional JSON arguments');
40
+ console.log(' list-resources - List available resources');
41
+ console.log(' help - Show this help');
42
+ console.log(' quit - Exit the program');
43
+ }
44
+ function commandLoop() {
45
+ readline.question('\n> ', async (input) => {
46
+ var _a;
47
+ const args = input.trim().split(/\s+/);
48
+ const command = (_a = args[0]) === null || _a === void 0 ? void 0 : _a.toLowerCase();
49
+ try {
50
+ switch (command) {
51
+ case 'connect':
52
+ await connect(args[1]);
53
+ break;
54
+ case 'disconnect':
55
+ await disconnect();
56
+ break;
57
+ case 'terminate-session':
58
+ await terminateSession();
59
+ break;
60
+ case 'reconnect':
61
+ await reconnect();
62
+ break;
63
+ case 'list-tools':
64
+ await listTools();
65
+ break;
66
+ case 'call-tool':
67
+ if (args.length < 2) {
68
+ console.log('Usage: call-tool <name> [args]');
69
+ }
70
+ else {
71
+ const toolName = args[1];
72
+ let toolArgs = {};
73
+ if (args.length > 2) {
74
+ try {
75
+ toolArgs = JSON.parse(args.slice(2).join(' '));
76
+ }
77
+ catch (_b) {
78
+ console.log('Invalid JSON arguments. Using empty args.');
79
+ }
80
+ }
81
+ await callTool(toolName, toolArgs);
82
+ }
83
+ break;
84
+ case 'greet':
85
+ await callGreetTool(args[1] || 'MCP User');
86
+ break;
87
+ case 'multi-greet':
88
+ await callMultiGreetTool(args[1] || 'MCP User');
89
+ break;
90
+ case 'start-notifications': {
91
+ const interval = args[1] ? parseInt(args[1], 10) : 2000;
92
+ const count = args[2] ? parseInt(args[2], 10) : 10;
93
+ await startNotifications(interval, count);
94
+ break;
95
+ }
96
+ case 'list-prompts':
97
+ await listPrompts();
98
+ break;
99
+ case 'get-prompt':
100
+ if (args.length < 2) {
101
+ console.log('Usage: get-prompt <name> [args]');
102
+ }
103
+ else {
104
+ const promptName = args[1];
105
+ let promptArgs = {};
106
+ if (args.length > 2) {
107
+ try {
108
+ promptArgs = JSON.parse(args.slice(2).join(' '));
109
+ }
110
+ catch (_c) {
111
+ console.log('Invalid JSON arguments. Using empty args.');
112
+ }
113
+ }
114
+ await getPrompt(promptName, promptArgs);
115
+ }
116
+ break;
117
+ case 'list-resources':
118
+ await listResources();
119
+ break;
120
+ case 'help':
121
+ printHelp();
122
+ break;
123
+ case 'quit':
124
+ case 'exit':
125
+ await cleanup();
126
+ return;
127
+ default:
128
+ if (command) {
129
+ console.log(`Unknown command: ${command}`);
130
+ }
131
+ break;
132
+ }
133
+ }
134
+ catch (error) {
135
+ console.error(`Error executing command: ${error}`);
136
+ }
137
+ // Continue the command loop
138
+ commandLoop();
139
+ });
140
+ }
141
+ async function connect(url) {
142
+ if (client) {
143
+ console.log('Already connected. Disconnect first.');
144
+ return;
145
+ }
146
+ if (url) {
147
+ serverUrl = url;
148
+ }
149
+ console.log(`Connecting to ${serverUrl}...`);
150
+ try {
151
+ // Create a new client
152
+ client = new Client({
153
+ name: 'example-client',
154
+ version: '1.0.0'
155
+ });
156
+ client.onerror = (error) => {
157
+ console.error('\x1b[31mClient error:', error, '\x1b[0m');
158
+ };
159
+ transport = new StreamableHTTPClientTransport(new URL(serverUrl), {
160
+ sessionId: sessionId
161
+ });
162
+ // Set up notification handlers
163
+ client.setNotificationHandler(LoggingMessageNotificationSchema, (notification) => {
164
+ notificationCount++;
165
+ console.log(`\nNotification #${notificationCount}: ${notification.params.level} - ${notification.params.data}`);
166
+ // Re-display the prompt
167
+ process.stdout.write('> ');
168
+ });
169
+ client.setNotificationHandler(ResourceListChangedNotificationSchema, async (_) => {
170
+ console.log(`\nResource list changed notification received!`);
171
+ try {
172
+ if (!client) {
173
+ console.log('Client disconnected, cannot fetch resources');
174
+ return;
175
+ }
176
+ const resourcesResult = await client.request({
177
+ method: 'resources/list',
178
+ params: {}
179
+ }, ListResourcesResultSchema);
180
+ console.log('Available resources count:', resourcesResult.resources.length);
181
+ }
182
+ catch (_a) {
183
+ console.log('Failed to list resources after change notification');
184
+ }
185
+ // Re-display the prompt
186
+ process.stdout.write('> ');
187
+ });
188
+ // Connect the client
189
+ await client.connect(transport);
190
+ sessionId = transport.sessionId;
191
+ console.log('Transport created with session ID:', sessionId);
192
+ console.log('Connected to MCP server');
193
+ }
194
+ catch (error) {
195
+ console.error('Failed to connect:', error);
196
+ client = null;
197
+ transport = null;
198
+ }
199
+ }
200
+ async function disconnect() {
201
+ if (!client || !transport) {
202
+ console.log('Not connected.');
203
+ return;
204
+ }
205
+ try {
206
+ await transport.close();
207
+ console.log('Disconnected from MCP server');
208
+ client = null;
209
+ transport = null;
210
+ }
211
+ catch (error) {
212
+ console.error('Error disconnecting:', error);
213
+ }
214
+ }
215
+ async function terminateSession() {
216
+ if (!client || !transport) {
217
+ console.log('Not connected.');
218
+ return;
219
+ }
220
+ try {
221
+ console.log('Terminating session with ID:', transport.sessionId);
222
+ await transport.terminateSession();
223
+ console.log('Session terminated successfully');
224
+ // Check if sessionId was cleared after termination
225
+ if (!transport.sessionId) {
226
+ console.log('Session ID has been cleared');
227
+ sessionId = undefined;
228
+ // Also close the transport and clear client objects
229
+ await transport.close();
230
+ console.log('Transport closed after session termination');
231
+ client = null;
232
+ transport = null;
233
+ }
234
+ else {
235
+ console.log('Server responded with 405 Method Not Allowed (session termination not supported)');
236
+ console.log('Session ID is still active:', transport.sessionId);
237
+ }
238
+ }
239
+ catch (error) {
240
+ console.error('Error terminating session:', error);
241
+ }
242
+ }
243
+ async function reconnect() {
244
+ if (client) {
245
+ await disconnect();
246
+ }
247
+ await connect();
248
+ }
249
+ async function listTools() {
250
+ if (!client) {
251
+ console.log('Not connected to server.');
252
+ return;
253
+ }
254
+ try {
255
+ const toolsRequest = {
256
+ method: 'tools/list',
257
+ params: {}
258
+ };
259
+ const toolsResult = await client.request(toolsRequest, ListToolsResultSchema);
260
+ console.log('Available tools:');
261
+ if (toolsResult.tools.length === 0) {
262
+ console.log(' No tools available');
263
+ }
264
+ else {
265
+ for (const tool of toolsResult.tools) {
266
+ console.log(` - ${tool.name}: ${tool.description}`);
267
+ }
268
+ }
269
+ }
270
+ catch (error) {
271
+ console.log(`Tools not supported by this server (${error})`);
272
+ }
273
+ }
274
+ async function callTool(name, args) {
275
+ if (!client) {
276
+ console.log('Not connected to server.');
277
+ return;
278
+ }
279
+ try {
280
+ const request = {
281
+ method: 'tools/call',
282
+ params: {
283
+ name,
284
+ arguments: args
285
+ }
286
+ };
287
+ console.log(`Calling tool '${name}' with args:`, args);
288
+ const onLastEventIdUpdate = (event) => {
289
+ notificationsToolLastEventId = event;
290
+ };
291
+ const result = await client.request(request, CallToolResultSchema, {
292
+ resumptionToken: notificationsToolLastEventId, onresumptiontoken: onLastEventIdUpdate
293
+ });
294
+ console.log('Tool result:');
295
+ result.content.forEach(item => {
296
+ if (item.type === 'text') {
297
+ console.log(` ${item.text}`);
298
+ }
299
+ else {
300
+ console.log(` ${item.type} content:`, item);
301
+ }
302
+ });
303
+ }
304
+ catch (error) {
305
+ console.log(`Error calling tool ${name}: ${error}`);
306
+ }
307
+ }
308
+ async function callGreetTool(name) {
309
+ await callTool('greet', { name });
310
+ }
311
+ async function callMultiGreetTool(name) {
312
+ console.log('Calling multi-greet tool with notifications...');
313
+ await callTool('multi-greet', { name });
314
+ }
315
+ async function startNotifications(interval, count) {
316
+ console.log(`Starting notification stream: interval=${interval}ms, count=${count || 'unlimited'}`);
317
+ await callTool('start-notification-stream', { interval, count });
318
+ }
319
+ async function listPrompts() {
320
+ if (!client) {
321
+ console.log('Not connected to server.');
322
+ return;
323
+ }
324
+ try {
325
+ const promptsRequest = {
326
+ method: 'prompts/list',
327
+ params: {}
328
+ };
329
+ const promptsResult = await client.request(promptsRequest, ListPromptsResultSchema);
330
+ console.log('Available prompts:');
331
+ if (promptsResult.prompts.length === 0) {
332
+ console.log(' No prompts available');
333
+ }
334
+ else {
335
+ for (const prompt of promptsResult.prompts) {
336
+ console.log(` - ${prompt.name}: ${prompt.description}`);
337
+ }
338
+ }
339
+ }
340
+ catch (error) {
341
+ console.log(`Prompts not supported by this server (${error})`);
342
+ }
343
+ }
344
+ async function getPrompt(name, args) {
345
+ if (!client) {
346
+ console.log('Not connected to server.');
347
+ return;
348
+ }
349
+ try {
350
+ const promptRequest = {
351
+ method: 'prompts/get',
352
+ params: {
353
+ name,
354
+ arguments: args
355
+ }
356
+ };
357
+ const promptResult = await client.request(promptRequest, GetPromptResultSchema);
358
+ console.log('Prompt template:');
359
+ promptResult.messages.forEach((msg, index) => {
360
+ console.log(` [${index + 1}] ${msg.role}: ${msg.content.text}`);
361
+ });
362
+ }
363
+ catch (error) {
364
+ console.log(`Error getting prompt ${name}: ${error}`);
365
+ }
366
+ }
367
+ async function listResources() {
368
+ if (!client) {
369
+ console.log('Not connected to server.');
370
+ return;
371
+ }
372
+ try {
373
+ const resourcesRequest = {
374
+ method: 'resources/list',
375
+ params: {}
376
+ };
377
+ const resourcesResult = await client.request(resourcesRequest, ListResourcesResultSchema);
378
+ console.log('Available resources:');
379
+ if (resourcesResult.resources.length === 0) {
380
+ console.log(' No resources available');
381
+ }
382
+ else {
383
+ for (const resource of resourcesResult.resources) {
384
+ console.log(` - ${resource.name}: ${resource.uri}`);
385
+ }
386
+ }
387
+ }
388
+ catch (error) {
389
+ console.log(`Resources not supported by this server (${error})`);
390
+ }
391
+ }
392
+ async function cleanup() {
393
+ if (client && transport) {
394
+ try {
395
+ // First try to terminate the session gracefully
396
+ if (transport.sessionId) {
397
+ try {
398
+ console.log('Terminating session before exit...');
399
+ await transport.terminateSession();
400
+ console.log('Session terminated successfully');
401
+ }
402
+ catch (error) {
403
+ console.error('Error terminating session:', error);
404
+ }
405
+ }
406
+ // Then close the transport
407
+ await transport.close();
408
+ }
409
+ catch (error) {
410
+ console.error('Error closing transport:', error);
411
+ }
412
+ }
413
+ process.stdin.setRawMode(false);
414
+ readline.close();
415
+ console.log('\nGoodbye!');
416
+ process.exit(0);
417
+ }
418
+ // Set up raw mode for keyboard input to capture Escape key
419
+ process.stdin.setRawMode(true);
420
+ process.stdin.on('data', async (data) => {
421
+ // Check for Escape key (27)
422
+ if (data.length === 1 && data[0] === 27) {
423
+ console.log('\nESC key pressed. Disconnecting from server...');
424
+ // Abort current operation and disconnect from server
425
+ if (client && transport) {
426
+ await disconnect();
427
+ console.log('Disconnected. Press Enter to continue.');
428
+ }
429
+ else {
430
+ console.log('Not connected to server.');
431
+ }
432
+ // Re-display the prompt
433
+ process.stdout.write('> ');
434
+ }
435
+ });
436
+ // Handle Ctrl+C
437
+ process.on('SIGINT', async () => {
438
+ console.log('\nReceived SIGINT. Cleaning up...');
439
+ await cleanup();
440
+ });
441
+ // Start the interactive client
442
+ main().catch((error) => {
443
+ console.error('Error running MCP client:', error);
444
+ process.exit(1);
445
+ });
446
+ //# sourceMappingURL=simpleStreamableHttp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simpleStreamableHttp.js","sourceRoot":"","sources":["../../../../src/examples/client/simpleStreamableHttp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=streamableHttpWithSseFallbackClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamableHttpWithSseFallbackClient.d.ts","sourceRoot":"","sources":["../../../../src/examples/client/streamableHttpWithSseFallbackClient.ts"],"names":[],"mappings":""}
@@ -0,0 +1,166 @@
1
+ import { Client } from '../../client/index.js';
2
+ import { StreamableHTTPClientTransport } from '../../client/streamableHttp.js';
3
+ import { SSEClientTransport } from '../../client/sse.js';
4
+ import { ListToolsResultSchema, CallToolResultSchema, LoggingMessageNotificationSchema, } from '../../types.js';
5
+ /**
6
+ * Simplified Backwards Compatible MCP Client
7
+ *
8
+ * This client demonstrates backward compatibility with both:
9
+ * 1. Modern servers using Streamable HTTP transport (protocol version 2025-03-26)
10
+ * 2. Older servers using HTTP+SSE transport (protocol version 2024-11-05)
11
+ *
12
+ * Following the MCP specification for backwards compatibility:
13
+ * - Attempts to POST an initialize request to the server URL first (modern transport)
14
+ * - If that fails with 4xx status, falls back to GET request for SSE stream (older transport)
15
+ */
16
+ // Command line args processing
17
+ const args = process.argv.slice(2);
18
+ const serverUrl = args[0] || 'http://localhost:3000/mcp';
19
+ async function main() {
20
+ console.log('MCP Backwards Compatible Client');
21
+ console.log('===============================');
22
+ console.log(`Connecting to server at: ${serverUrl}`);
23
+ let client;
24
+ let transport;
25
+ try {
26
+ // Try connecting with automatic transport detection
27
+ const connection = await connectWithBackwardsCompatibility(serverUrl);
28
+ client = connection.client;
29
+ transport = connection.transport;
30
+ // Set up notification handler
31
+ client.setNotificationHandler(LoggingMessageNotificationSchema, (notification) => {
32
+ console.log(`Notification: ${notification.params.level} - ${notification.params.data}`);
33
+ });
34
+ // DEMO WORKFLOW:
35
+ // 1. List available tools
36
+ console.log('\n=== Listing Available Tools ===');
37
+ await listTools(client);
38
+ // 2. Call the notification tool
39
+ console.log('\n=== Starting Notification Stream ===');
40
+ await startNotificationTool(client);
41
+ // 3. Wait for all notifications (5 seconds)
42
+ console.log('\n=== Waiting for all notifications ===');
43
+ await new Promise(resolve => setTimeout(resolve, 5000));
44
+ // 4. Disconnect
45
+ console.log('\n=== Disconnecting ===');
46
+ await transport.close();
47
+ console.log('Disconnected from MCP server');
48
+ }
49
+ catch (error) {
50
+ console.error('Error running client:', error);
51
+ process.exit(1);
52
+ }
53
+ }
54
+ /**
55
+ * Connect to an MCP server with backwards compatibility
56
+ * Following the spec for client backward compatibility
57
+ */
58
+ async function connectWithBackwardsCompatibility(url) {
59
+ console.log('1. Trying Streamable HTTP transport first...');
60
+ // Step 1: Try Streamable HTTP transport first
61
+ const client = new Client({
62
+ name: 'backwards-compatible-client',
63
+ version: '1.0.0'
64
+ });
65
+ client.onerror = (error) => {
66
+ console.error('Client error:', error);
67
+ };
68
+ const baseUrl = new URL(url);
69
+ try {
70
+ // Create modern transport
71
+ const streamableTransport = new StreamableHTTPClientTransport(baseUrl);
72
+ await client.connect(streamableTransport);
73
+ console.log('Successfully connected using modern Streamable HTTP transport.');
74
+ return {
75
+ client,
76
+ transport: streamableTransport,
77
+ transportType: 'streamable-http'
78
+ };
79
+ }
80
+ catch (error) {
81
+ // Step 2: If transport fails, try the older SSE transport
82
+ console.log(`StreamableHttp transport connection failed: ${error}`);
83
+ console.log('2. Falling back to deprecated HTTP+SSE transport...');
84
+ try {
85
+ // Create SSE transport pointing to /sse endpoint
86
+ const sseTransport = new SSEClientTransport(baseUrl);
87
+ const sseClient = new Client({
88
+ name: 'backwards-compatible-client',
89
+ version: '1.0.0'
90
+ });
91
+ await sseClient.connect(sseTransport);
92
+ console.log('Successfully connected using deprecated HTTP+SSE transport.');
93
+ return {
94
+ client: sseClient,
95
+ transport: sseTransport,
96
+ transportType: 'sse'
97
+ };
98
+ }
99
+ catch (sseError) {
100
+ console.error(`Failed to connect with either transport method:\n1. Streamable HTTP error: ${error}\n2. SSE error: ${sseError}`);
101
+ throw new Error('Could not connect to server with any available transport');
102
+ }
103
+ }
104
+ }
105
+ /**
106
+ * List available tools on the server
107
+ */
108
+ async function listTools(client) {
109
+ try {
110
+ const toolsRequest = {
111
+ method: 'tools/list',
112
+ params: {}
113
+ };
114
+ const toolsResult = await client.request(toolsRequest, ListToolsResultSchema);
115
+ console.log('Available tools:');
116
+ if (toolsResult.tools.length === 0) {
117
+ console.log(' No tools available');
118
+ }
119
+ else {
120
+ for (const tool of toolsResult.tools) {
121
+ console.log(` - ${tool.name}: ${tool.description}`);
122
+ }
123
+ }
124
+ }
125
+ catch (error) {
126
+ console.log(`Tools not supported by this server: ${error}`);
127
+ }
128
+ }
129
+ /**
130
+ * Start a notification stream by calling the notification tool
131
+ */
132
+ async function startNotificationTool(client) {
133
+ try {
134
+ // Call the notification tool using reasonable defaults
135
+ const request = {
136
+ method: 'tools/call',
137
+ params: {
138
+ name: 'start-notification-stream',
139
+ arguments: {
140
+ interval: 1000, // 1 second between notifications
141
+ count: 5 // Send 5 notifications
142
+ }
143
+ }
144
+ };
145
+ console.log('Calling notification tool...');
146
+ const result = await client.request(request, CallToolResultSchema);
147
+ console.log('Tool result:');
148
+ result.content.forEach(item => {
149
+ if (item.type === 'text') {
150
+ console.log(` ${item.text}`);
151
+ }
152
+ else {
153
+ console.log(` ${item.type} content:`, item);
154
+ }
155
+ });
156
+ }
157
+ catch (error) {
158
+ console.log(`Error calling notification tool: ${error}`);
159
+ }
160
+ }
161
+ // Start the client
162
+ main().catch((error) => {
163
+ console.error('Error running MCP client:', error);
164
+ process.exit(1);
165
+ });
166
+ //# sourceMappingURL=streamableHttpWithSseFallbackClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamableHttpWithSseFallbackClient.js","sourceRoot":"","sources":["../../../../src/examples/client/streamableHttpWithSseFallbackClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=jsonResponseStreamableHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jsonResponseStreamableHttp.d.ts","sourceRoot":"","sources":["../../../../src/examples/server/jsonResponseStreamableHttp.ts"],"names":[],"mappings":""}