@rekog/mcp-nest 1.0.19 → 1.1.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.
package/README.md CHANGED
@@ -1,11 +1,13 @@
1
1
  # NestJS MCP Server Module
2
2
 
3
- A NestJS module for exposing your services as an MCP (Model Context Protocol) server with Server-Sent Events (SSE) transport. This package simplifies exposing tools that can be discovered and executed by clients via SSE.
3
+ A NestJS module for exposing your services as an MCP (Model Context Protocol) server with Server-Sent Events (SSE) transport. This package simplifies exposing tools that clients can discover and execute via SSE.
4
4
 
5
5
  ## Features
6
6
 
7
7
  - **SSE Transport**: Built-in `/sse` endpoint for streaming and `/messages` for handling tool execution
8
8
  - **Tool Discovery**: Automatically discover and register tools using decorators
9
+ - **Tool Request Validation**: Define Zod schemas to validate tool requests.
10
+ - **Progress Notifications**: Send continuous progress updates from tools to clients.
9
11
 
10
12
  ## Installation
11
13
 
@@ -20,7 +22,7 @@ npm install @rekog/mcp-nest reflect-metadata @modelcontextprotocol/sdk zod
20
22
  ```typescript
21
23
  // app.module.ts
22
24
  import { Module } from '@nestjs/common';
23
- import { McpModule } from '@your-package-name/mcp';
25
+ import { McpModule } from '@rekog/mcp-nest';
24
26
  import { GreetingTool } from './greeting.tool';
25
27
 
26
28
  @Module({
@@ -28,7 +30,7 @@ import { GreetingTool } from './greeting.tool';
28
30
  McpModule.forRoot({
29
31
  name: 'my-mcp-server',
30
32
  version: '1.0.0',
31
- capabilities: { /* ... */ }
33
+ capabilities: {}
32
34
  })
33
35
  ],
34
36
  providers: [GreetingTool]
@@ -41,19 +43,58 @@ export class AppModule {}
41
43
  ```typescript
42
44
  // greeting.tool.ts
43
45
  import { Injectable } from '@nestjs/common';
44
- import { Tool } from '@your-package-name/mcp';
46
+ import { Tool } from '@rekog/mcp-nest';
45
47
  import { z } from 'zod';
48
+ import { RequestSchema } from '@modelcontextprotocol/sdk/types.js';
49
+
50
+ const ProgressRequestSchema = RequestSchema.extend({
51
+ method: z.literal('progress/request'),
52
+ params: z.object({
53
+ _meta: z.object({
54
+ progressToken: z.union([z.string(), z.number().int()]).optional(),
55
+ }).optional(),
56
+ }).optional(),
57
+ });
46
58
 
47
59
  @Injectable()
48
60
  export class GreetingTool {
49
61
  @Tool('hello', 'Returns greeting', {
50
- name: z.string().default('World')
62
+ schema: {
63
+ name: z.string().default('World')
64
+ }
51
65
  })
52
66
  greet({ name }: { name: string }) {
53
67
  return {
54
68
  content: [{ type: 'text', text: `Hello ${name}!` }]
55
69
  };
56
70
  }
71
+
72
+ @Tool('progress-test', 'A tool that simulates progress', {
73
+ requestSchema: ProgressRequestSchema,
74
+ })
75
+ async progressTest(params, context) {
76
+ const progressToken = params._meta?.progressToken;
77
+
78
+ for (let i = 0; i <= 5; i++) {
79
+ await new Promise((resolve) => setTimeout(resolve, 500));
80
+
81
+ if (progressToken) {
82
+ await context.sendNotification({
83
+ method: 'notifications/progress',
84
+ params: {
85
+ progressToken,
86
+ progress: i,
87
+ total: 5,
88
+ },
89
+ });
90
+ console.log(`Sent progress: \${i}/5`);
91
+ }
92
+ }
93
+
94
+ return {
95
+ message: 'Progress test completed!',
96
+ };
97
+ }
57
98
  }
58
99
  ```
59
100
 
@@ -84,7 +125,7 @@ const client = new Client(
84
125
  );
85
126
 
86
127
  await client.connect(
87
- new SSEClientTransport(new URL('http://localhost:3000/sse'))
128
+ new SSEClientTransport(new URL('<http://localhost:3000/sse>'))
88
129
  );
89
130
 
90
131
  // Execute tool
@@ -92,6 +133,24 @@ const result = await client.callTool({
92
133
  name: 'hello',
93
134
  arguments: { name: 'World' }
94
135
  });
136
+
137
+ // Execute tool with request schema and receive progress notifications
138
+ const progressResult = await client.request(
139
+ {
140
+ method: 'progress/request',
141
+ params: {
142
+ _meta: {
143
+ progressToken: 'test-token',
144
+ },
145
+ },
146
+ },
147
+ z.object({ message: z.string() }),
148
+ {
149
+ onprogress: (progress) => {
150
+ console.log('Received progress:', progress);
151
+ },
152
+ },
153
+ );
95
154
  ```
96
155
 
97
156
  ## API Endpoints
