@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
@@ -45,10 +45,12 @@ class McpServer {
45
45
  this.server.assertCanSetRequestHandler(types_js_1.ListToolsRequestSchema.shape.method.value);
46
46
  this.server.assertCanSetRequestHandler(types_js_1.CallToolRequestSchema.shape.method.value);
47
47
  this.server.registerCapabilities({
48
- tools: {},
48
+ tools: {
49
+ listChanged: true
50
+ }
49
51
  });
50
52
  this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, () => ({
51
- tools: Object.entries(this._registeredTools).map(([name, tool]) => {
53
+ tools: Object.entries(this._registeredTools).filter(([, tool]) => tool.enabled).map(([name, tool]) => {
52
54
  return {
53
55
  name,
54
56
  description: tool.description,
@@ -65,6 +67,9 @@ class McpServer {
65
67
  if (!tool) {
66
68
  throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Tool ${request.params.name} not found`);
67
69
  }
70
+ if (!tool.enabled) {
71
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Tool ${request.params.name} disabled`);
72
+ }
68
73
  if (tool.inputSchema) {
69
74
  const parseResult = await tool.inputSchema.safeParseAsync(request.params.arguments);
70
75
  if (!parseResult.success) {
@@ -127,7 +132,10 @@ class McpServer {
127
132
  async handlePromptCompletion(request, ref) {
128
133
  const prompt = this._registeredPrompts[ref.name];
129
134
  if (!prompt) {
130
- throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Prompt ${request.params.ref.name} not found`);
135
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Prompt ${ref.name} not found`);
136
+ }
137
+ if (!prompt.enabled) {
138
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Prompt ${ref.name} disabled`);
131
139
  }
132
140
  if (!prompt.argsSchema) {
133
141
  return EMPTY_COMPLETION_RESULT;
@@ -164,10 +172,12 @@ class McpServer {
164
172
  this.server.assertCanSetRequestHandler(types_js_1.ListResourceTemplatesRequestSchema.shape.method.value);
165
173
  this.server.assertCanSetRequestHandler(types_js_1.ReadResourceRequestSchema.shape.method.value);
166
174
  this.server.registerCapabilities({
167
- resources: {},
175
+ resources: {
176
+ listChanged: true
177
+ }
168
178
  });
169
179
  this.server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async (request, extra) => {
170
- const resources = Object.entries(this._registeredResources).map(([uri, resource]) => ({
180
+ const resources = Object.entries(this._registeredResources).filter(([_, resource]) => resource.enabled).map(([uri, resource]) => ({
171
181
  uri,
172
182
  name: resource.name,
173
183
  ...resource.metadata,
@@ -200,6 +210,9 @@ class McpServer {
200
210
  // First check for exact resource match
201
211
  const resource = this._registeredResources[uri.toString()];
202
212
  if (resource) {
213
+ if (!resource.enabled) {
214
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Resource ${uri} disabled`);
215
+ }
203
216
  return resource.readCallback(uri, extra);
204
217
  }
205
218
  // Then check templates
@@ -221,10 +234,12 @@ class McpServer {
221
234
  this.server.assertCanSetRequestHandler(types_js_1.ListPromptsRequestSchema.shape.method.value);
222
235
  this.server.assertCanSetRequestHandler(types_js_1.GetPromptRequestSchema.shape.method.value);
223
236
  this.server.registerCapabilities({
224
- prompts: {},
237
+ prompts: {
238
+ listChanged: true
239
+ }
225
240
  });
226
241
  this.server.setRequestHandler(types_js_1.ListPromptsRequestSchema, () => ({
227
- prompts: Object.entries(this._registeredPrompts).map(([name, prompt]) => {
242
+ prompts: Object.entries(this._registeredPrompts).filter(([, prompt]) => prompt.enabled).map(([name, prompt]) => {
228
243
  return {
229
244
  name,
230
245
  description: prompt.description,
@@ -239,6 +254,9 @@ class McpServer {
239
254
  if (!prompt) {
240
255
  throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Prompt ${request.params.name} not found`);
241
256
  }
257
+ if (!prompt.enabled) {
258
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, `Prompt ${request.params.name} disabled`);
259
+ }
242
260
  if (prompt.argsSchema) {
243
261
  const parseResult = await prompt.argsSchema.safeParseAsync(request.params.arguments);
244
262
  if (!parseResult.success) {
@@ -266,23 +284,70 @@ class McpServer {
266
284
  if (this._registeredResources[uriOrTemplate]) {
267
285
  throw new Error(`Resource ${uriOrTemplate} is already registered`);
268
286
  }
269
- this._registeredResources[uriOrTemplate] = {
287
+ const registeredResource = {
270
288
  name,
271
289
  metadata,
272
290
  readCallback: readCallback,
291
+ enabled: true,
292
+ disable: () => registeredResource.update({ enabled: false }),
293
+ enable: () => registeredResource.update({ enabled: true }),
294
+ remove: () => registeredResource.update({ uri: null }),
295
+ update: (updates) => {
296
+ if (typeof updates.uri !== "undefined" && updates.uri !== uriOrTemplate) {
297
+ delete this._registeredResources[uriOrTemplate];
298
+ if (updates.uri)
299
+ this._registeredResources[updates.uri] = registeredResource;
300
+ }
301
+ if (typeof updates.name !== "undefined")
302
+ registeredResource.name = updates.name;
303
+ if (typeof updates.metadata !== "undefined")
304
+ registeredResource.metadata = updates.metadata;
305
+ if (typeof updates.callback !== "undefined")
306
+ registeredResource.readCallback = updates.callback;
307
+ if (typeof updates.enabled !== "undefined")
308
+ registeredResource.enabled = updates.enabled;
309
+ this.sendResourceListChanged();
310
+ },
273
311
  };
312
+ this._registeredResources[uriOrTemplate] = registeredResource;
313
+ this.setResourceRequestHandlers();
314
+ this.sendResourceListChanged();
315
+ return registeredResource;
274
316
  }
275
317
  else {
276
318
  if (this._registeredResourceTemplates[name]) {
277
319
  throw new Error(`Resource template ${name} is already registered`);
278
320
  }
279
- this._registeredResourceTemplates[name] = {
321
+ const registeredResourceTemplate = {
280
322
  resourceTemplate: uriOrTemplate,
281
323
  metadata,
282
324
  readCallback: readCallback,
325
+ enabled: true,
326
+ disable: () => registeredResourceTemplate.update({ enabled: false }),
327
+ enable: () => registeredResourceTemplate.update({ enabled: true }),
328
+ remove: () => registeredResourceTemplate.update({ name: null }),
329
+ update: (updates) => {
330
+ if (typeof updates.name !== "undefined" && updates.name !== name) {
331
+ delete this._registeredResourceTemplates[name];
332
+ if (updates.name)
333
+ this._registeredResourceTemplates[updates.name] = registeredResourceTemplate;
334
+ }
335
+ if (typeof updates.template !== "undefined")
336
+ registeredResourceTemplate.resourceTemplate = updates.template;
337
+ if (typeof updates.metadata !== "undefined")
338
+ registeredResourceTemplate.metadata = updates.metadata;
339
+ if (typeof updates.callback !== "undefined")
340
+ registeredResourceTemplate.readCallback = updates.callback;
341
+ if (typeof updates.enabled !== "undefined")
342
+ registeredResourceTemplate.enabled = updates.enabled;
343
+ this.sendResourceListChanged();
344
+ },
283
345
  };
346
+ this._registeredResourceTemplates[name] = registeredResourceTemplate;
347
+ this.setResourceRequestHandlers();
348
+ this.sendResourceListChanged();
349
+ return registeredResourceTemplate;
284
350
  }
285
- this.setResourceRequestHandlers();
286
351
  }
287
352
  tool(name, ...rest) {
288
353
  if (this._registeredTools[name]) {
@@ -297,12 +362,35 @@ class McpServer {
297
362
  paramsSchema = rest.shift();
298
363
  }
299
364
  const cb = rest[0];
300
- this._registeredTools[name] = {
365
+ const registeredTool = {
301
366
  description,
302
367
  inputSchema: paramsSchema === undefined ? undefined : zod_1.z.object(paramsSchema),
303
368
  callback: cb,
369
+ enabled: true,
370
+ disable: () => registeredTool.update({ enabled: false }),
371
+ enable: () => registeredTool.update({ enabled: true }),
372
+ remove: () => registeredTool.update({ name: null }),
373
+ update: (updates) => {
374
+ if (typeof updates.name !== "undefined" && updates.name !== name) {
375
+ delete this._registeredTools[name];
376
+ if (updates.name)
377
+ this._registeredTools[updates.name] = registeredTool;
378
+ }
379
+ if (typeof updates.description !== "undefined")
380
+ registeredTool.description = updates.description;
381
+ if (typeof updates.paramsSchema !== "undefined")
382
+ registeredTool.inputSchema = zod_1.z.object(updates.paramsSchema);
383
+ if (typeof updates.callback !== "undefined")
384
+ registeredTool.callback = updates.callback;
385
+ if (typeof updates.enabled !== "undefined")
386
+ registeredTool.enabled = updates.enabled;
387
+ this.sendToolListChanged();
388
+ },
304
389
  };
390
+ this._registeredTools[name] = registeredTool;
305
391
  this.setToolRequestHandlers();
392
+ this.sendToolListChanged();
393
+ return registeredTool;
306
394
  }
307
395
  prompt(name, ...rest) {
308
396
  if (this._registeredPrompts[name]) {
@@ -317,12 +405,66 @@ class McpServer {
317
405
  argsSchema = rest.shift();
318
406
  }
319
407
  const cb = rest[0];
320
- this._registeredPrompts[name] = {
408
+ const registeredPrompt = {
321
409
  description,
322
410
  argsSchema: argsSchema === undefined ? undefined : zod_1.z.object(argsSchema),
323
411
  callback: cb,
412
+ enabled: true,
413
+ disable: () => registeredPrompt.update({ enabled: false }),
414
+ enable: () => registeredPrompt.update({ enabled: true }),
415
+ remove: () => registeredPrompt.update({ name: null }),
416
+ update: (updates) => {
417
+ if (typeof updates.name !== "undefined" && updates.name !== name) {
418
+ delete this._registeredPrompts[name];
419
+ if (updates.name)
420
+ this._registeredPrompts[updates.name] = registeredPrompt;
421
+ }
422
+ if (typeof updates.description !== "undefined")
423
+ registeredPrompt.description = updates.description;
424
+ if (typeof updates.argsSchema !== "undefined")
425
+ registeredPrompt.argsSchema = zod_1.z.object(updates.argsSchema);
426
+ if (typeof updates.callback !== "undefined")
427
+ registeredPrompt.callback = updates.callback;
428
+ if (typeof updates.enabled !== "undefined")
429
+ registeredPrompt.enabled = updates.enabled;
430
+ this.sendPromptListChanged();
431
+ },
324
432
  };
433
+ this._registeredPrompts[name] = registeredPrompt;
325
434
  this.setPromptRequestHandlers();
435
+ this.sendPromptListChanged();
436
+ return registeredPrompt;
437
+ }
438
+ /**
439
+ * Checks if the server is connected to a transport.
440
+ * @returns True if the server is connected
441
+ */
442
+ isConnected() {
443
+ return this.server.transport !== undefined;
444
+ }
445
+ /**
446
+ * Sends a resource list changed event to the client, if connected.
447
+ */
448
+ sendResourceListChanged() {
449
+ if (this.isConnected()) {
450
+ this.server.sendResourceListChanged();
451
+ }
452
+ }
453
+ /**
454
+ * Sends a tool list changed event to the client, if connected.
455
+ */
456
+ sendToolListChanged() {
457
+ if (this.isConnected()) {
458
+ this.server.sendToolListChanged();
459
+ }
460
+ }
461
+ /**
462
+ * Sends a prompt list changed event to the client, if connected.
463
+ */
464
+ sendPromptListChanged() {
465
+ if (this.isConnected()) {
466
+ this.server.sendPromptListChanged();
467
+ }
326
468
  }
327
469
  }
328
470
  exports.McpServer = McpServer;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/server/mcp.ts"],"names":[],"mappings":";;;AAAA,yCAAmD;AACnD,2DAAqD;AACrD,6BAUa;AACb,0CA4BqB;AACrB,qDAA+D;AAC/D,6DAAkE;AAIlE;;;;GAIG;AACH,MAAa,SAAS;IAapB,YAAY,UAA0B,EAAE,OAAuB;QAPvD,yBAAoB,GAA0C,EAAE,CAAC;QACjE,iCAA4B,GAEhC,EAAE,CAAC;QACC,qBAAgB,GAAuC,EAAE,CAAC;QAC1D,uBAAkB,GAAyC,EAAE,CAAC;QAsB9D,6BAAwB,GAAG,KAAK,CAAC;QA2GjC,kCAA6B,GAAG,KAAK,CAAC;QAiGtC,iCAA4B,GAAG,KAAK,CAAC;QAiHrC,+BAA0B,GAAG,KAAK,CAAC;QAhVzC,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,SAAoB;QAChC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAIO,sBAAsB;QAC5B,IAAI,IAAI,CAAC,wBAAwB,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,iCAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAC1C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,gCAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CACzC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC/B,KAAK,EAAE;gBACL,WAAW,EAAE,IAAI;aAClB;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,iCAAsB,EACtB,GAAoB,EAAE,CAAC,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAC3B,CAAC,GAAG,CACH,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAQ,EAAE;gBACrB,OAAO;oBACL,IAAI;oBACJ,WAAW,EAAE,IAAI,CAAC,WAAW;oBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;wBAC3B,CAAC,CAAE,IAAA,oCAAe,EAAC,IAAI,CAAC,WAAW,EAAE;4BACjC,YAAY,EAAE,IAAI;yBACnB,CAAyB;wBAC5B,CAAC,CAAC,wBAAwB;iBAC7B,CAAC;YACJ,CAAC,CACF;SACF,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,gCAAqB,EACrB,KAAK,EAAE,OAAO,EAAE,KAAK,EAA2B,EAAE;YAChD,MAAM,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CACxC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClB,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,QAAQ,OAAO,CAAC,MAAM,CAAC,IAAI,WAAW,CACvC,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CACvD,OAAO,CAAC,MAAM,CAAC,SAAS,CACzB,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACzB,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,8BAA8B,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CAClF,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,QAAqC,CAAC;gBACtD,IAAI,CAAC;oBACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;gBAChD,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;6BAC7D;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,IAAI,CAAC,QAAmC,CAAC;gBACpD,IAAI,CAAC;oBACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1C,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;6BAC7D;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;IACvC,CAAC;IAIO,2BAA2B;QACjC,IAAI,IAAI,CAAC,6BAA6B,EAAE,CAAC;YACvC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,gCAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CACzC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,gCAAqB,EACrB,KAAK,EAAE,OAAO,EAA2B,EAAE;YACzC,QAAQ,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;gBAChC,KAAK,YAAY;oBACf,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAElE,KAAK,cAAc;oBACjB,OAAO,IAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAEpE;oBACE,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,iCAAiC,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,CACtD,CAAC;YACN,CAAC;QACH,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,OAAwB,EACxB,GAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,UAAU,GAAG,CAAC,IAAI,YAAY,CAC/B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,UAAU,GAAG,CAAC,IAAI,WAAW,CAC9B,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,CAAC,KAAK,YAAY,4BAAW,CAAC,EAAE,CAAC;YACpC,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,MAAM,GAAG,GAA8B,KAAK,CAAC,IAAI,CAAC;QAClD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACtE,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,OAAwB,EACxB,GAAsB;QAEtB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC,IAAI,CACpE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,GAAG,CAC7D,CAAC;QAEF,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvC,wGAAwG;gBACxG,OAAO,uBAAuB,CAAC;YACjC,CAAC;YAED,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,qBAAqB,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,YAAY,CACxD,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAC1D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAC7B,CAAC;QACF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,uBAAuB,CAAC;QACjC,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACnE,OAAO,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC7C,CAAC;IAIO,0BAA0B;QAChC,IAAI,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,qCAA0B,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAC9C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,6CAAkC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CACtD,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,oCAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAC7C,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC/B,SAAS,EAAE;gBACT,WAAW,EAAE,IAAI;aAClB;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,qCAA0B,EAC1B,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAChE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CACpC,CAAC,GAAG,CACH,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBACpB,GAAG;gBACH,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,GAAG,QAAQ,CAAC,QAAQ;aACrB,CAAC,CACH,CAAC;YAEF,MAAM,iBAAiB,GAAe,EAAE,CAAC;YACzC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAClC,IAAI,CAAC,4BAA4B,CAClC,EAAE,CAAC;gBACF,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;oBAC5C,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACxC,iBAAiB,CAAC,IAAI,CAAC;wBACrB,GAAG,QAAQ;wBACX,GAAG,QAAQ,CAAC,QAAQ;qBACrB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,EAAE,SAAS,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,iBAAiB,CAAC,EAAE,CAAC;QAC7D,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,6CAAkC,EAClC,KAAK,IAAI,EAAE;YACT,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CACtC,IAAI,CAAC,4BAA4B,CAClC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC3B,IAAI;gBACJ,WAAW,EAAE,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,EAAE;gBAC7D,GAAG,QAAQ,CAAC,QAAQ;aACrB,CAAC,CAAC,CAAC;YAEJ,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC/B,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,oCAAyB,EACzB,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;YACvB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAExC,uCAAuC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3D,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtB,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,YAAY,GAAG,WAAW,CAC3B,CAAC;gBACJ,CAAC;gBACD,OAAO,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAC3C,CAAC;YAED,uBAAuB;YACvB,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,MAAM,CAClC,IAAI,CAAC,4BAA4B,CAClC,EAAE,CAAC;gBACF,MAAM,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAC3D,GAAG,CAAC,QAAQ,EAAE,CACf,CAAC;gBACF,IAAI,SAAS,EAAE,CAAC;oBACd,OAAO,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,YAAY,GAAG,YAAY,CAC5B,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC;IAC3C,CAAC;IAIO,wBAAwB;QAC9B,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACpC,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,mCAAwB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAC5C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,0BAA0B,CACpC,iCAAsB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAC1C,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;YAC/B,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI;aAClB;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,mCAAwB,EACxB,GAAsB,EAAE,CAAC,CAAC;YACxB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAC/B,CAAC,GAAG,CACH,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAU,EAAE;gBACzB,OAAO;oBACL,IAAI;oBACJ,WAAW,EAAE,MAAM,CAAC,WAAW;oBAC/B,SAAS,EAAE,MAAM,CAAC,UAAU;wBAC1B,CAAC,CAAC,yBAAyB,CAAC,MAAM,CAAC,UAAU,CAAC;wBAC9C,CAAC,CAAC,SAAS;iBACd,CAAC;YACJ,CAAC,CACF;SACF,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAC3B,iCAAsB,EACtB,KAAK,EAAE,OAAO,EAAE,KAAK,EAA4B,EAAE;YACjD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,UAAU,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CAC1C,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,UAAU,OAAO,CAAC,MAAM,CAAC,IAAI,WAAW,CACzC,CAAC;YACJ,CAAC;YAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,cAAc,CACxD,OAAO,CAAC,MAAM,CAAC,SAAS,CACzB,CAAC;gBACF,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACzB,MAAM,IAAI,mBAAQ,CAChB,oBAAS,CAAC,aAAa,EACvB,gCAAgC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,CACpF,CAAC;gBACJ,CAAC;gBAED,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;gBAC9B,MAAM,EAAE,GAAG,MAAM,CAAC,QAA8C,CAAC;gBACjE,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,MAAM,EAAE,GAAG,MAAM,CAAC,QAAqC,CAAC;gBACxD,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;IACzC,CAAC;IAoCD,QAAQ,CACN,IAAY,EACZ,aAAwC,EACxC,GAAG,IAAe;QAElB,IAAI,QAAsC,CAAC;QAC3C,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChC,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAsB,CAAC;QAC9C,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAEK,CAAC;QAEjC,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC7C,MAAM,IAAI,KAAK,CAAC,YAAY,aAAa,wBAAwB,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,kBAAkB,GAAuB;gBAC7C,IAAI;gBACJ,QAAQ;gBACR,YAAY,EAAE,YAAoC;gBAClD,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBAC5D,MAAM,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAC1D,MAAM,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;gBACtD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;oBAClB,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,KAAK,aAAa,EAAE,CAAC;wBACxE,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAA;wBAC/C,IAAI,OAAO,CAAC,GAAG;4BAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAA;oBAC9E,CAAC;oBACD,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW;wBAAE,kBAAkB,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;oBAC/E,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;wBAAE,kBAAkB,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;oBAC3F,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;wBAAE,kBAAkB,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAA;oBAC/F,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW;wBAAE,kBAAkB,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;oBACxF,IAAI,CAAC,uBAAuB,EAAE,CAAA;gBAChC,CAAC;aACF,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,GAAG,kBAAkB,CAAC;YAE9D,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO,kBAAkB,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,wBAAwB,CAAC,CAAC;YACrE,CAAC;YAED,MAAM,0BAA0B,GAA+B;gBAC7D,gBAAgB,EAAE,aAAa;gBAC/B,QAAQ;gBACR,YAAY,EAAE,YAA4C;gBAC1D,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;gBACpE,MAAM,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAClE,MAAM,EAAE,GAAG,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAC/D,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;oBAClB,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;wBACjE,OAAO,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,CAAA;wBAC9C,IAAI,OAAO,CAAC,IAAI;4BAAE,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAA;oBAChG,CAAC;oBACD,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;wBAAE,0BAA0B,CAAC,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAA;oBAC3G,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;wBAAE,0BAA0B,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;oBACnG,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;wBAAE,0BAA0B,CAAC,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAA;oBACvG,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW;wBAAE,0BAA0B,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;oBAChG,IAAI,CAAC,uBAAuB,EAAE,CAAA;gBAChC,CAAC;aACF,CAAC;YACF,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,GAAG,0BAA0B,CAAC;YAErE,IAAI,CAAC,0BAA0B,EAAE,CAAC;YAClC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,OAAO,0BAA0B,CAAC;QACpC,CAAC;IACH,CAAC;IA+BD,IAAI,CAAC,IAAY,EAAE,GAAG,IAAe;QACnC,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,wBAAwB,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,WAA+B,CAAC;QACpC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChC,WAAW,GAAG,IAAI,CAAC,KAAK,EAAY,CAAC;QACvC,CAAC;QAED,IAAI,YAAqC,CAAC;QAC1C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,YAAY,GAAG,IAAI,CAAC,KAAK,EAAiB,CAAC;QAC7C,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAA0C,CAAC;QAC5D,MAAM,cAAc,GAAmB;YACrC,WAAW;YACX,WAAW,EACT,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAC,CAAC,MAAM,CAAC,YAAY,CAAC;YACjE,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACxD,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACtD,MAAM,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACnD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;gBAClB,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACjE,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;oBAClC,IAAI,OAAO,CAAC,IAAI;wBAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,cAAc,CAAA;gBACxE,CAAC;gBACD,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,WAAW;oBAAE,cAAc,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;gBAChG,IAAI,OAAO,OAAO,CAAC,YAAY,KAAK,WAAW;oBAAE,cAAc,CAAC,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;gBAC5G,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;oBAAE,cAAc,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;gBACvF,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW;oBAAE,cAAc,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;gBACpF,IAAI,CAAC,mBAAmB,EAAE,CAAA;YAC5B,CAAC;SACF,CAAC;QACF,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC;QAE7C,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAC9B,IAAI,CAAC,mBAAmB,EAAE,CAAA;QAE1B,OAAO,cAAc,CAAA;IACvB,CAAC;IA+BD,MAAM,CAAC,IAAY,EAAE,GAAG,IAAe;QACrC,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,UAAU,IAAI,wBAAwB,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,WAA+B,CAAC;QACpC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAChC,WAAW,GAAG,IAAI,CAAC,KAAK,EAAY,CAAC;QACvC,CAAC;QAED,IAAI,UAA0C,CAAC;QAC/C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,UAAU,GAAG,IAAI,CAAC,KAAK,EAAwB,CAAC;QAClD,CAAC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAmD,CAAC;QACrE,MAAM,gBAAgB,GAAqB;YACzC,WAAW;YACX,UAAU,EAAE,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YACvE,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YAC1D,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACxD,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACrD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;gBAClB,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACjE,OAAO,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;oBACpC,IAAI,OAAO,CAAC,IAAI;wBAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAA;gBAC5E,CAAC;gBACD,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,WAAW;oBAAE,gBAAgB,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;gBAClG,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW;oBAAE,gBAAgB,CAAC,UAAU,GAAG,OAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;gBACzG,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;oBAAE,gBAAgB,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;gBACzF,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,WAAW;oBAAE,gBAAgB,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;gBACtF,IAAI,CAAC,qBAAqB,EAAE,CAAA;YAC9B,CAAC;SACF,CAAC;QACF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC;QAEjD,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAChC,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAE5B,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAED;;;OAGG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAA;IAC5C,CAAC;IAED;;OAEG;IACH,uBAAuB;QACrB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;QACpC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACtC,CAAC;IACH,CAAC;CACF;AArtBD,8BAqtBC;AASD;;;GAGG;AACH,MAAa,gBAAgB;IAG3B,YACE,WAAiC,EACzB,UAYP;QAZO,eAAU,GAAV,UAAU,CAYjB;QAED,IAAI,CAAC,YAAY;YACf,OAAO,WAAW,KAAK,QAAQ;gBAC7B,CAAC,CAAC,IAAI,4BAAW,CAAC,WAAW,CAAC;gBAC9B,CAAC,CAAC,WAAW,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,gBAAgB,CACd,QAAgB;;QAEhB,OAAO,MAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,0CAAG,QAAQ,CAAC,CAAC;IAC9C,CAAC;CACF;AA/CD,4CA+CC;AA0BD,MAAM,wBAAwB,GAAG;IAC/B,IAAI,EAAE,QAAiB;CACxB,CAAC;AA+EF,SAAS,yBAAyB,CAChC,MAAqC;IAErC,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CACrC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAkB,EAAE,CAAC,CAAC;QAClC,IAAI;QACJ,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE;KAC9B,CAAC,CACH,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,WAAqB;IACnD,OAAO;QACL,UAAU,EAAE;YACV,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACjC,KAAK,EAAE,WAAW,CAAC,MAAM;YACzB,OAAO,EAAE,WAAW,CAAC,MAAM,GAAG,GAAG;SAClC;KACF,CAAC;AACJ,CAAC;AAED,MAAM,uBAAuB,GAAmB;IAC9C,UAAU,EAAE;QACV,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,KAAK;KACf;CACF,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { IncomingMessage, ServerResponse } from "node:http";
2
2
  import { Transport } from "../shared/transport.js";
3
3
  import { JSONRPCMessage } from "../types.js";
4
+ import { AuthInfo } from "./auth/types.js";
4
5
  /**
5
6
  * Server transport for SSE: this will send messages over an SSE connection and receive messages from HTTP POST requests.
6
7
  *
@@ -13,7 +14,9 @@ export declare class SSEServerTransport implements Transport {
13
14
  private _sessionId;
14
15
  onclose?: () => void;
15
16
  onerror?: (error: Error) => void;
16
- onmessage?: (message: JSONRPCMessage) => void;
17
+ onmessage?: (message: JSONRPCMessage, extra?: {
18
+ authInfo?: AuthInfo;
19
+ }) => void;
17
20
  /**
18
21
  * Creates a new SSE server transport, which will direct the client to POST messages to the relative or absolute URL identified by `_endpoint`.
19
22
  */
@@ -29,11 +32,15 @@ export declare class SSEServerTransport implements Transport {
29
32
  *
30
33
  * This should be called when a POST request is made to send a message to the server.
31
34
  */
32
- handlePostMessage(req: IncomingMessage, res: ServerResponse, parsedBody?: unknown): Promise<void>;
35
+ handlePostMessage(req: IncomingMessage & {
36
+ auth?: AuthInfo;
37
+ }, res: ServerResponse, parsedBody?: unknown): Promise<void>;
33
38
  /**
34
39
  * Handle a client message, regardless of how it arrived. This can be used to inform the server of messages that arrive via a means different than HTTP POST.
35
40
  */
36
- handleMessage(message: unknown): Promise<void>;
41
+ handleMessage(message: unknown, extra?: {
42
+ authInfo?: AuthInfo;
43
+ }): Promise<void>;
37
44
  close(): Promise<void>;
38
45
  send(message: JSONRPCMessage): Promise<void>;
39
46
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../../src/server/sse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAwB,MAAM,aAAa,CAAC;AAMnE;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAYhD,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAE9C;;OAEG;gBAEO,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc;IAK7B;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB5B;;;;OAIG;IACG,iBAAiB,CACrB,GAAG,EAAE,eAAe,EACpB,GAAG,EAAE,cAAc,EACnB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC;IAkChB;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlD;;;;OAIG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;CACF"}
1
+ {"version":3,"file":"sse.d.ts","sourceRoot":"","sources":["../../../src/server/sse.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAwB,MAAM,aAAa,CAAC;AAGnE,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAK3C;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,SAAS;IAYhD,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,GAAG;IAZb,OAAO,CAAC,YAAY,CAAC,CAAiB;IACtC,OAAO,CAAC,UAAU,CAAS;IAE3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,KAAK,IAAI,CAAC;IAE/E;;OAEG;gBAEO,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,cAAc;IAK7B;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkC5B;;;;OAIG;IACG,iBAAiB,CACrB,GAAG,EAAE,eAAe,GAAG;QAAE,IAAI,CAAC,EAAE,QAAQ,CAAA;KAAE,EAC1C,GAAG,EAAE,cAAc,EACnB,UAAU,CAAC,EAAE,OAAO,GACnB,OAAO,CAAC,IAAI,CAAC;IAmChB;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAY/E,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAMtB,IAAI,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlD;;;;OAIG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;CACF"}
@@ -8,6 +8,7 @@ const node_crypto_1 = require("node:crypto");
8
8
  const types_js_1 = require("../types.js");
9
9
  const raw_body_1 = __importDefault(require("raw-body"));
10
10
  const content_type_1 = __importDefault(require("content-type"));
11
+ const url_1 = require("url");
11
12
  const MAXIMUM_MESSAGE_SIZE = "4mb";
12
13
  /**
13
14
  * Server transport for SSE: this will send messages over an SSE connection and receive messages from HTTP POST requests.
@@ -34,11 +35,18 @@ class SSEServerTransport {
34
35
  }
35
36
  this.res.writeHead(200, {
36
37
  "Content-Type": "text/event-stream",
37
- "Cache-Control": "no-cache",
38
+ "Cache-Control": "no-cache, no-transform",
38
39
  Connection: "keep-alive",
39
40
  });
40
41
  // Send the endpoint event
41
- this.res.write(`event: endpoint\ndata: ${encodeURI(this._endpoint)}?sessionId=${this._sessionId}\n\n`);
42
+ // Use a dummy base URL because this._endpoint is relative.
43
+ // This allows using URL/URLSearchParams for robust parameter handling.
44
+ const dummyBase = 'http://localhost'; // Any valid base works
45
+ const endpointUrl = new url_1.URL(this._endpoint, dummyBase);
46
+ endpointUrl.searchParams.set('sessionId', this._sessionId);
47
+ // Reconstruct the relative URL string (pathname + search + hash)
48
+ const relativeUrlWithSession = endpointUrl.pathname + endpointUrl.search + endpointUrl.hash;
49
+ this.res.write(`event: endpoint\ndata: ${relativeUrlWithSession}\n\n`);
42
50
  this._sseResponse = this.res;
43
51
  this.res.on("close", () => {
44
52
  var _a;
@@ -58,6 +66,7 @@ class SSEServerTransport {
58
66
  res.writeHead(500).end(message);
59
67
  throw new Error(message);
60
68
  }
69
+ const authInfo = req.auth;
61
70
  let body;
62
71
  try {
63
72
  const ct = content_type_1.default.parse((_a = req.headers["content-type"]) !== null && _a !== void 0 ? _a : "");
@@ -75,7 +84,7 @@ class SSEServerTransport {
75
84
  return;
76
85
  }
77
86
  try {
78
- await this.handleMessage(typeof body === 'string' ? JSON.parse(body) : body);
87
+ await this.handleMessage(typeof body === 'string' ? JSON.parse(body) : body, { authInfo });
79
88
  }
80
89
  catch (_d) {
81
90
  res.writeHead(400).end(`Invalid message: ${body}`);
@@ -86,7 +95,7 @@ class SSEServerTransport {
86
95
  /**
87
96
  * Handle a client message, regardless of how it arrived. This can be used to inform the server of messages that arrive via a means different than HTTP POST.
88
97
  */
89
- async handleMessage(message) {
98
+ async handleMessage(message, extra) {
90
99
  var _a, _b;
91
100
  let parsedMessage;
92
101
  try {
@@ -96,7 +105,7 @@ class SSEServerTransport {
96
105
  (_a = this.onerror) === null || _a === void 0 ? void 0 : _a.call(this, error);
97
106
  throw error;
98
107
  }
99
- (_b = this.onmessage) === null || _b === void 0 ? void 0 : _b.call(this, parsedMessage);
108
+ (_b = this.onmessage) === null || _b === void 0 ? void 0 : _b.call(this, parsedMessage, extra);
100
109
  }
101
110
  async close() {
102
111
  var _a, _b;
@@ -1 +1 @@
1
- {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../src/server/sse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sse.js","sourceRoot":"","sources":["../../../src/server/sse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ import { IncomingMessage, ServerResponse } from "node:http";
2
+ import { Transport } from "../shared/transport.js";
3
+ import { JSONRPCMessage, RequestId } from "../types.js";
4
+ export type StreamId = string;
5
+ export type EventId = string;
6
+ /**
7
+ * Interface for resumability support via event storage
8
+ */
9
+ export interface EventStore {
10
+ /**
11
+ * Stores an event for later retrieval
12
+ * @param streamId ID of the stream the event belongs to
13
+ * @param message The JSON-RPC message to store
14
+ * @returns The generated event ID for the stored event
15
+ */
16
+ storeEvent(streamId: StreamId, message: JSONRPCMessage): Promise<EventId>;
17
+ replayEventsAfter(lastEventId: EventId, { send }: {
18
+ send: (eventId: EventId, message: JSONRPCMessage) => Promise<void>;
19
+ }): Promise<StreamId>;
20
+ }
21
+ /**
22
+ * Configuration options for StreamableHTTPServerTransport
23
+ */
24
+ export interface StreamableHTTPServerTransportOptions {
25
+ /**
26
+ * Function that generates a session ID for the transport.
27
+ * The session ID SHOULD be globally unique and cryptographically secure (e.g., a securely generated UUID, a JWT, or a cryptographic hash)
28
+ *
29
+ * Return undefined to disable session management.
30
+ */
31
+ sessionIdGenerator: (() => string) | undefined;
32
+ /**
33
+ * A callback for session initialization events
34
+ * This is called when the server initializes a new session.
35
+ * Useful in cases when you need to register multiple mcp sessions
36
+ * and need to keep track of them.
37
+ * @param sessionId The generated session ID
38
+ */
39
+ onsessioninitialized?: (sessionId: string) => void;
40
+ /**
41
+ * If true, the server will return JSON responses instead of starting an SSE stream.
42
+ * This can be useful for simple request/response scenarios without streaming.
43
+ * Default is false (SSE streams are preferred).
44
+ */
45
+ enableJsonResponse?: boolean;
46
+ /**
47
+ * Event store for resumability support
48
+ * If provided, resumability will be enabled, allowing clients to reconnect and resume messages
49
+ */
50
+ eventStore?: EventStore;
51
+ }
52
+ /**
53
+ * Server transport for Streamable HTTP: this implements the MCP Streamable HTTP transport specification.
54
+ * It supports both SSE streaming and direct HTTP responses.
55
+ *
56
+ * Usage example:
57
+ *
58
+ * ```typescript
59
+ * // Stateful mode - server sets the session ID
60
+ * const statefulTransport = new StreamableHTTPServerTransport({
61
+ * sessionId: randomUUID(),
62
+ * });
63
+ *
64
+ * // Stateless mode - explicitly set session ID to undefined
65
+ * const statelessTransport = new StreamableHTTPServerTransport({
66
+ * sessionId: undefined,
67
+ * });
68
+ *
69
+ * // Using with pre-parsed request body
70
+ * app.post('/mcp', (req, res) => {
71
+ * transport.handleRequest(req, res, req.body);
72
+ * });
73
+ * ```
74
+ *
75
+ * In stateful mode:
76
+ * - Session ID is generated and included in response headers
77
+ * - Session ID is always included in initialization responses
78
+ * - Requests with invalid session IDs are rejected with 404 Not Found
79
+ * - Non-initialization requests without a session ID are rejected with 400 Bad Request
80
+ * - State is maintained in-memory (connections, message history)
81
+ *
82
+ * In stateless mode:
83
+ * - Session ID is only included in initialization responses
84
+ * - No session validation is performed
85
+ */
86
+ export declare class StreamableHTTPServerTransport implements Transport {
87
+ private sessionIdGenerator;
88
+ private _started;
89
+ private _streamMapping;
90
+ private _requestToStreamMapping;
91
+ private _requestResponseMap;
92
+ private _initialized;
93
+ private _enableJsonResponse;
94
+ private _standaloneSseStreamId;
95
+ private _eventStore?;
96
+ private _onsessioninitialized?;
97
+ sessionId?: string | undefined;
98
+ onclose?: () => void;
99
+ onerror?: (error: Error) => void;
100
+ onmessage?: (message: JSONRPCMessage) => void;
101
+ constructor(options: StreamableHTTPServerTransportOptions);
102
+ /**
103
+ * Starts the transport. This is required by the Transport interface but is a no-op
104
+ * for the Streamable HTTP transport as connections are managed per-request.
105
+ */
106
+ start(): Promise<void>;
107
+ /**
108
+ * Handles an incoming HTTP request, whether GET or POST
109
+ */
110
+ handleRequest(req: IncomingMessage, res: ServerResponse, parsedBody?: unknown): Promise<void>;
111
+ /**
112
+ * Handles GET requests for SSE stream
113
+ */
114
+ private handleGetRequest;
115
+ /**
116
+ * Replays events that would have been sent after the specified event ID
117
+ * Only used when resumability is enabled
118
+ */
119
+ private replayEvents;
120
+ /**
121
+ * Writes an event to the SSE stream with proper formatting
122
+ */
123
+ private writeSSEEvent;
124
+ /**
125
+ * Handles unsupported requests (PUT, PATCH, etc.)
126
+ */
127
+ private handleUnsupportedRequest;
128
+ /**
129
+ * Handles POST requests containing JSON-RPC messages
130
+ */
131
+ private handlePostRequest;
132
+ /**
133
+ * Handles DELETE requests to terminate sessions
134
+ */
135
+ private handleDeleteRequest;
136
+ /**
137
+ * Validates session ID for non-initialization requests
138
+ * Returns true if the session is valid, false otherwise
139
+ */
140
+ private validateSession;
141
+ close(): Promise<void>;
142
+ send(message: JSONRPCMessage, options?: {
143
+ relatedRequestId?: RequestId;
144
+ }): Promise<void>;
145
+ }
146
+ //# sourceMappingURL=streamableHttp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"streamableHttp.d.ts","sourceRoot":"","sources":["../../../src/server/streamableHttp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAA4E,cAAc,EAAwB,SAAS,EAAE,MAAM,aAAa,CAAC;AAOxJ,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC;AAC9B,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,UAAU,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1E,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE;QAChD,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KACnE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,oCAAoC;IACnD;;;;;OAKG;IACH,kBAAkB,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;IAE/C;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnD;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,6BAA8B,YAAW,SAAS;IAE7D,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,cAAc,CAA0C;IAChE,OAAO,CAAC,uBAAuB,CAAqC;IACpE,OAAO,CAAC,mBAAmB,CAA6C;IACxE,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,sBAAsB,CAAyB;IACvD,OAAO,CAAC,WAAW,CAAC,CAAa;IACjC,OAAO,CAAC,qBAAqB,CAAC,CAA8B;IAE5D,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;gBAElC,OAAO,EAAE,oCAAoC;IAOzD;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACG,aAAa,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnG;;OAEG;YACW,gBAAgB;IAqE9B;;;OAGG;YACW,YAAY;IA8B1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAWrB;;OAEG;YACW,wBAAwB;IAatC;;OAEG;YACW,iBAAiB;IAiK/B;;OAEG;YACW,mBAAmB;IAQjC;;;OAGG;IACH,OAAO,CAAC,eAAe;IA2DjB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYtB,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE;QAAE,gBAAgB,CAAC,EAAE,SAAS,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;CAgG/F"}