@rekog/mcp-nest 1.5.0 → 1.5.2

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 (38) hide show
  1. package/.github/workflows/pipeline.yml +11 -1
  2. package/README.md +28 -42
  3. package/coverage/clover.xml +324 -325
  4. package/coverage/coverage-final.json +20 -20
  5. package/coverage/lcov-report/decorators/constants.ts.html +4 -4
  6. package/coverage/lcov-report/decorators/index.html +1 -1
  7. package/coverage/lcov-report/decorators/index.ts.html +5 -5
  8. package/coverage/lcov-report/decorators/prompt.decorator.ts.html +4 -4
  9. package/coverage/lcov-report/decorators/resource.decorator.ts.html +4 -4
  10. package/coverage/lcov-report/decorators/tool.decorator.ts.html +5 -5
  11. package/coverage/lcov-report/index.html +37 -37
  12. package/coverage/lcov-report/services/index.html +9 -39
  13. package/coverage/lcov-report/services/mcp-registry.service.ts.html +6 -6
  14. package/coverage/lcov-report/tests/index.html +21 -21
  15. package/coverage/lcov-report/tests/utils.ts.html +45 -45
  16. package/coverage/lcov.info +446 -449
  17. package/dist/interfaces/mcp-tool.interface.d.ts +7 -1
  18. package/dist/interfaces/mcp-tool.interface.d.ts.map +1 -1
  19. package/dist/services/handlers/mcp-handler.base.d.ts +3 -5
  20. package/dist/services/handlers/mcp-handler.base.d.ts.map +1 -1
  21. package/dist/services/handlers/mcp-handler.base.js +6 -2
  22. package/dist/services/handlers/mcp-handler.base.js.map +1 -1
  23. package/dist/transport/streamable-http.controller.factory.js +2 -2
  24. package/dist/transport/streamable-http.controller.factory.js.map +1 -1
  25. package/package.json +5 -3
  26. package/playground/resources/greeting.tool.ts +4 -3
  27. package/tests/mcp-tool.e2e.spec.ts +74 -10
  28. package/tsconfig.build.tsbuildinfo +1 -1
  29. package/coverage/lcov-report/services/handlers/index.html +0 -161
  30. package/coverage/lcov-report/services/handlers/mcp-handler.base.ts.html +0 -421
  31. package/coverage/lcov-report/services/handlers/mcp-prompts.handler.ts.html +0 -385
  32. package/coverage/lcov-report/services/handlers/mcp-resources.handler.ts.html +0 -361
  33. package/coverage/lcov-report/services/handlers/mcp-tools.handler.ts.html +0 -355
  34. package/coverage/lcov-report/services/mcp-executor.service.ts.html +0 -199
  35. package/coverage/lcov-report/services/sse-ping.service.ts.html +0 -499
  36. package/coverage/lcov-report/transport/index.html +0 -131
  37. package/coverage/lcov-report/transport/sse.controller.factory.ts.html +0 -532
  38. package/coverage/lcov-report/transport/streamable-http.controller.factory.ts.html +0 -1258
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">54.54% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>22/22</span>
28
+ <span class='fraction'>12/22</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">25% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>4/4</span>
35
+ <span class='fraction'>1/4</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">100% </span>
40
+ <span class="strong">33.33% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>3/3</span>
42
+ <span class='fraction'>1/3</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">54.54% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>22/22</span>
49
+ <span class='fraction'>12/22</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line medium'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -187,10 +187,10 @@
187
187
  <a name='L122'></a><a href='#L122'>122</a>
188
188
  <a name='L123'></a><a href='#L123'>123</a>
189
189
  <a name='L124'></a><a href='#L124'>124</a>
190
- <a name='L125'></a><a href='#L125'>125</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">5x</span>
191
- <span class="cline-any cline-yes">5x</span>
192
- <span class="cline-any cline-yes">5x</span>
193
- <span class="cline-any cline-yes">5x</span>
190
+ <a name='L125'></a><a href='#L125'>125</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">4x</span>
191
+ <span class="cline-any cline-yes">4x</span>
192
+ <span class="cline-any cline-yes">4x</span>
193
+ <span class="cline-any cline-yes">4x</span>
194
194
  <span class="cline-any cline-neutral">&nbsp;</span>
195
195
  <span class="cline-any cline-neutral">&nbsp;</span>
196
196
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -209,14 +209,14 @@
209
209
  <span class="cline-any cline-neutral">&nbsp;</span>
210
210
  <span class="cline-any cline-neutral">&nbsp;</span>
211
211
  <span class="cline-any cline-neutral">&nbsp;</span>
212
- <span class="cline-any cline-yes">5x</span>
212
+ <span class="cline-any cline-yes">4x</span>
213
213
  <span class="cline-any cline-neutral">&nbsp;</span>