@@ -108,3 +167,35 @@ const result = await client.callTool({
108
167
  | `name` | string | Server name |
109
168
  | `version` | string | Server version |
110
169
  | `capabilities` | Record<string, any> | Server capabilities |
170
+ | `sseEndpoint` | string (optional) | Endpoint for SSE connections. Defaults to `'sse'`. |
171
+ | `messagesEndpoint` | string (optional) | Endpoint for handling tool execution. Defaults to `'messages'`. |
172
+ | `globalApiPrefix` | string (optional) | Global API prefix for all endpoints. Defaults to an empty string `''`. |
173
+
174
+ ### Tool Decorator
175
+
176
+ The `@Tool` decorator is used to define a method as an MCP tool.
177
+
178
+ ```typescript
179
+ @Tool(name: string, description: string, options: { schema?: any, requestSchema?: z.ZodObject<any> })
180
+ ```
181
+
182
+ - `name`: The name of the tool.
183
+ - `description`: A description of the tool.
184
+ - `options.schema`: (Optional) A Zod schema defining the expected structure of the tool's input arguments.
185
+ - `options.requestSchema`: (Optional) A Zod schema extending the base `RequestSchema` to validate the entire request structure, including method name and metadata.
186
+
187
+ ### Context Object
188
+
189
+ When defining a tool, you can access a context object passed as the second argument to the tool method. This object provides methods for sending notifications, errors, and responses.
190
+
191
+ ```typescript
192
+ {
193
+ sendNotification: async (notification: any) => { ... },
194
+ sendError: async (message: string, data?: any) => { ... },
195
+ sendResponse: async (response: any) => { ... }
196
+ }
197
+ ```
198
+
199
+ - `sendNotification`: Sends a notification to the client.
200
+ - `sendError`: Sends an error response to the client.
201
+ - `sendResponse`: Sends a successful response to the client.
@@ -1,9 +1,9 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1737946443305" clover="3.2.0">
3
- <project timestamp="1737946443305" name="All files">
4
- <metrics statements="79" coveredstatements="60" conditionals="27" coveredconditionals="10" methods="18" coveredmethods="13" elements="124" coveredelements="83" complexity="0" loc="79" ncloc="79" packages="5" files="8" classes="8"/>
2
+ <coverage generated="1738486475062" clover="3.2.0">
3
+ <project timestamp="1738486475062" name="All files">
4
+ <metrics statements="106" coveredstatements="83" conditionals="35" coveredconditionals="15" methods="27" coveredmethods="19" elements="168" coveredelements="117" complexity="0" loc="106" ncloc="106" packages="5" files="8" classes="8"/>
5
5
  <package name="src">
6
- <metrics statements="34" coveredstatements="17" conditionals="22" coveredconditionals="7" methods="7" coveredmethods="2"/>
6
+ <metrics statements="32" coveredstatements="16" conditionals="22" coveredconditionals="7" methods="7" coveredmethods="2"/>
7
7
  <file name="index.ts" path="/home/rinor/explore/nest-mcp/src/index.ts">
8
8
  <metrics statements="3" coveredstatements="3" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
9
9
  <line num="1" count="1" type="stmt"/>
@@ -11,79 +11,87 @@
11
11
  <line num="3" count="1" type="stmt"/>
12
12
  </file>
13
13
  <file name="mcp.module.ts" path="/home/rinor/explore/nest-mcp/src/mcp.module.ts">
14
- <metrics statements="31" coveredstatements="14" conditionals="22" coveredconditionals="7" methods="7" coveredmethods="2"/>
15
- <line num="1" count="2" type="stmt"/>
16
- <line num="2" count="2" type="stmt"/>
17
- <line num="3" count="2" type="stmt"/>
18
- <line num="5" count="2" type="stmt"/>
19
- <line num="7" count="2" type="stmt"/>
20
- <line num="10" count="2" type="stmt"/>
21
- <line num="12" count="2" type="cond" truecount="2" falsecount="0"/>
22
- <line num="13" count="2" type="cond" truecount="2" falsecount="0"/>
23
- <line num="14" count="2" type="cond" truecount="2" falsecount="0"/>
24
- <line num="16" count="2" type="stmt"/>
25
- <line num="18" count="2" type="stmt"/>
26
- <line num="30" count="2" type="stmt"/>
27
- <line num="34" count="2" type="stmt"/>
28
- <line num="35" count="2" type="stmt"/>
29
- <line num="46" count="0" type="stmt"/>
30
- <line num="48" count="0" type="stmt"/>
31
- <line num="58" count="0" type="stmt"/>
32
- <line num="62" count="0" type="stmt"/>
33
- <line num="63" count="0" type="stmt"/>
34
- <line num="73" count="0" type="cond" truecount="0" falsecount="3"/>
35
- <line num="74" count="0" type="stmt"/>
36
- <line num="77" count="0" type="cond" truecount="0" falsecount="1"/>
37
- <line num="78" count="0" type="stmt"/>
38
- <line num="81" count="0" type="stmt"/>
39
- <line num="91" count="0" type="cond" truecount="0" falsecount="1"/>
40
- <line num="92" count="0" type="stmt"/>
41
- <line num="99" count="0" type="cond" truecount="0" falsecount="2"/>
42
- <line num="100" count="0" type="cond" truecount="0" falsecount="1"/>
43
- <line num="101" count="0" type="stmt"/>
44
- <line num="104" count="0" type="stmt"/>
45
- <line num="107" count="0" type="stmt"/>
14
+ <metrics statements="29" coveredstatements="13" conditionals="22" coveredconditionals="7" methods="7" coveredmethods="2"/>
15
+ <line num="1" count="1" type="stmt"/>
16
+ <line num="2" count="1" type="stmt"/>
17
+ <line num="3" count="1" type="stmt"/>
18
+ <line num="6" count="1" type="stmt"/>
19
+ <line num="7" count="1" type="stmt"/>
20
+ <line num="10" count="1" type="stmt"/>
21
+ <line num="12" count="1" type="cond" truecount="2" falsecount="0"/>
22
+ <line num="13" count="1" type="cond" truecount="2" falsecount="0"/>
23
+ <line num="14" count="1" type="cond" truecount="2" falsecount="0"/>
24
+ <line num="16" count="1" type="stmt"/>
25
+ <line num="18" count="1" type="stmt"/>
26
+ <line num="30" count="1" type="stmt"/>
27
+ <line num="34" count="1" type="stmt"/>
28
+ <line num="45" count="0" type="stmt"/>
29
+ <line num="47" count="0" type="stmt"/>
30
+ <line num="56" count="0" type="stmt"/>
31
+ <line num="60" count="0" type="stmt"/>
32
+ <line num="71" count="0" type="cond" truecount="0" falsecount="3"/>
33
+ <line num="72" count="0" type="stmt"/>
34
+ <line num="75" count="0" type="cond" truecount="0" falsecount="1"/>
35
+ <line num="76" count="0" type="stmt"/>
36
+ <line num="79" count="0" type="stmt"/>
37
+ <line num="89" count="0" type="cond" truecount="0" falsecount="1"/>
38
+ <line num="90" count="0" type="stmt"/>
39
+ <line num="97" count="0" type="cond" truecount="0" falsecount="2"/>
40
+ <line num="98" count="0" type="cond" truecount="0" falsecount="1"/>
41
+ <line num="99" count="0" type="stmt"/>
42
+ <line num="102" count="0" type="stmt"/>
43
+ <line num="105" count="0" type="stmt"/>
46
44
  </file>
47
45
  </package>
48
46
  <package name="src.controllers">
49
- <metrics statements="16" coveredstatements="15" conditionals="1" coveredconditionals="0" methods="4" coveredmethods="4"/>
47
+ <metrics statements="26" coveredstatements="24" conditionals="3" coveredconditionals="1" methods="5" coveredmethods="4"/>
50
48
  <file name="sse.controller.factory.ts" path="/home/rinor/explore/nest-mcp/src/controllers/sse.controller.factory.ts">
51
- <metrics statements="16" coveredstatements="15" conditionals="1" coveredconditionals="0" methods="4" coveredmethods="4"/>
52
- <line num="1" count="2" type="stmt"/>
53
- <line num="4" count="2" type="stmt"/>
54
- <line num="5" count="2" type="stmt"/>
55
- <line num="7" count="2" type="stmt"/>
56
- <line num="12" count="2" type="stmt"/>
57
- <line num="13" count="2" type="stmt"/>
58
- <line num="14" count="2" type="stmt"/>
59
- <line num="16" count="2" type="stmt"/>
60
- <line num="19" count="2" type="stmt"/>
49
+ <metrics statements="26" coveredstatements="24" conditionals="3" coveredconditionals="1" methods="5" coveredmethods="4"/>
50
+ <line num="1" count="1" type="stmt"/>
51
+ <line num="4" count="1" type="stmt"/>
52
+ <line num="5" count="1" type="stmt"/>
53
+ <line num="7" count="1" type="stmt"/>
54
+ <line num="10" count="1" type="stmt"/>
55
+ <line num="15" count="1" type="stmt"/>
56
+ <line num="16" count="1" type="stmt"/>
57
+ <line num="17" count="1" type="stmt"/>
61
58
  <line num="20" count="1" type="stmt"/>
62
59
  <line num="21" count="1" type="stmt"/>
63
- <line num="25" count="2" type="stmt"/>
64
- <line num="26" count="4" type="cond" truecount="0" falsecount="1"/>
65
- <line num="27" count="0" type="stmt"/>
66
- <line num="29" count="4" type="stmt"/>
67
- <line num="33" count="2" type="stmt"/>
60
+ <line num="25" count="1" type="stmt"/>
61
+ <line num="26" count="2" type="stmt"/>
62
+ <line num="27" count="2" type="stmt"/>
63
+ <line num="29" count="2" type="stmt"/>
64
+ <line num="35" count="2" type="stmt"/>
65
+ <line num="37" count="2" type="stmt"/>
66
+ <line num="39" count="2" type="stmt"/>
67
+ <line num="40" count="0" type="stmt"/>
68
+ <line num="43" count="2" type="stmt"/>
69
+ <line num="47" count="1" type="stmt"/>
70
+ <line num="48" count="7" type="stmt"/>
71
+ <line num="50" count="7" type="stmt"/>
72
+ <line num="52" count="7" type="cond" truecount="0" falsecount="1"/>
73
+ <line num="53" count="0" type="stmt"/>
74
+ <line num="55" count="7" type="stmt"/>
75
+ <line num="59" count="1" type="stmt"/>
68
76
  </file>
69
77
  </package>
70
78
  <package name="src.decorators">
71
- <metrics statements="7" coveredstatements="7" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
79
+ <metrics statements="7" coveredstatements="7" conditionals="1" coveredconditionals="0" methods="1" coveredmethods="1"/>
72
80
  <file name="constants.ts" path="/home/rinor/explore/nest-mcp/src/decorators/constants.ts">
73
81
  <metrics statements="1" coveredstatements="1" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
74
- <line num="1" count="2" type="stmt"/>
82
+ <line num="1" count="1" type="stmt"/>
75
83
  </file>
76
84
  <file name="index.ts" path="/home/rinor/explore/nest-mcp/src/decorators/index.ts">
77
85
  <metrics statements="2" coveredstatements="2" conditionals="0" coveredconditionals="0" methods="0" coveredmethods="0"/>
78
- <line num="1" count="2" type="stmt"/>
79
- <line num="2" count="2" type="stmt"/>
86
+ <line num="1" count="1" type="stmt"/>
87
+ <line num="2" count="1" type="stmt"/>
80
88
  </file>
81
89
  <file name="tool.decorator.ts" path="/home/rinor/explore/nest-mcp/src/decorators/tool.decorator.ts">
82
- <metrics statements="4" coveredstatements="4" conditionals="0" coveredconditionals="0" methods="1" coveredmethods="1"/>
83
- <line num="1" count="2" type="stmt"/>
84
- <line num="2" count="2" type="stmt"/>
85
- <line num="10" count="2" type="stmt"/>
86
- <line num="11" count="2" type="stmt"/>
90
+ <metrics statements="4" coveredstatements="4" conditionals="1" coveredconditionals="0" methods="1" coveredmethods="1"/>
91
+ <line num="1" count="1" type="stmt"/>
92
+ <line num="2" count="1" type="stmt"/>
93
+ <line num="12" count="1" type="stmt"/>
94
+ <line num="17" count="2" type="stmt"/>
87
95
  </file>
88
96
  </package>
89
97
  <package name="src.interfaces">
@@ -94,30 +102,49 @@
94
102
  </file>
95
103
  </package>
96
104
  <package name="src.services">
97
- <metrics statements="21" coveredstatements="20" conditionals="4" coveredconditionals="3" methods="6" coveredmethods="6"/>
105
+ <metrics statements="40" coveredstatements="35" conditionals="9" coveredconditionals="7" methods="14" coveredmethods="12"/>
98
106
  <file name="mcp-tools.discovery.ts" path="/home/rinor/explore/nest-mcp/src/services/mcp-tools.discovery.ts">
99
- <metrics statements="21" coveredstatements="20" conditionals="4" coveredconditionals="3" methods="6" coveredmethods="6"/>
100
- <line num="1" count="2" type="stmt"/>
101
- <line num="2" count="2" type="stmt"/>
102
- <line num="4" count="2" type="stmt"/>
103
- <line num="7" count="2" type="stmt"/>
104
- <line num="9" count="2" type="stmt"/>
105
- <line num="10" count="2" type="stmt"/>
106
- <line num="14" count="2" type="stmt"/>
107
- <line num="15" count="2" type="stmt"/>
108
- <line num="16" count="2" type="stmt"/>
109
- <line num="17" count="57" type="stmt"/>
110
- <line num="18" count="51" type="stmt"/>
111
- <line num="20" count="2" type="stmt"/>
112
- <line num="21" count="51" type="cond" truecount="2" falsecount="1"/>
113
- <line num="22" count="0" type="stmt"/>
114
- <line num="24" count="51" type="stmt"/>
115
- <line num="25" count="393" type="stmt"/>
116
- <line num="26" count="393" type="stmt"/>
117
- <line num="27" count="393" type="cond" truecount="1" falsecount="0"/>
118
- <line num="28" count="391" type="stmt"/>
119
- <line num="31" count="2" type="stmt"/>
120
- <line num="32" count="2" type="stmt"/>
107
+ <metrics statements="40" coveredstatements="35" conditionals="9" coveredconditionals="7" methods="14" coveredmethods="12"/>
108
+ <line num="2" count="1" type="stmt"/>
109
+ <line num="3" count="1" type="stmt"/>
110
+ <line num="4" count="1" type="stmt"/>
111
+ <line num="7" count="1" type="stmt"/>
112
+ <line num="8" count="1" type="stmt"/>
113
+ <line num="15" count="1" type="stmt"/>
114
+ <line num="16" count="1" type="stmt"/>
115
+ <line num="20" count="1" type="stmt"/>
116
+ <line num="24" count="1" type="stmt"/>
117
+ <line num="25" count="1" type="stmt"/>
118
+ <line num="26" count="1" type="stmt"/>
119
+ <line num="27" count="29" type="stmt"/>
120
+ <line num="28" count="27" type="stmt"/>
121
+ <line num="30" count="1" type="stmt"/>
122
+ <line num="31" count="27" type="cond" truecount="2" falsecount="1"/>
123
+ <line num="32" count="0" type="stmt"/>
124
+ <line num="34" count="27" type="stmt"/>
125
+ <line num="35" count="212" type="stmt"/>
126
+ <line num="36" count="212" type="stmt"/>
127
+ <line num="38" count="212" type="cond" truecount="1" falsecount="0"/>
128
+ <line num="39" count="210" type="stmt"/>
129
+ <line num="42" count="2" type="stmt"/>
130
+ <line num="44" count="2" type="stmt"/>
131
+ <line num="54" count="2" type="stmt"/>
132
+ <line num="55" count="4" type="stmt"/>
133
+ <line num="56" count="2" type="stmt"/>
134
+ <line num="58" count="2" type="cond" truecount="2" falsecount="0"/>
135
+ <line num="60" count="1" type="stmt"/>
136
+ <line num="61" count="1" type="cond" truecount="0" falsecount="1"/>
137
+ <line num="63" count="0" type="stmt"/>
138
+ <line num="64" count="0" type="stmt"/>
139
+ <line num="68" count="1" type="stmt"/>
140
+ <line num="75" count="1" type="stmt"/>
141
+ <line num="79" count="4" type="cond" truecount="2" falsecount="0"/>
142
+ <line num="80" count="2" type="stmt"/>
143
+ <line num="86" count="2" type="stmt"/>
144
+ <line num="97" count="2" type="stmt"/>
145
+ <line num="99" count="6" type="stmt"/>
146
+ <line num="102" count="0" type="stmt"/>
147
+ <line num="105" count="0" type="stmt"/>
121
148
  </file>
122
149
  </package>
123
150
  </project>
@@ -1,9 +1,9 @@
1
1
  {"/home/rinor/explore/nest-mcp/src/index.ts": {"path":"/home/rinor/explore/nest-mcp/src/index.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":29}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":29}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1,"2":1},"f":{},"b":{}}
2
- ,"/home/rinor/explore/nest-mcp/src/mcp.module.ts": {"path":"/home/rinor/explore/nest-mcp/src/mcp.module.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":65}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":47}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":68}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":67}},"4":{"start":{"line":7,"column":0},"end":{"line":7,"column":75}},"5":{"start":{"line":10,"column":22},"end":{"line":112,"column":null}},"6":{"start":{"line":12,"column":24},"end":{"line":12,"column":52}},"7":{"start":{"line":13,"column":29},"end":{"line":13,"column":67}},"8":{"start":{"line":14,"column":28},"end":{"line":14,"column":57}},"9":{"start":{"line":16,"column":26},"end":{"line":16,"column":93}},"10":{"start":{"line":18,"column":4},"end":{"line":42,"column":6}},"11":{"start":{"line":30,"column":27},"end":{"line":32,"column":null}},"12":{"start":{"line":34,"column":12},"end":{"line":34,"column":49}},"13":{"start":{"line":35,"column":12},"end":{"line":35,"column":26}},"14":{"start":{"line":46,"column":34},"end":{"line":46,"column":68}},"15":{"start":{"line":48,"column":4},"end":{"line":69,"column":6}},"16":{"start":{"line":58,"column":27},"end":{"line":60,"column":null}},"17":{"start":{"line":62,"column":12},"end":{"line":62,"column":49}},"18":{"start":{"line":63,"column":12},"end":{"line":63,"column":26}},"19":{"start":{"line":73,"column":4},"end":{"line":75,"column":5}},"20":{"start":{"line":74,"column":6},"end":{"line":74,"column":56}},"21":{"start":{"line":77,"column":4},"end":{"line":79,"column":5}},"22":{"start":{"line":78,"column":6},"end":{"line":78,"column":91}},"23":{"start":{"line":81,"column":4},"end":{"line":87,"column":6}},"24":{"start":{"line":91,"column":4},"end":{"line":97,"column":5}},"25":{"start":{"line":92,"column":6},"end":{"line":96,"column":8}},"26":{"start":{"line":99,"column":27},"end":{"line":99,"column":66}},"27":{"start":{"line":100,"column":4},"end":{"line":102,"column":5}},"28":{"start":{"line":101,"column":6},"end":{"line":101,"column":98}},"29":{"start":{"line":104,"column":4},"end":{"line":109,"column":6}},"30":{"start":{"line":107,"column":8},"end":{"line":107,"column":47}},"31":{"start":{"line":10,"column":13},"end":{"line":10,"column":22}},"32":{"start":{"line":10,"column":13},"end":{"line":112,"column":null}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":2},"end":{"line":11,"column":8}},"loc":{"start":{"line":11,"column":36},"end":{"line":43,"column":3}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":22},"end":{"line":29,"column":23}},"loc":{"start":{"line":29,"column":84},"end":{"line":36,"column":11}}},"2":{"name":"(anonymous_3)","decl":{"start":{"line":45,"column":2},"end":{"line":45,"column":8}},"loc":{"start":{"line":45,"column":46},"end":{"line":70,"column":3}}},"3":{"name":"(anonymous_4)","decl":{"start":{"line":57,"column":22},"end":{"line":57,"column":23}},"loc":{"start":{"line":57,"column":84},"end":{"line":64,"column":11}}},"4":{"name":"(anonymous_5)","decl":{"start":{"line":72,"column":10},"end":{"line":72,"column":16}},"loc":{"start":{"line":72,"column":62},"end":{"line":88,"column":3}}},"5":{"name":"(anonymous_6)","decl":{"start":{"line":90,"column":10},"end":{"line":90,"column":16}},"loc":{"start":{"line":90,"column":68},"end":{"line":110,"column":3}}},"6":{"name":"(anonymous_7)","decl":{"start":{"line":106,"column":18},"end":{"line":106,"column":23}},"loc":{"start":{"line":107,"column":8},"end":{"line":107,"column":47}}}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":24},"end":{"line":12,"column":52}},"type":"binary-expr","locations":[{"start":{"line":12,"column":24},"end":{"line":12,"column":43}},{"start":{"line":12,"column":47},"end":{"line":12,"column":52}}]},"1":{"loc":{"start":{"line":13,"column":29},"end":{"line":13,"column":67}},"type":"binary-expr","locations":[{"start":{"line":13,"column":29},"end":{"line":13,"column":53}},{"start":{"line":13,"column":57},"end":{"line":13,"column":67}}]},"2":{"loc":{"start":{"line":14,"column":28},"end":{"line":14,"column":57}},"type":"binary-expr","locations":[{"start":{"line":14,"column":28},"end":{"line":14,"column":51}},{"start":{"line":14,"column":55},"end":{"line":14,"column":57}}]},"3":{"loc":{"start":{"line":32,"column":30},"end":{"line":32,"column":70}},"type":"binary-expr","locations":[{"start":{"line":32,"column":30},"end":{"line":32,"column":53}},{"start":{"line":32,"column":57},"end":{"line":32,"column":70}}]},"4":{"loc":{"start":{"line":50,"column":20},"end":{"line":50,"column":41}},"type":"binary-expr","locations":[{"start":{"line":50,"column":20},"end":{"line":50,"column":35}},{"start":{"line":50,"column":39},"end":{"line":50,"column":41}}]},"5":{"loc":{"start":{"line":60,"column":30},"end":{"line":60,"column":70}},"type":"binary-expr","locations":[{"start":{"line":60,"column":30},"end":{"line":60,"column":53}},{"start":{"line":60,"column":57},"end":{"line":60,"column":70}}]},"6":{"loc":{"start":{"line":73,"column":4},"end":{"line":75,"column":5}},"type":"if","locations":[{"start":{"line":73,"column":4},"end":{"line":75,"column":5}}]},"7":{"loc":{"start":{"line":73,"column":8},"end":{"line":73,"column":49}},"type":"binary-expr","locations":[{"start":{"line":73,"column":8},"end":{"line":73,"column":27}},{"start":{"line":73,"column":31},"end":{"line":73,"column":49}}]},"8":{"loc":{"start":{"line":77,"column":4},"end":{"line":79,"column":5}},"type":"if","locations":[{"start":{"line":77,"column":4},"end":{"line":79,"column":5}}]},"9":{"loc":{"start":{"line":91,"column":4},"end":{"line":97,"column":5}},"type":"if","locations":[{"start":{"line":91,"column":4},"end":{"line":97,"column":5}}]},"10":{"loc":{"start":{"line":95,"column":16},"end":{"line":95,"column":36}},"type":"binary-expr","locations":[{"start":{"line":95,"column":16},"end":{"line":95,"column":30}},{"start":{"line":95,"column":34},"end":{"line":95,"column":36}}]},"11":{"loc":{"start":{"line":99,"column":27},"end":{"line":99,"column":66}},"type":"binary-expr","locations":[{"start":{"line":99,"column":27},"end":{"line":99,"column":46}},{"start":{"line":99,"column":50},"end":{"line":99,"column":66}}]},"12":{"loc":{"start":{"line":100,"column":4},"end":{"line":102,"column":5}},"type":"if","locations":[{"start":{"line":100,"column":4},"end":{"line":102,"column":5}}]}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":2,"9":2,"10":2,"11":2,"12":2,"13":2,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":2,"32":2},"f":{"0":2,"1":2,"2":0,"3":0,"4":0,"5":0,"6":0},"b":{"0":[2,2],"1":[2,2],"2":[2,2],"3":[2,0],"4":[0,0],"5":[0,0],"6":[0],"7":[0,0],"8":[0],"9":[0],"10":[0,0],"11":[0,0],"12":[0]}}
3
- ,"/home/rinor/explore/nest-mcp/src/controllers/sse.controller.factory.ts": {"path":"/home/rinor/explore/nest-mcp/src/controllers/sse.controller.factory.ts","statementMap":{"0":{"start":{"line":7,"column":0},"end":{"line":7,"column":16}},"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":79}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":68}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":77}},"4":{"start":{"line":12,"column":2},"end":{"line":31,"column":null}},"5":{"start":{"line":16,"column":54},"end":{"line":16,"column":65}},"6":{"start":{"line":14,"column":11},"end":{"line":14,"column":55}},"7":{"start":{"line":20,"column":6},"end":{"line":20,"column":93}},"8":{"start":{"line":21,"column":6},"end":{"line":21,"column":51}},"9":{"start":{"line":26,"column":6},"end":{"line":28,"column":7}},"10":{"start":{"line":27,"column":8},"end":{"line":27,"column":64}},"11":{"start":{"line":29,"column":6},"end":{"line":29,"column":61}},"12":{"start":{"line":19,"column":10},"end":{"line":22,"column":null}},"13":{"start":{"line":25,"column":10},"end":{"line":30,"column":null}},"14":{"start":{"line":13,"column":8},"end":{"line":31,"column":null}},"15":{"start":{"line":33,"column":2},"end":{"line":33,"column":23}}},"fnMap":{"0":{"name":"createSseController","decl":{"start":{"line":7,"column":16},"end":{"line":7,"column":35}},"loc":{"start":{"line":10,"column":25},"end":{"line":34,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":16,"column":4},"end":{"line":16,"column":17}},"loc":{"start":{"line":16,"column":74},"end":{"line":16,"column":78}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":9}},"loc":{"start":{"line":19,"column":34},"end":{"line":22,"column":5}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":9}},"loc":{"start":{"line":25,"column":83},"end":{"line":30,"column":5}}}},"branchMap":{"0":{"loc":{"start":{"line":26,"column":6},"end":{"line":28,"column":7}},"type":"if","locations":[{"start":{"line":26,"column":6},"end":{"line":28,"column":7}}]}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":1,"8":1,"9":4,"10":0,"11":4,"12":2,"13":2,"14":2,"15":2},"f":{"0":2,"1":2,"2":1,"3":4},"b":{"0":[0]}}
4
- ,"/home/rinor/explore/nest-mcp/src/decorators/constants.ts": {"path":"/home/rinor/explore/nest-mcp/src/decorators/constants.ts","statementMap":{"0":{"start":{"line":1,"column":13},"end":{"line":1,"column":48}}},"fnMap":{},"branchMap":{},"s":{"0":2},"f":{},"b":{}}
5
- ,"/home/rinor/explore/nest-mcp/src/decorators/index.ts": {"path":"/home/rinor/explore/nest-mcp/src/decorators/index.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":28}}},"fnMap":{},"branchMap":{},"s":{"0":2,"1":2},"f":{},"b":{}}
6
- ,"/home/rinor/explore/nest-mcp/src/decorators/tool.decorator.ts": {"path":"/home/rinor/explore/nest-mcp/src/decorators/tool.decorator.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":45}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":52}},"2":{"start":{"line":10,"column":20},"end":{"line":12,"column":1}},"3":{"start":{"line":11,"column":2},"end":{"line":11,"column":75}},"4":{"start":{"line":10,"column":13},"end":{"line":10,"column":20}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":10,"column":20},"end":{"line":10,"column":21}},"loc":{"start":{"line":10,"column":89},"end":{"line":12,"column":1}}}},"branchMap":{},"s":{"0":2,"1":2,"2":2,"3":2,"4":2},"f":{"0":2},"b":{}}
2
+ ,"/home/rinor/explore/nest-mcp/src/mcp.module.ts": {"path":"/home/rinor/explore/nest-mcp/src/mcp.module.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":65}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":47}},"2":{"start":{"line":3,"column":0},"end":{"line":3,"column":68}},"3":{"start":{"line":6,"column":0},"end":{"line":6,"column":75}},"4":{"start":{"line":7,"column":0},"end":{"line":7,"column":67}},"5":{"start":{"line":10,"column":22},"end":{"line":110,"column":null}},"6":{"start":{"line":12,"column":24},"end":{"line":12,"column":52}},"7":{"start":{"line":13,"column":29},"end":{"line":13,"column":67}},"8":{"start":{"line":14,"column":28},"end":{"line":14,"column":57}},"9":{"start":{"line":16,"column":26},"end":{"line":16,"column":93}},"10":{"start":{"line":18,"column":4},"end":{"line":41,"column":6}},"11":{"start":{"line":30,"column":27},"end":{"line":32,"column":null}},"12":{"start":{"line":34,"column":12},"end":{"line":34,"column":26}},"13":{"start":{"line":45,"column":34},"end":{"line":45,"column":68}},"14":{"start":{"line":47,"column":4},"end":{"line":67,"column":6}},"15":{"start":{"line":56,"column":27},"end":{"line":58,"column":null}},"16":{"start":{"line":60,"column":12},"end":{"line":60,"column":26}},"17":{"start":{"line":71,"column":4},"end":{"line":73,"column":5}},"18":{"start":{"line":72,"column":6},"end":{"line":72,"column":56}},"19":{"start":{"line":75,"column":4},"end":{"line":77,"column":5}},"20":{"start":{"line":76,"column":6},"end":{"line":76,"column":91}},"21":{"start":{"line":79,"column":4},"end":{"line":85,"column":6}},"22":{"start":{"line":89,"column":4},"end":{"line":95,"column":5}},"23":{"start":{"line":90,"column":6},"end":{"line":94,"column":8}},"24":{"start":{"line":97,"column":27},"end":{"line":97,"column":66}},"25":{"start":{"line":98,"column":4},"end":{"line":100,"column":5}},"26":{"start":{"line":99,"column":6},"end":{"line":99,"column":98}},"27":{"start":{"line":102,"column":4},"end":{"line":107,"column":6}},"28":{"start":{"line":105,"column":8},"end":{"line":105,"column":47}},"29":{"start":{"line":10,"column":13},"end":{"line":10,"column":22}},"30":{"start":{"line":10,"column":13},"end":{"line":110,"column":null}}},"fnMap":{"0":{"name":"(anonymous_1)","decl":{"start":{"line":11,"column":2},"end":{"line":11,"column":8}},"loc":{"start":{"line":11,"column":36},"end":{"line":42,"column":3}}},"1":{"name":"(anonymous_2)","decl":{"start":{"line":29,"column":22},"end":{"line":29,"column":23}},"loc":{"start":{"line":29,"column":49},"end":{"line":35,"column":11}}},"2":{"name":"(anonymous_3)","decl":{"start":{"line":44,"column":2},"end":{"line":44,"column":8}},"loc":{"start":{"line":44,"column":46},"end":{"line":68,"column":3}}},"3":{"name":"(anonymous_4)","decl":{"start":{"line":55,"column":22},"end":{"line":55,"column":23}},"loc":{"start":{"line":55,"column":49},"end":{"line":61,"column":11}}},"4":{"name":"(anonymous_5)","decl":{"start":{"line":70,"column":10},"end":{"line":70,"column":16}},"loc":{"start":{"line":70,"column":62},"end":{"line":86,"column":3}}},"5":{"name":"(anonymous_6)","decl":{"start":{"line":88,"column":10},"end":{"line":88,"column":16}},"loc":{"start":{"line":88,"column":68},"end":{"line":108,"column":3}}},"6":{"name":"(anonymous_7)","decl":{"start":{"line":104,"column":18},"end":{"line":104,"column":23}},"loc":{"start":{"line":105,"column":8},"end":{"line":105,"column":47}}}},"branchMap":{"0":{"loc":{"start":{"line":12,"column":24},"end":{"line":12,"column":52}},"type":"binary-expr","locations":[{"start":{"line":12,"column":24},"end":{"line":12,"column":43}},{"start":{"line":12,"column":47},"end":{"line":12,"column":52}}]},"1":{"loc":{"start":{"line":13,"column":29},"end":{"line":13,"column":67}},"type":"binary-expr","locations":[{"start":{"line":13,"column":29},"end":{"line":13,"column":53}},{"start":{"line":13,"column":57},"end":{"line":13,"column":67}}]},"2":{"loc":{"start":{"line":14,"column":28},"end":{"line":14,"column":57}},"type":"binary-expr","locations":[{"start":{"line":14,"column":28},"end":{"line":14,"column":51}},{"start":{"line":14,"column":55},"end":{"line":14,"column":57}}]},"3":{"loc":{"start":{"line":32,"column":30},"end":{"line":32,"column":70}},"type":"binary-expr","locations":[{"start":{"line":32,"column":30},"end":{"line":32,"column":53}},{"start":{"line":32,"column":57},"end":{"line":32,"column":70}}]},"4":{"loc":{"start":{"line":49,"column":20},"end":{"line":49,"column":41}},"type":"binary-expr","locations":[{"start":{"line":49,"column":20},"end":{"line":49,"column":35}},{"start":{"line":49,"column":39},"end":{"line":49,"column":41}}]},"5":{"loc":{"start":{"line":58,"column":30},"end":{"line":58,"column":70}},"type":"binary-expr","locations":[{"start":{"line":58,"column":30},"end":{"line":58,"column":53}},{"start":{"line":58,"column":57},"end":{"line":58,"column":70}}]},"6":{"loc":{"start":{"line":71,"column":4},"end":{"line":73,"column":5}},"type":"if","locations":[{"start":{"line":71,"column":4},"end":{"line":73,"column":5}}]},"7":{"loc":{"start":{"line":71,"column":8},"end":{"line":71,"column":49}},"type":"binary-expr","locations":[{"start":{"line":71,"column":8},"end":{"line":71,"column":27}},{"start":{"line":71,"column":31},"end":{"line":71,"column":49}}]},"8":{"loc":{"start":{"line":75,"column":4},"end":{"line":77,"column":5}},"type":"if","locations":[{"start":{"line":75,"column":4},"end":{"line":77,"column":5}}]},"9":{"loc":{"start":{"line":89,"column":4},"end":{"line":95,"column":5}},"type":"if","locations":[{"start":{"line":89,"column":4},"end":{"line":95,"column":5}}]},"10":{"loc":{"start":{"line":93,"column":16},"end":{"line":93,"column":36}},"type":"binary-expr","locations":[{"start":{"line":93,"column":16},"end":{"line":93,"column":30}},{"start":{"line":93,"column":34},"end":{"line":93,"column":36}}]},"11":{"loc":{"start":{"line":97,"column":27},"end":{"line":97,"column":66}},"type":"binary-expr","locations":[{"start":{"line":97,"column":27},"end":{"line":97,"column":46}},{"start":{"line":97,"column":50},"end":{"line":97,"column":66}}]},"12":{"loc":{"start":{"line":98,"column":4},"end":{"line":100,"column":5}},"type":"if","locations":[{"start":{"line":98,"column":4},"end":{"line":100,"column":5}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":1,"12":1,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":1,"30":1},"f":{"0":1,"1":1,"2":0,"3":0,"4":0,"5":0,"6":0},"b":{"0":[1,1],"1":[1,1],"2":[1,1],"3":[1,0],"4":[0,0],"5":[0,0],"6":[0],"7":[0,0],"8":[0],"9":[0],"10":[0,0],"11":[0,0],"12":[0]}}
3
+ ,"/home/rinor/explore/nest-mcp/src/controllers/sse.controller.factory.ts": {"path":"/home/rinor/explore/nest-mcp/src/controllers/sse.controller.factory.ts","statementMap":{"0":{"start":{"line":10,"column":0},"end":{"line":10,"column":16}},"1":{"start":{"line":1,"column":0},"end":{"line":1,"column":79}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":68}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":77}},"4":{"start":{"line":7,"column":0},"end":{"line":7,"column":68}},"5":{"start":{"line":15,"column":2},"end":{"line":57,"column":null}},"6":{"start":{"line":20,"column":45},"end":{"line":20,"column":64}},"7":{"start":{"line":21,"column":22},"end":{"line":21,"column":41}},"8":{"start":{"line":17,"column":11},"end":{"line":17,"column":62}},"9":{"start":{"line":26,"column":24},"end":{"line":26,"column":93}},"10":{"start":{"line":27,"column":24},"end":{"line":27,"column":43}},"11":{"start":{"line":29,"column":24},"end":{"line":31,"column":null}},"12":{"start":{"line":35,"column":6},"end":{"line":35,"column":54}},"13":{"start":{"line":37,"column":6},"end":{"line":37,"column":48}},"14":{"start":{"line":39,"column":6},"end":{"line":41,"column":8}},"15":{"start":{"line":40,"column":8},"end":{"line":40,"column":42}},"16":{"start":{"line":43,"column":6},"end":{"line":43,"column":41}},"17":{"start":{"line":48,"column":24},"end":{"line":48,"column":53}},"18":{"start":{"line":50,"column":24},"end":{"line":50,"column":54}},"19":{"start":{"line":52,"column":6},"end":{"line":54,"column":7}},"20":{"start":{"line":53,"column":8},"end":{"line":53,"column":57}},"21":{"start":{"line":55,"column":6},"end":{"line":55,"column":56}},"22":{"start":{"line":25,"column":10},"end":{"line":44,"column":null}},"23":{"start":{"line":47,"column":10},"end":{"line":56,"column":null}},"24":{"start":{"line":16,"column":8},"end":{"line":57,"column":null}},"25":{"start":{"line":59,"column":2},"end":{"line":59,"column":23}}},"fnMap":{"0":{"name":"createSseController","decl":{"start":{"line":10,"column":16},"end":{"line":10,"column":35}},"loc":{"start":{"line":13,"column":25},"end":{"line":60,"column":1}}},"1":{"name":"(anonymous_5)","decl":{"start":{"line":19,"column":4},"end":{"line":19,"column":null}},"loc":{"start":{"line":21,"column":58},"end":{"line":22,"column":8}}},"2":{"name":"(anonymous_6)","decl":{"start":{"line":25,"column":4},"end":{"line":25,"column":9}},"loc":{"start":{"line":25,"column":34},"end":{"line":44,"column":5}}},"3":{"name":"(anonymous_7)","decl":{"start":{"line":39,"column":26},"end":{"line":39,"column":29}},"loc":{"start":{"line":39,"column":31},"end":{"line":41,"column":7}}},"4":{"name":"(anonymous_8)","decl":{"start":{"line":47,"column":4},"end":{"line":47,"column":9}},"loc":{"start":{"line":47,"column":83},"end":{"line":56,"column":5}}}},"branchMap":{"0":{"loc":{"start":{"line":31,"column":24},"end":{"line":31,"column":66}},"type":"binary-expr","locations":[{"start":{"line":31,"column":24},"end":{"line":31,"column":49}},{"start":{"line":31,"column":53},"end":{"line":31,"column":66}}]},"1":{"loc":{"start":{"line":52,"column":6},"end":{"line":54,"column":7}},"type":"if","locations":[{"start":{"line":52,"column":6},"end":{"line":54,"column":7}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":2,"10":2,"11":2,"12":2,"13":2,"14":2,"15":0,"16":2,"17":7,"18":7,"19":7,"20":0,"21":7,"22":1,"23":1,"24":1,"25":1},"f":{"0":1,"1":1,"2":2,"3":0,"4":7},"b":{"0":[2,0],"1":[0]}}
4
+ ,"/home/rinor/explore/nest-mcp/src/decorators/constants.ts": {"path":"/home/rinor/explore/nest-mcp/src/decorators/constants.ts","statementMap":{"0":{"start":{"line":1,"column":13},"end":{"line":1,"column":48}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{}}
5
+ ,"/home/rinor/explore/nest-mcp/src/decorators/index.ts": {"path":"/home/rinor/explore/nest-mcp/src/decorators/index.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":33}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":28}}},"fnMap":{},"branchMap":{},"s":{"0":1,"1":1},"f":{},"b":{}}
6
+ ,"/home/rinor/explore/nest-mcp/src/decorators/tool.decorator.ts": {"path":"/home/rinor/explore/nest-mcp/src/decorators/tool.decorator.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":45}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":52}},"2":{"start":{"line":12,"column":20},"end":{"line":22,"column":1}},"3":{"start":{"line":17,"column":2},"end":{"line":21,"column":5}},"4":{"start":{"line":12,"column":13},"end":{"line":12,"column":20}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":12,"column":20},"end":{"line":12,"column":null}},"loc":{"start":{"line":16,"column":21},"end":{"line":22,"column":1}}}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":2},"end":{"line":15,"column":66}},"type":"default-arg","locations":[{"start":{"line":15,"column":64},"end":{"line":15,"column":66}}]}},"s":{"0":1,"1":1,"2":1,"3":2,"4":1},"f":{"0":2},"b":{"0":[0]}}
7
7
  ,"/home/rinor/explore/nest-mcp/src/interfaces/index.ts": {"path":"/home/rinor/explore/nest-mcp/src/interfaces/index.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":40}}},"fnMap":{},"branchMap":{},"s":{"0":1},"f":{},"b":{}}
