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