214
214
  <span class="cline-any cline-neutral">&nbsp;</span>
215
215
  <span class="cline-any cline-neutral">&nbsp;</span>
216
216
  <span class="cline-any cline-neutral">&nbsp;</span>
217
217
  <span class="cline-any cline-neutral">&nbsp;</span>
218
218
  <span class="cline-any cline-neutral">&nbsp;</span>
219
- <span class="cline-any cline-yes">18x</span>
219
+ <span class="cline-any cline-yes">11x</span>
220
220
  <span class="cline-any cline-neutral">&nbsp;</span>
221
221
  <span class="cline-any cline-neutral">&nbsp;</span>
222
222
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -227,10 +227,10 @@
227
227
  <span class="cline-any cline-neutral">&nbsp;</span>
228
228
  <span class="cline-any cline-neutral">&nbsp;</span>
229
229
  <span class="cline-any cline-neutral">&nbsp;</span>
230
- <span class="cline-any cline-yes">18x</span>
231
- <span class="cline-any cline-yes">18x</span>
232
- <span class="cline-any cline-yes">18x</span>
233
- <span class="cline-any cline-yes">17x</span>
230
+ <span class="cline-any cline-yes">11x</span>
231
+ <span class="cline-any cline-yes">11x</span>
232
+ <span class="cline-any cline-yes">11x</span>
233
+ <span class="cline-any cline-yes">10x</span>
234
234
  <span class="cline-any cline-neutral">&nbsp;</span>
235
235
  <span class="cline-any cline-neutral">&nbsp;</span>
236
236
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -250,15 +250,15 @@
250
250
  <span class="cline-any cline-neutral">&nbsp;</span>
251
251
  <span class="cline-any cline-neutral">&nbsp;</span>
252
252
  <span class="cline-any cline-neutral">&nbsp;</span>
253
- <span class="cline-any cline-yes">5x</span>
253
+ <span class="cline-any cline-yes">4x</span>
254
254
  <span class="cline-any cline-neutral">&nbsp;</span>
255
255
  <span class="cline-any cline-neutral">&nbsp;</span>
256
256
  <span class="cline-any cline-neutral">&nbsp;</span>
257
257
  <span class="cline-any cline-neutral">&nbsp;</span>
258
258
  <span class="cline-any cline-neutral">&nbsp;</span>
259
259
  <span class="cline-any cline-neutral">&nbsp;</span>
260
- <span class="cline-any cline-yes">7x</span>
261
- <span class="cline-any cline-yes">7x</span>
260
+ <span class="cline-any cline-no">&nbsp;</span>
261
+ <span class="cline-any cline-no">&nbsp;</span>
262
262
  <span class="cline-any cline-neutral">&nbsp;</span>
263
263
  <span class="cline-any cline-neutral">&nbsp;</span>
264
264
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -269,12 +269,12 @@
269
269
  <span class="cline-any cline-neutral">&nbsp;</span>
270
270
  <span class="cline-any cline-neutral">&nbsp;</span>
271
271
  <span class="cline-any cline-neutral">&nbsp;</span>
272
- <span class="cline-any cline-yes">7x</span>
273
- <span class="cline-any cline-yes">7x</span>
272
+ <span class="cline-any cline-no">&nbsp;</span>
273
+ <span class="cline-any cline-no">&nbsp;</span>
274
274
  <span class="cline-any cline-neutral">&nbsp;</span>
275
275
  <span class="cline-any cline-neutral">&nbsp;</span>
276
- <span class="cline-any cline-yes">7x</span>
277
- <span class="cline-any cline-yes">7x</span>
276
+ <span class="cline-any cline-no">&nbsp;</span>
277
+ <span class="cline-any cline-no">&nbsp;</span>
278
278
  <span class="cline-any cline-neutral">&nbsp;</span>
279
279
  <span class="cline-any cline-neutral">&nbsp;</span>
280
280
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -288,10 +288,10 @@
288
288
  <span class="cline-any cline-neutral">&nbsp;</span>
289
289
  <span class="cline-any cline-neutral">&nbsp;</span>
290
290
  <span class="cline-any cline-neutral">&nbsp;</span>
291
- <span class="cline-any cline-yes">5x</span>
291
+ <span class="cline-any cline-yes">4x</span>
292
292
  <span class="cline-any cline-neutral">&nbsp;</span>
293
293
  <span class="cline-any cline-neutral">&nbsp;</span>
294
- <span class="cline-any cline-yes">7x</span>
294
+ <span class="cline-any cline-no">&nbsp;</span>
295
295
  <span class="cline-any cline-neutral">&nbsp;</span>
296
296
  <span class="cline-any cline-neutral">&nbsp;</span>