8
- ,"/home/rinor/explore/nest-mcp/src/services/mcp-tools.discovery.ts": {"path":"/home/rinor/explore/nest-mcp/src/services/mcp-tools.discovery.ts","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":65}},"1":{"start":{"line":2,"column":0},"end":{"line":2,"column":44}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":54}},"3":{"start":{"line":7,"column":7},"end":{"line":41,"column":null}},"4":{"start":{"line":9,"column":21},"end":{"line":9,"column":32}},"5":{"start":{"line":10,"column":21},"end":{"line":10,"column":38}},"6":{"start":{"line":14,"column":22},"end":{"line":14,"column":51}},"7":{"start":{"line":15,"column":24},"end":{"line":15,"column":55}},"8":{"start":{"line":16,"column":25},"end":{"line":18,"column":41}},"9":{"start":{"line":17,"column":27},"end":{"line":17,"column":43}},"10":{"start":{"line":18,"column":24},"end":{"line":18,"column":40}},"11":{"start":{"line":20,"column":4},"end":{"line":39,"column":7}},"12":{"start":{"line":21,"column":6},"end":{"line":23,"column":7}},"13":{"start":{"line":22,"column":8},"end":{"line":22,"column":15}},"14":{"start":{"line":24,"column":6},"end":{"line":38,"column":9}},"15":{"start":{"line":25,"column":26},"end":{"line":25,"column":42}},"16":{"start":{"line":26,"column":31},"end":{"line":26,"column":68}},"17":{"start":{"line":27,"column":8},"end":{"line":29,"column":9}},"18":{"start":{"line":28,"column":10},"end":{"line":28,"column":17}},"19":{"start":{"line":31,"column":25},"end":{"line":31,"column":78}},"20":{"start":{"line":32,"column":8},"end":{"line":37,"column":10}},"21":{"start":{"line":7,"column":13},"end":{"line":7,"column":30}},"22":{"start":{"line":7,"column":13},"end":{"line":41,"column":null}}},"fnMap":{"0":{"name":"(anonymous_2)","decl":{"start":{"line":8,"column":2},"end":{"line":8,"column":null}},"loc":{"start":{"line":10,"column":53},"end":{"line":11,"column":6}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":13,"column":2},"end":{"line":13,"column":15}},"loc":{"start":{"line":13,"column":36},"end":{"line":40,"column":3}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":17,"column":14},"end":{"line":17,"column":15}},"loc":{"start":{"line":17,"column":27},"end":{"line":17,"column":43}}},"3":{"name":"(anonymous_5)","decl":{"start":{"line":18,"column":11},"end":{"line":18,"column":12}},"loc":{"start":{"line":18,"column":24},"end":{"line":18,"column":40}}},"4":{"name":"(anonymous_6)","decl":{"start":{"line":20,"column":25},"end":{"line":20,"column":26}},"loc":{"start":{"line":20,"column":38},"end":{"line":39,"column":5}}},"5":{"name":"(anonymous_7)","decl":{"start":{"line":24,"column":63},"end":{"line":24,"column":64}},"loc":{"start":{"line":24,"column":74},"end":{"line":38,"column":7}}}},"branchMap":{"0":{"loc":{"start":{"line":21,"column":6},"end":{"line":23,"column":7}},"type":"if","locations":[{"start":{"line":21,"column":6},"end":{"line":23,"column":7}}]},"1":{"loc":{"start":{"line":21,"column":10},"end":{"line":21,"column":51}},"type":"binary-expr","locations":[{"start":{"line":21,"column":10},"end":{"line":21,"column":19}},{"start":{"line":21,"column":23},"end":{"line":21,"column":51}}]},"2":{"loc":{"start":{"line":27,"column":8},"end":{"line":29,"column":9}},"type":"if","locations":[{"start":{"line":27,"column":8},"end":{"line":29,"column":9}}]}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":2,"7":2,"8":2,"9":57,"10":51,"11":2,"12":51,"13":0,"14":51,"15":393,"16":393,"17":393,"18":391,"19":2,"20":2,"21":2,"22":2},"f":{"0":2,"1":2,"2":57,"3":51,"4":51,"5":393},"b":{"0":[0],"1":[51,51],"2":[391]}}
8
+ ,"/home/rinor/explore/nest-mcp/src/services/mcp-tools.discovery.ts": {"path":"/home/rinor/explore/nest-mcp/src/services/mcp-tools.discovery.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":68}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":65}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":68}},"3":{"start":{"line":7,"column":7},"end":{"line":109,"column":null}},"4":{"start":{"line":15,"column":21},"end":{"line":15,"column":32}},"5":{"start":{"line":16,"column":21},"end":{"line":16,"column":38}},"6":{"start":{"line":8,"column":10},"end":{"line":12,"column":10}},"7":{"start":{"line":20,"column":4},"end":{"line":20,"column":24}},"8":{"start":{"line":24,"column":22},"end":{"line":24,"column":51}},"9":{"start":{"line":25,"column":24},"end":{"line":25,"column":55}},"10":{"start":{"line":26,"column":25},"end":{"line":28,"column":41}},"11":{"start":{"line":27,"column":27},"end":{"line":27,"column":43}},"12":{"start":{"line":28,"column":24},"end":{"line":28,"column":40}},"13":{"start":{"line":30,"column":4},"end":{"line":50,"column":7}},"14":{"start":{"line":31,"column":6},"end":{"line":33,"column":7}},"15":{"start":{"line":32,"column":8},"end":{"line":32,"column":15}},"16":{"start":{"line":34,"column":6},"end":{"line":49,"column":9}},"17":{"start":{"line":35,"column":26},"end":{"line":35,"column":46}},"18":{"start":{"line":36,"column":31},"end":{"line":36,"column":68}},"19":{"start":{"line":38,"column":8},"end":{"line":40,"column":9}},"20":{"start":{"line":39,"column":10},"end":{"line":39,"column":17}},"21":{"start":{"line":42,"column":39},"end":{"line":42,"column":92}},"22":{"start":{"line":44,"column":8},"end":{"line":48,"column":11}},"23":{"start":{"line":54,"column":4},"end":{"line":93,"column":7}},"24":{"start":{"line":55,"column":22},"end":{"line":77,"column":7}},"25":{"start":{"line":56,"column":24},"end":{"line":56,"column":60}},"26":{"start":{"line":58,"column":8},"end":{"line":76,"column":9}},"27":{"start":{"line":60,"column":32},"end":{"line":60,"column":78}},"28":{"start":{"line":61,"column":10},"end":{"line":65,"column":11}},"29":{"start":{"line":63,"column":35},"end":{"line":63,"column":79}},"30":{"start":{"line":64,"column":12},"end":{"line":64,"column":72}},"31":{"start":{"line":68,"column":10},"end":{"line":72,"column":12}},"32":{"start":{"line":75,"column":10},"end":{"line":75,"column":86}},"33":{"start":{"line":79,"column":6},"end":{"line":92,"column":7}},"34":{"start":{"line":80,"column":8},"end":{"line":83,"column":10}},"35":{"start":{"line":86,"column":8},"end":{"line":91,"column":10}},"36":{"start":{"line":97,"column":4},"end":{"line":107,"column":6}},"37":{"start":{"line":99,"column":8},"end":{"line":99,"column":58}},"38":{"start":{"line":102,"column":10},"end":{"line":102,"column":65}},"39":{"start":{"line":105,"column":8},"end":{"line":105,"column":35}},"40":{"start":{"line":7,"column":13},"end":{"line":7,"column":30}},"41":{"start":{"line":7,"column":13},"end":{"line":109,"column":null}}},"fnMap":{"0":{"name":"(anonymous_2)","decl":{"start":{"line":14,"column":2},"end":{"line":14,"column":null}},"loc":{"start":{"line":16,"column":53},"end":{"line":17,"column":6}}},"1":{"name":"(anonymous_3)","decl":{"start":{"line":19,"column":2},"end":{"line":19,"column":24}},"loc":{"start":{"line":19,"column":24},"end":{"line":21,"column":3}}},"2":{"name":"(anonymous_4)","decl":{"start":{"line":23,"column":2},"end":{"line":23,"column":14}},"loc":{"start":{"line":23,"column":14},"end":{"line":51,"column":3}}},"3":{"name":"(anonymous_5)","decl":{"start":{"line":27,"column":14},"end":{"line":27,"column":15}},"loc":{"start":{"line":27,"column":27},"end":{"line":27,"column":43}}},"4":{"name":"(anonymous_6)","decl":{"start":{"line":28,"column":11},"end":{"line":28,"column":12}},"loc":{"start":{"line":28,"column":24},"end":{"line":28,"column":40}}},"5":{"name":"(anonymous_7)","decl":{"start":{"line":30,"column":25},"end":{"line":30,"column":26}},"loc":{"start":{"line":30,"column":38},"end":{"line":50,"column":5}}},"6":{"name":"(anonymous_8)","decl":{"start":{"line":34,"column":63},"end":{"line":34,"column":64}},"loc":{"start":{"line":34,"column":78},"end":{"line":49,"column":7}}},"7":{"name":"(anonymous_9)","decl":{"start":{"line":53,"column":2},"end":{"line":53,"column":15}},"loc":{"start":{"line":53,"column":36},"end":{"line":94,"column":3}}},"8":{"name":"(anonymous_10)","decl":{"start":{"line":54,"column":23},"end":{"line":54,"column":24}},"loc":{"start":{"line":54,"column":32},"end":{"line":93,"column":5}}},"9":{"name":"(anonymous_11)","decl":{"start":{"line":55,"column":22},"end":{"line":55,"column":27}},"loc":{"start":{"line":55,"column":57},"end":{"line":77,"column":7}}},"10":{"name":"(anonymous_12)","decl":{"start":{"line":96,"column":10},"end":{"line":96,"column":23}},"loc":{"start":{"line":96,"column":56},"end":{"line":108,"column":3}}},"11":{"name":"(anonymous_13)","decl":{"start":{"line":98,"column":24},"end":{"line":98,"column":29}},"loc":{"start":{"line":98,"column":52},"end":{"line":100,"column":7}}},"12":{"name":"(anonymous_14)","decl":{"start":{"line":101,"column":17},"end":{"line":101,"column":22}},"loc":{"start":{"line":101,"column":55},"end":{"line":103,"column":7}}},"13":{"name":"(anonymous_15)","decl":{"start":{"line":104,"column":20},"end":{"line":104,"column":25}},"loc":{"start":{"line":104,"column":44},"end":{"line":106,"column":7}}}},"branchMap":{"0":{"loc":{"start":{"line":31,"column":6},"end":{"line":33,"column":7}},"type":"if","locations":[{"start":{"line":31,"column":6},"end":{"line":33,"column":7}}]},"1":{"loc":{"start":{"line":31,"column":10},"end":{"line":31,"column":51}},"type":"binary-expr","locations":[{"start":{"line":31,"column":10},"end":{"line":31,"column":19}},{"start":{"line":31,"column":23},"end":{"line":31,"column":51}}]},"2":{"loc":{"start":{"line":38,"column":8},"end":{"line":40,"column":9}},"type":"if","locations":[{"start":{"line":38,"column":8},"end":{"line":40,"column":9}}]},"3":{"loc":{"start":{"line":58,"column":8},"end":{"line":76,"column":9}},"type":"if","locations":[{"start":{"line":58,"column":8},"end":{"line":76,"column":9}},{"start":{"line":73,"column":15},"end":{"line":76,"column":9}}]},"4":{"loc":{"start":{"line":61,"column":10},"end":{"line":65,"column":11}},"type":"if","locations":[{"start":{"line":61,"column":10},"end":{"line":65,"column":11}}]},"5":{"loc":{"start":{"line":79,"column":6},"end":{"line":92,"column":7}},"type":"if","locations":[{"start":{"line":79,"column":6},"end":{"line":92,"column":7}},{"start":{"line":84,"column":13},"end":{"line":92,"column":7}}]}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":1,"6":1,"7":1,"8":1,"9":1,"10":1,"11":29,"12":27,"13":1,"14":27,"15":0,"16":27,"17":212,"18":212,"19":212,"20":210,"21":2,"22":2,"23":2,"24":4,"25":2,"26":2,"27":1,"28":1,"29":0,"30":0,"31":1,"32":1,"33":4,"34":2,"35":2,"36":2,"37":6,"38":0,"39":0,"40":1,"41":1},"f":{"0":1,"1":1,"2":1,"3":29,"4":27,"5":27,"6":212,"7":2,"8":4,"9":2,"10":2,"11":6,"12":0,"13":0},"b":{"0":[0],"1":[27,27],"2":[210],"3":[1,1],"4":[0],"5":[2,2]}}
9
9
  }