297
297
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -303,13 +303,13 @@
303
303
  <span class="cline-any cline-neutral">&nbsp;</span>
304
304
  <span class="cline-any cline-neutral">&nbsp;</span>
305
305
  <span class="cline-any cline-neutral">&nbsp;</span>
306
- <span class="cline-any cline-yes">7x</span>
306
+ <span class="cline-any cline-no">&nbsp;</span>
307
307
  <span class="cline-any cline-neutral">&nbsp;</span>
308
308
  <span class="cline-any cline-neutral">&nbsp;</span>
309
309
  <span class="cline-any cline-neutral">&nbsp;</span>
310
310
  <span class="cline-any cline-neutral">&nbsp;</span>
311
- <span class="cline-any cline-yes">7x</span>
312
- <span class="cline-any cline-yes">7x</span>
311
+ <span class="cline-any cline-no">&nbsp;</span>
312
+ <span class="cline-any cline-no">&nbsp;</span>
313
313
  <span class="cline-any cline-neutral">&nbsp;</span>
314
314
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import { Client } from '@modelcontextprotocol/sdk/client/index.js';
315
315
  import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
@@ -374,15 +374,15 @@ export async function createSseClient(
374
374
  * });
375
375
  * ```
376
376
  */
377
- export async function createStreamableClient(
377
+ export async function <span class="fstat-no" title="function not covered" >createStreamableClient(</span>
378
378
  port: number,
379
379
  options: {
380
380
  endpoint?: string;
381
381
  requestInit?: RequestInit;
382
- } = {},
382
+ } = <span class="branch-0 cbranch-no" title="branch not covered" >{},</span>
383
383
  ): Promise&lt;Client&gt; {
384
- const endpoint = options.endpoint || '/mcp';
385
- const client = new Client(
384
+ const endpoint = <span class="cstat-no" title="statement not covered" >options.endpoint || '/mcp';</span>
385
+ const client = <span class="cstat-no" title="statement not covered" >new Client(</span>
386
386
  { name: 'example-client', version: '1.0.0' },
387
387
  {
388
388
  capabilities: {
@@ -393,12 +393,12 @@ export async function createStreamableClient(
393
393
  },
394
394
  },
395
395
  );
396
- const url = new URL(`http://localhost:${port}${endpoint}`);
397
- const transport = new StreamableHTTPClientTransport(url, {
396
+ const url = <span class="cstat-no" title="statement not covered" >new URL(`http://localhost:${port}${endpoint}`);</span>
397
+ const transport = <span class="cstat-no" title="statement not covered" >new StreamableHTTPClientTransport(url, {</span>
398
398
  requestInit: options.requestInit,
399
399
  });
400
- await client.connect(transport);
401
- return client;
400
+ <span class="cstat-no" title="statement not covered" > await client.connect(transport);</span>
401
+ <span class="cstat-no" title="statement not covered" > return client;</span>
402
402
  }
403
403
  &nbsp;
404
404
  /**
@@ -412,10 +412,10 @@ export async function createStreamableClient(
412
412
  * const client = await createStdioClient('path/to/server.ts');
413
413
  * ```
414
414
  */
415
- export async function createStdioClient(options: {
415
+ export async function <span class="fstat-no" title="function not covered" >createStdioClient(</span>options: {
416
416
  serverScriptPath: string;
417
417
  }): Promise&lt;Client&gt; {
418
- const client = new Client(
418
+ const client = <span class="cstat-no" title="statement not covered" >new Client(</span>
419
419
  { name: 'example-stdio-client', version: '1.0.0' },
420
420
  {
421
421
  capabilities: {
@@ -427,13 +427,13 @@ export async function createStdioClient(options: {
427
427
  },
428
428
  );
429
429
  &nbsp;
430
- const transport = new StdioClientTransport({
430
+ const transport = <span class="cstat-no" title="statement not covered" >new StdioClientTransport({</span>
431
431
  command: 'ts-node-dev',
432
432
  args: ['--respawn', options.serverScriptPath!],
433
433
  });
434
434
  &nbsp;
435
- await client.connect(transport);
436
- return client;
435
+ <span class="cstat-no" title="statement not covered" > await client.connect(transport);</span>
436
+ <span class="cstat-no" title="statement not covered" > return client;</span>
437
437
  }
438
438
  &nbsp;</pre></td></tr></table></pre>
439
439
 
@@ -442,7 +442,7 @@ export async function createStdioClient(options: {
442
442
  <div class='footer quiet pad2 space-top1 center small'>
443
443
  Code coverage generated by
444
444
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
445
- at 2025-04-26T06:32:27.500Z
445
+ at 2025-05-03T13:13:32.616Z
446
446
  </div>
447
447
  <script src="../prettify.js"></script>
448
448
  <script>