@tng-sh/mcp-server 1.0.4 → 1.0.6
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 +4 -54
- package/dist/index.js +75 -78
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts +3 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +63 -0
- package/dist/prompts.js.map +1 -0
- package/dist/tools/audit.d.ts +18 -2
- package/dist/tools/audit.d.ts.map +1 -1
- package/dist/tools/audit.js +253 -135
- package/dist/tools/audit.js.map +1 -1
- package/dist/tools/method_resolver.d.ts +20 -0
- package/dist/tools/method_resolver.d.ts.map +1 -0
- package/dist/tools/method_resolver.js +138 -0
- package/dist/tools/method_resolver.js.map +1 -0
- package/package.json +1 -3
package/README.md
CHANGED
|
@@ -10,7 +10,6 @@ The [Model Context Protocol](https://modelcontextprotocol.io) allows AI assistan
|
|
|
10
10
|
|
|
11
11
|
- *"Audit the `process_payment` method in `app/services/payment_processor.rb`"*
|
|
12
12
|
- *"Generate comprehensive tests for the UserController#create method"*
|
|
13
|
-
- *"Run a regression check on `Order#checkout`"*
|
|
14
13
|
- *"What can TNG do here?"*
|
|
15
14
|
|
|
16
15
|
And the AI will use TNG automatically to provide detailed, actionable results.
|
|
@@ -19,9 +18,7 @@ And the AI will use TNG automatically to provide detailed, actionable results.
|
|
|
19
18
|
|
|
20
19
|
- **Method Auditing** - Deep analysis for bugs, security issues, and performance problems
|
|
21
20
|
- **Test Generation** - Automatic test creation for Ruby, Python, and JavaScript
|
|
22
|
-
- **X-Ray Visualization** - Generate Mermaid flowcharts to visualize method logic
|
|
23
21
|
- **Symbolic Trace** - Execution path analysis for debugging and understanding code flow
|
|
24
|
-
- **Regression Check** - Blast radius check for changes to a method vs Git HEAD
|
|
25
22
|
- **Clone Detection** - Find duplicate code with token-based, structural, and fuzzy matching
|
|
26
23
|
- **Dead Code Detection** - Identify unused imports, variables, functions, and unreachable code
|
|
27
24
|
- **Capabilities Listing** - List available TNG MCP tools and when to use them
|
|
@@ -228,27 +225,6 @@ AI: I'll generate comprehensive tests for that method.
|
|
|
228
225
|
...
|
|
229
226
|
```
|
|
230
227
|
|
|
231
|
-
### Visualize with X-Ray
|
|
232
|
-
|
|
233
|
-
```
|
|
234
|
-
You: Show me a flowchart of the authenticate_user method
|
|
235
|
-
|
|
236
|
-
AI: I'll generate an X-Ray visualization for that method.
|
|
237
|
-
[*calls xray_method tool*]
|
|
238
|
-
|
|
239
|
-
# X-Ray Visualization for UserController#authenticate_user
|
|
240
|
-
|
|
241
|
-
## Mermaid Flowchart
|
|
242
|
-
```mermaid
|
|
243
|
-
graph TD
|
|
244
|
-
A[Start] --> B{User exists?}
|
|
245
|
-
B -->|Yes| C[Check password]
|
|
246
|
-
B -->|No| D[Return error]
|
|
247
|
-
C -->|Valid| E[Create session]
|
|
248
|
-
C -->|Invalid| D
|
|
249
|
-
```
|
|
250
|
-
```
|
|
251
|
-
|
|
252
228
|
### Trace Execution
|
|
253
229
|
|
|
254
230
|
```
|
|
@@ -340,19 +316,7 @@ Generate comprehensive tests for a method.
|
|
|
340
316
|
- Test file path
|
|
341
317
|
- Command to run tests
|
|
342
318
|
|
|
343
|
-
### 3. `
|
|
344
|
-
|
|
345
|
-
Generate X-Ray visualization (Mermaid flowchart) for a method.
|
|
346
|
-
|
|
347
|
-
**Parameters:**
|
|
348
|
-
- `file_path` (required) - Path to the source file
|
|
349
|
-
- `method_name` (required) - Name of the method to visualize
|
|
350
|
-
|
|
351
|
-
**Returns:**
|
|
352
|
-
- Mermaid flowchart diagram
|
|
353
|
-
- Visual representation of method logic flow
|
|
354
|
-
|
|
355
|
-
### 4. `trace_method`
|
|
319
|
+
### 3. `trace_method`
|
|
356
320
|
|
|
357
321
|
Generate symbolic trace execution path for a method.
|
|
358
322
|
|
|
@@ -365,21 +329,7 @@ Generate symbolic trace execution path for a method.
|
|
|
365
329
|
- Variable states at each step
|
|
366
330
|
- Control flow analysis
|
|
367
331
|
|
|
368
|
-
###
|
|
369
|
-
|
|
370
|
-
Analyze the impact (blast radius) of changes to a method vs its committed version (`HEAD`).
|
|
371
|
-
|
|
372
|
-
**Parameters:**
|
|
373
|
-
- `file_path` (required) - Path to the source file
|
|
374
|
-
- `method_name` (required) - Name of the method
|
|
375
|
-
- `class_name` (optional) - Class name (Python only)
|
|
376
|
-
|
|
377
|
-
**Returns:**
|
|
378
|
-
- Breaking changes detected
|
|
379
|
-
- Informational changes
|
|
380
|
-
- Impacted call sites (where this method is used)
|
|
381
|
-
|
|
382
|
-
### 6. `detect_clones`
|
|
332
|
+
### 4. `detect_clones`
|
|
383
333
|
|
|
384
334
|
Detect code duplication within a file.
|
|
385
335
|
|
|
@@ -392,7 +342,7 @@ Detect code duplication within a file.
|
|
|
392
342
|
- Locations of duplicated code
|
|
393
343
|
- Refactoring recommendations
|
|
394
344
|
|
|
395
|
-
###
|
|
345
|
+
### 5. `detect_deadcode`
|
|
396
346
|
|
|
397
347
|
Detect dead code in a file or across the whole project.
|
|
398
348
|
|
|
@@ -406,7 +356,7 @@ Detect dead code in a file or across the whole project.
|
|
|
406
356
|
- Unreachable code blocks
|
|
407
357
|
- Cleanup recommendations
|
|
408
358
|
|
|
409
|
-
###
|
|
359
|
+
### 6. `find_call_sites`
|
|
410
360
|
|
|
411
361
|
Find in-repo call sites for a method/function.
|
|
412
362
|
|
package/dist/index.js
CHANGED
|
@@ -2,16 +2,15 @@
|
|
|
2
2
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
4
|
import { z } from 'zod';
|
|
5
|
-
import {
|
|
5
|
+
import { startRemoteAudit, checkAuditStatus } from './tools/audit.js';
|
|
6
6
|
import { generateTest } from './tools/generate.js';
|
|
7
|
-
import { xrayMethod } from './tools/xray.js';
|
|
8
7
|
import { traceMethod } from './tools/trace.js';
|
|
9
8
|
import { detectClones } from './tools/clones.js';
|
|
10
9
|
import { detectDeadCode } from './tools/deadcode.js';
|
|
11
10
|
import { findCallSites } from './tools/call_sites.js';
|
|
12
|
-
import { impactMethod } from './tools/impact.js';
|
|
13
11
|
import { runInit } from './init.js';
|
|
14
12
|
import { preflightTarget, buildMcpResponse } from './tools/utils.js';
|
|
13
|
+
import { registerPrompts } from './prompts.js';
|
|
15
14
|
const server = new McpServer({
|
|
16
15
|
name: 'tng-mcp',
|
|
17
16
|
version: '1.1.0',
|
|
@@ -21,10 +20,10 @@ if (process.argv.includes('init')) {
|
|
|
21
20
|
process.exit(code);
|
|
22
21
|
}
|
|
23
22
|
const auditSchema = {
|
|
24
|
-
file_path: z.string().describe('Relative or absolute path to the source file (
|
|
23
|
+
file_path: z.string().optional().describe('Relative or absolute path to the source file (optional when method name is unique in project)'),
|
|
25
24
|
method_name: z.string().describe('Name of the method/function to audit (e.g., "process_payment", "validateUser", "handleSubmit")'),
|
|
26
25
|
class_name: z.string().optional().describe('Class or module name to disambiguate methods with the same name'),
|
|
27
|
-
test_type: z.string().optional().describe('Component type - REQUIRED for JavaScript/Python:
|
|
26
|
+
test_type: z.string().optional().describe('Component type - REQUIRED for JavaScript/Python/Ruby. You MUST auto-detect this based on the code. For JS/TS choose from: react_component, express_handler, nest_js, orm_model, graphql_resolver, background_job, mailer, utility. For Python choose from: endpoint, service, model, job, mailer, utility. For Ruby choose from: adapter, cli, generator, http_endpoint, job, lib, mailer, model, serializer, service, utility. Ignored for Rails.'),
|
|
28
27
|
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
29
28
|
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
30
29
|
project_root: z.string().optional().describe('Project root for deterministic relative-path resolution.'),
|
|
@@ -32,37 +31,35 @@ const auditSchema = {
|
|
|
32
31
|
retries: z.number().int().min(0).max(3).optional().describe('Retry attempts for transient failures (default 0).'),
|
|
33
32
|
debug: z.boolean().optional().describe('Return additional diagnostics in server logs/metadata.'),
|
|
34
33
|
};
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
method_name: z.string().describe('Name of the method/function to generate tests for'),
|
|
38
|
-
class_name: z.string().optional().describe('Class or module name to disambiguate methods with the same name'),
|
|
39
|
-
test_type: z.string().optional().describe('Component type or test framework hint - REQUIRED for JS/Python: "utility", "react_component", "express_handler", etc.'),
|
|
34
|
+
const checkAuditSchema = {
|
|
35
|
+
job_id: z.number().describe('The numeric job ID returned by start_remote_audit'),
|
|
40
36
|
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
41
37
|
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
42
38
|
project_root: z.string().optional().describe('Project root for deterministic relative-path resolution.'),
|
|
43
|
-
timeout_sec: z.number().int().positive().optional().describe('Execution timeout in seconds (default
|
|
39
|
+
timeout_sec: z.number().int().positive().optional().describe('Execution timeout in seconds (default 30).'),
|
|
44
40
|
retries: z.number().int().min(0).max(3).optional().describe('Retry attempts for transient failures (default 0).'),
|
|
45
41
|
debug: z.boolean().optional().describe('Return additional diagnostics in server logs/metadata.'),
|
|
46
42
|
};
|
|
47
|
-
const
|
|
48
|
-
file_path: z.string().describe('Relative or absolute path to the source file'),
|
|
49
|
-
method_name: z.string().describe('Name of the method/function'),
|
|
43
|
+
const generateSchema = {
|
|
44
|
+
file_path: z.string().describe('Relative or absolute path to the source file to generate tests for'),
|
|
45
|
+
method_name: z.string().describe('Name of the method/function to generate tests for'),
|
|
50
46
|
class_name: z.string().optional().describe('Class or module name to disambiguate methods with the same name'),
|
|
47
|
+
test_type: z.string().optional().describe('Component type - REQUIRED for JavaScript/Python/Ruby. You MUST auto-detect this based on the code. For JS/TS choose from: react_component, express_handler, nest_js, orm_model, graphql_resolver, background_job, mailer, utility. For Python choose from: endpoint, service, model, job, mailer, utility. For Ruby choose from: adapter, cli, generator, http_endpoint, job, lib, mailer, model, serializer, service, utility. Ignored for Rails.'),
|
|
51
48
|
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
52
49
|
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
53
50
|
project_root: z.string().optional().describe('Project root for deterministic relative-path resolution.'),
|
|
54
|
-
timeout_sec: z.number().int().positive().optional().describe('Execution timeout in seconds (default
|
|
51
|
+
timeout_sec: z.number().int().positive().optional().describe('Execution timeout in seconds (default 420).'),
|
|
55
52
|
retries: z.number().int().min(0).max(3).optional().describe('Retry attempts for transient failures (default 0).'),
|
|
56
53
|
debug: z.boolean().optional().describe('Return additional diagnostics in server logs/metadata.'),
|
|
57
54
|
};
|
|
58
|
-
const
|
|
55
|
+
const methodSchema = {
|
|
59
56
|
file_path: z.string().describe('Relative or absolute path to the source file'),
|
|
60
57
|
method_name: z.string().describe('Name of the method/function'),
|
|
61
58
|
class_name: z.string().optional().describe('Class or module name to disambiguate methods with the same name'),
|
|
62
59
|
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
63
60
|
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
64
61
|
project_root: z.string().optional().describe('Project root for deterministic relative-path resolution.'),
|
|
65
|
-
timeout_sec: z.number().int().positive().optional().describe('Execution timeout in seconds (default
|
|
62
|
+
timeout_sec: z.number().int().positive().optional().describe('Execution timeout in seconds (default 120 for trace).'),
|
|
66
63
|
retries: z.number().int().min(0).max(3).optional().describe('Retry attempts for transient failures (default 0).'),
|
|
67
64
|
debug: z.boolean().optional().describe('Return additional diagnostics in server logs/metadata.'),
|
|
68
65
|
};
|
|
@@ -97,28 +94,21 @@ const callSitesSchema = {
|
|
|
97
94
|
retries: z.number().int().min(0).max(3).optional().describe('Retry attempts for transient failures (default 0).'),
|
|
98
95
|
debug: z.boolean().optional().describe('Return additional diagnostics in server logs/metadata.'),
|
|
99
96
|
};
|
|
100
|
-
const
|
|
101
|
-
Use
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
97
|
+
const startAuditDescription = `Start a remote code review/audit of a method and return the job ID.
|
|
98
|
+
Use this to asynchronously trigger an audit without waiting for completion (helpful for large files).
|
|
99
|
+
Use the check_audit_status tool with the returned job_id to poll the results.`;
|
|
100
|
+
const checkAuditDescription = `Check the status or fetch the result of an active remote audit job.
|
|
101
|
+
Use this continuously using the job_id returned by start_remote_audit until the results are ready.`;
|
|
105
102
|
const generateDescription = `Generate tests for a specific method/function.
|
|
106
103
|
Use when the user asks to write tests, create specs, or add coverage.
|
|
107
104
|
Returns complete test code with suggested file path and command to run.
|
|
108
105
|
Supports: Ruby, Python, JavaScript/TypeScript.
|
|
106
|
+
IMPORTANT: For JavaScript/Python/Ruby, the "test_type" argument is MANDATORY. You MUST automatically infer the test_type from the code (e.g., express_handler, react_component, endpoint, utility) and provide it. Do NOT ask the user unless completely ambiguous.
|
|
109
107
|
Example: generate_test { file_path: "src/utils/validator.ts", method_name: "validateUser", test_type: "utility" }`;
|
|
110
|
-
const xrayDescription = `Generate a Mermaid flowchart for a method/function (X-Ray).
|
|
111
|
-
Use when the user asks for a diagram, flowchart, or visual explanation.
|
|
112
|
-
Returns Mermaid code suitable for Markdown renderers.
|
|
113
|
-
Example: xray_method { file_path: "lib/order.rb", method_name: "checkout" }`;
|
|
114
108
|
const traceDescription = `Generate a symbolic execution trace for a method/function.
|
|
115
109
|
Use when the user asks to trace, step through, or debug execution flow.
|
|
116
110
|
Returns step-by-step trace output.
|
|
117
111
|
Example: trace_method { file_path: "src/controllers/cart.ts", method_name: "addItem" }`;
|
|
118
|
-
const impactDescription = `Run a regression check (blast radius analysis) on changes to a method vs Git HEAD.
|
|
119
|
-
Use when the user asks about regressions, impact, breaking changes, or blast radius.
|
|
120
|
-
Returns breaking/informational changes and impacted call sites.
|
|
121
|
-
Example: impact_method { file_path: "app/models/user.rb", method_name: "full_name" }`;
|
|
122
112
|
const clonesDescription = `Detect code duplication (clones) within a file.
|
|
123
113
|
Use when the user asks to find duplicates or copy-paste code.
|
|
124
114
|
Returns clone pairs with similarity and locations.
|
|
@@ -134,8 +124,10 @@ Use when the user asks "who calls this?" or "where is this used?".
|
|
|
134
124
|
Example: find_call_sites { file_path: "src/utils/auth.ts", method_name: "validateUser" }`;
|
|
135
125
|
async function callWithPreflight(toolName, args, handler, options = { requireMethod: false }) {
|
|
136
126
|
const filePath = args?.file_path ? String(args.file_path) : '';
|
|
137
|
-
const
|
|
138
|
-
|
|
127
|
+
const canSkipPathPreflight = !!options.allowMissingFilePath
|
|
128
|
+
&& filePath.trim().length === 0
|
|
129
|
+
&& (toolName === 'start_remote_audit' || !!args?.all);
|
|
130
|
+
if (!canSkipPathPreflight) {
|
|
139
131
|
const preflight = preflightTarget({
|
|
140
132
|
tool: toolName,
|
|
141
133
|
filePath,
|
|
@@ -162,47 +154,49 @@ async function callWithPreflight(toolName, args, handler, options = { requireMet
|
|
|
162
154
|
file_path: preflight.resolvedPath || filePath,
|
|
163
155
|
};
|
|
164
156
|
}
|
|
157
|
+
else {
|
|
158
|
+
args = {
|
|
159
|
+
...args,
|
|
160
|
+
project_root: args?.project_root || process.cwd(),
|
|
161
|
+
};
|
|
162
|
+
if (options.requireMethod && !args?.method_name) {
|
|
163
|
+
const format = args?.response_format || (args?.raw_json ? 'json' : 'text');
|
|
164
|
+
return buildMcpResponse({
|
|
165
|
+
tool: toolName,
|
|
166
|
+
text: 'method_name is required',
|
|
167
|
+
isError: true,
|
|
168
|
+
format,
|
|
169
|
+
code: 'missing_method_name',
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
}
|
|
165
173
|
return handler(args);
|
|
166
174
|
}
|
|
167
175
|
// 1. Audit Method - AI-Powered Code Analysis
|
|
168
|
-
server.registerTool('
|
|
169
|
-
|
|
170
|
-
server.registerTool('review_method', { description: 'Alias of audit_method. Use for "review this method" or "code review".', inputSchema: auditSchema }, async (args) => await callWithPreflight('audit_method', args, auditMethod, { requireMethod: true }));
|
|
171
|
-
server.registerTool('analyze_method', { description: 'Alias of audit_method. Use for "analyze this method".', inputSchema: auditSchema }, async (args) => await callWithPreflight('audit_method', args, auditMethod, { requireMethod: true }));
|
|
176
|
+
server.registerTool('start_remote_audit', { description: startAuditDescription, inputSchema: auditSchema }, async (args) => await callWithPreflight('start_remote_audit', args, startRemoteAudit, { requireMethod: true, allowMissingFilePath: true }));
|
|
177
|
+
server.registerTool('check_audit_status', { description: checkAuditDescription, inputSchema: checkAuditSchema }, async (args) => await checkAuditStatus(args));
|
|
172
178
|
// 2. Generate Test - AI Test Generation
|
|
173
179
|
server.registerTool('generate_test', { description: generateDescription, inputSchema: generateSchema }, async (args) => await callWithPreflight('generate_test', args, generateTest, { requireMethod: true }));
|
|
174
180
|
// Aliases for generate_test
|
|
175
181
|
server.registerTool('generate_tests', { description: 'Alias of generate_test. Use for "generate tests".', inputSchema: generateSchema }, async (args) => await callWithPreflight('generate_test', args, generateTest, { requireMethod: true }));
|
|
176
182
|
server.registerTool('write_tests', { description: 'Alias of generate_test. Use for "write tests".', inputSchema: generateSchema }, async (args) => await callWithPreflight('generate_test', args, generateTest, { requireMethod: true }));
|
|
177
|
-
// 3.
|
|
178
|
-
server.registerTool('xray_method', { description: xrayDescription, inputSchema: methodSchema }, async (args) => await callWithPreflight('xray_method', args, xrayMethod, { requireMethod: true }));
|
|
179
|
-
// Aliases for xray_method
|
|
180
|
-
server.registerTool('xray_diagram', { description: 'Alias of xray_method. Use for "diagram" or "flowchart".', inputSchema: methodSchema }, async (args) => await callWithPreflight('xray_method', args, xrayMethod, { requireMethod: true }));
|
|
181
|
-
server.registerTool('visualize_flow', { description: 'Alias of xray_method. Use for "visualize flow".', inputSchema: methodSchema }, async (args) => await callWithPreflight('xray_method', args, xrayMethod, { requireMethod: true }));
|
|
182
|
-
// 4. Trace Method - Symbolic Execution Analysis
|
|
183
|
+
// 3. Trace Method - Symbolic Execution Analysis
|
|
183
184
|
server.registerTool('trace_method', { description: traceDescription, inputSchema: methodSchema }, async (args) => await callWithPreflight('trace_method', args, traceMethod, { requireMethod: true }));
|
|
184
|
-
// 4.5 Impact Method - Blast Radius Analysis
|
|
185
|
-
server.registerTool('impact_method', { description: impactDescription, inputSchema: impactSchema }, async (args) => await callWithPreflight('impact_method', args, impactMethod, { requireMethod: true }));
|
|
186
|
-
// Aliases for impact_method
|
|
187
|
-
server.registerTool('impact_analysis', { description: 'Alias of impact_method. Use for "impact analysis" or "blast radius".', inputSchema: impactSchema }, async (args) => await callWithPreflight('impact_method', args, impactMethod, { requireMethod: true }));
|
|
188
|
-
server.registerTool('impact_audit', { description: 'Alias of impact_method. Use for "regression check".', inputSchema: impactSchema }, async (args) => await callWithPreflight('impact_method', args, impactMethod, { requireMethod: true }));
|
|
189
|
-
server.registerTool('regression_check', { description: 'Alias of impact_method. Use for "regression check".', inputSchema: impactSchema }, async (args) => await callWithPreflight('impact_method', args, impactMethod, { requireMethod: true }));
|
|
190
|
-
server.registerTool('blast_radius', { description: 'Alias of impact_method. Use for "blast radius check".', inputSchema: impactSchema }, async (args) => await callWithPreflight('impact_method', args, impactMethod, { requireMethod: true }));
|
|
191
185
|
// Aliases for trace_method
|
|
192
186
|
server.registerTool('trace_execution', { description: 'Alias of trace_method. Use for "trace execution".', inputSchema: methodSchema }, async (args) => await callWithPreflight('trace_method', args, traceMethod, { requireMethod: true }));
|
|
193
|
-
//
|
|
187
|
+
// 4. Detect Clones - Code Duplication Detection
|
|
194
188
|
server.registerTool('detect_clones', { description: clonesDescription, inputSchema: clonesSchema }, async (args) => await callWithPreflight('detect_clones', args, detectClones, { requireMethod: false }));
|
|
195
189
|
// Aliases for detect_clones
|
|
196
190
|
server.registerTool('find_clones', { description: 'Alias of detect_clones. Use for "find duplicates".', inputSchema: clonesSchema }, async (args) => await callWithPreflight('detect_clones', args, detectClones, { requireMethod: false }));
|
|
197
|
-
//
|
|
191
|
+
// 5. Detect Dead Code - Unused Code Detection
|
|
198
192
|
server.registerTool('detect_deadcode', { description: deadcodeDescription, inputSchema: deadCodeSchema }, async (args) => await callWithPreflight('detect_deadcode', args, detectDeadCode, { requireMethod: false, allowMissingFilePath: true }));
|
|
199
193
|
// Aliases for detect_deadcode
|
|
200
194
|
server.registerTool('find_deadcode', { description: 'Alias of detect_deadcode. Use for "find unused code".', inputSchema: deadCodeSchema }, async (args) => await callWithPreflight('detect_deadcode', args, detectDeadCode, { requireMethod: false, allowMissingFilePath: true }));
|
|
201
|
-
//
|
|
195
|
+
// 6. Find Call Sites - Usage Detection
|
|
202
196
|
server.registerTool('find_call_sites', { description: callSitesDescription, inputSchema: callSitesSchema }, async (args) => await callWithPreflight('find_call_sites', args, findCallSites, { requireMethod: true }));
|
|
203
197
|
// Alias for find_call_sites
|
|
204
198
|
server.registerTool('call_sites', { description: 'Alias of find_call_sites. Use for "find usages" or "where is this called".', inputSchema: callSitesSchema }, async (args) => await callWithPreflight('find_call_sites', args, findCallSites, { requireMethod: true }));
|
|
205
|
-
//
|
|
199
|
+
// 7. Capabilities - List Available Tools
|
|
206
200
|
server.registerTool('list_capabilities', {
|
|
207
201
|
description: 'List available TNG MCP tools and when to use them.',
|
|
208
202
|
inputSchema: {},
|
|
@@ -212,11 +206,9 @@ server.registerTool('list_capabilities', {
|
|
|
212
206
|
type: 'text',
|
|
213
207
|
text: [
|
|
214
208
|
'TNG MCP capabilities:',
|
|
215
|
-
'-
|
|
209
|
+
'- start_remote_audit: asynchronously audit/review/analyze a method for issues',
|
|
216
210
|
'- generate_test: generate tests for a method',
|
|
217
|
-
'- xray_method: Mermaid flow diagram for a method',
|
|
218
211
|
'- trace_method: symbolic execution trace',
|
|
219
|
-
'- impact_method: run a regression check (blast radius) for a method',
|
|
220
212
|
'- detect_clones: find duplicate code in a file',
|
|
221
213
|
'- detect_deadcode: find unused/unreachable code in a file (or whole project with all=true)',
|
|
222
214
|
'- find_call_sites: locate in-repo call sites for a method/function',
|
|
@@ -224,14 +216,14 @@ server.registerTool('list_capabilities', {
|
|
|
224
216
|
'Best practices:',
|
|
225
217
|
'- Prefer file paths relative to the project root.',
|
|
226
218
|
'- If the server runs outside the repo, pass project_root or use absolute file paths.',
|
|
227
|
-
'- For JS/Python,
|
|
219
|
+
'- For JS/Python/Ruby, test_type is MANDATORY when generating tests or auditing. MUST auto-detect from the code.',
|
|
228
220
|
'- All execution tools support timeout_sec, retries, and debug.',
|
|
229
221
|
'- Preflight validates file/method and ignore rules before execution.',
|
|
230
222
|
'',
|
|
231
|
-
'Aliases:
|
|
223
|
+
'Aliases: generate_tests, write_tests, trace_execution, find_clones, find_deadcode.',
|
|
232
224
|
'',
|
|
233
225
|
`Server version: 1.1.0`,
|
|
234
|
-
'Defaults: timeout (audit/generate)=420s,
|
|
226
|
+
'Defaults: timeout (audit/generate)=420s, trace=120s, clones=180s, deadcode/callsites=600s; retries=0.',
|
|
235
227
|
].join('\n'),
|
|
236
228
|
},
|
|
237
229
|
],
|
|
@@ -279,29 +271,15 @@ const INTENT_DEFINITIONS = [
|
|
|
279
271
|
strongPhrases: ['generate tests', 'generate test', 'write tests', 'write test', 'create specs', 'create spec', 'add test coverage'],
|
|
280
272
|
phrases: ['test coverage', 'unit test', 'integration test', 'spec file', 'test suite'],
|
|
281
273
|
tokens: ['test', 'tests', 'spec', 'coverage'],
|
|
282
|
-
negativeTokens: ['diagram', 'trace', '
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
tool: 'impact_method',
|
|
286
|
-
strongPhrases: ['blast radius', 'regression check', 'change impact', 'what breaks'],
|
|
287
|
-
phrases: ['regression', 'breaking change', 'breakage', 'impact analysis', 'risk analysis'],
|
|
288
|
-
tokens: ['impact', 'regression', 'breaks', 'breakage', 'risk'],
|
|
289
|
-
negativeTokens: ['diagram', 'trace'],
|
|
274
|
+
negativeTokens: ['diagram', 'trace', 'dead', 'unused', 'usage'],
|
|
290
275
|
},
|
|
291
276
|
{
|
|
292
|
-
tool: '
|
|
277
|
+
tool: 'start_remote_audit',
|
|
293
278
|
strongPhrases: ['code review', 'review this method', 'audit this method', 'find issues'],
|
|
294
279
|
phrases: ['audit', 'review', 'analyze', 'inspect', 'security issues', 'code smells', 'bugs'],
|
|
295
280
|
tokens: ['audit', 'review', 'analyze', 'inspect', 'security', 'vulnerability', 'bug', 'issue', 'smell'],
|
|
296
281
|
negativeTokens: ['diagram', 'flowchart'],
|
|
297
282
|
},
|
|
298
|
-
{
|
|
299
|
-
tool: 'xray_method',
|
|
300
|
-
strongPhrases: ['xray diagram', 'x-ray diagram', 'flow chart', 'visualize flow'],
|
|
301
|
-
phrases: ['diagram', 'flowchart', 'mermaid', 'visual', 'xray', 'x-ray'],
|
|
302
|
-
tokens: ['diagram', 'flowchart', 'mermaid', 'visualize'],
|
|
303
|
-
negativeTokens: ['unused', 'dead'],
|
|
304
|
-
},
|
|
305
283
|
{
|
|
306
284
|
tool: 'trace_method',
|
|
307
285
|
strongPhrases: ['execution trace', 'trace method', 'step by step', 'step-by-step'],
|
|
@@ -331,12 +309,27 @@ const INTENT_DEFINITIONS = [
|
|
|
331
309
|
},
|
|
332
310
|
];
|
|
333
311
|
function normalizeIntentText(text) {
|
|
334
|
-
|
|
312
|
+
const normalized = text
|
|
335
313
|
.toLowerCase()
|
|
336
314
|
.replace(/[`"'()[\]{}:;,.!?]/g, ' ')
|
|
337
315
|
.replace(/[-_/]/g, ' ')
|
|
338
316
|
.replace(/\s+/g, ' ')
|
|
339
317
|
.trim();
|
|
318
|
+
const typoMap = {
|
|
319
|
+
reviewe: 'review',
|
|
320
|
+
reviee: 'review',
|
|
321
|
+
reviwe: 'review',
|
|
322
|
+
audti: 'audit',
|
|
323
|
+
audut: 'audit',
|
|
324
|
+
anlyze: 'analyze',
|
|
325
|
+
analze: 'analyze',
|
|
326
|
+
trcae: 'trace',
|
|
327
|
+
ununsed: 'unused',
|
|
328
|
+
};
|
|
329
|
+
return normalized
|
|
330
|
+
.split(' ')
|
|
331
|
+
.map((token) => typoMap[token] || token)
|
|
332
|
+
.join(' ');
|
|
340
333
|
}
|
|
341
334
|
function singularizeToken(token) {
|
|
342
335
|
if (token.endsWith('ies') && token.length > 3)
|
|
@@ -417,7 +410,10 @@ server.registerTool('route_tng_request', {
|
|
|
417
410
|
}
|
|
418
411
|
}
|
|
419
412
|
const required = [];
|
|
420
|
-
if (tool === '
|
|
413
|
+
if (tool === 'start_remote_audit') {
|
|
414
|
+
required.push('method_name');
|
|
415
|
+
}
|
|
416
|
+
if (tool === 'generate_test' || tool === 'trace_method' || tool === 'find_call_sites') {
|
|
421
417
|
required.push('file_path', 'method_name');
|
|
422
418
|
}
|
|
423
419
|
if (tool === 'detect_clones') {
|
|
@@ -444,7 +440,7 @@ server.registerTool('route_tng_request', {
|
|
|
444
440
|
file_path,
|
|
445
441
|
method_name,
|
|
446
442
|
all: tool === 'detect_deadcode' && wantsAllDeadCode,
|
|
447
|
-
note: tool === 'generate_test' || tool === '
|
|
443
|
+
note: tool === 'generate_test' || tool === 'start_remote_audit'
|
|
448
444
|
? 'For JS/Python, test_type may be required (e.g., utility, react_component, express_handler).'
|
|
449
445
|
: undefined,
|
|
450
446
|
},
|
|
@@ -468,6 +464,7 @@ server.registerTool('route_tng_request', {
|
|
|
468
464
|
],
|
|
469
465
|
};
|
|
470
466
|
});
|
|
467
|
+
registerPrompts(server);
|
|
471
468
|
// Start the MCP server
|
|
472
469
|
async function main() {
|
|
473
470
|
const transport = new StdioServerTransport();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QA4EhD"}
|
package/dist/prompts.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export function registerPrompts(server) {
|
|
2
|
+
const promptServer = server;
|
|
3
|
+
promptServer.registerPrompt('audit', {
|
|
4
|
+
title: 'Audit Method',
|
|
5
|
+
description: 'Deep audit a method for bugs, security issues, and code quality.',
|
|
6
|
+
}, async (args = {}) => ({
|
|
7
|
+
messages: [{
|
|
8
|
+
role: 'user',
|
|
9
|
+
content: {
|
|
10
|
+
type: 'text',
|
|
11
|
+
text: args.method_name
|
|
12
|
+
? `You MUST call the start_remote_audit tool first for method "${args.method_name}"${args.file_path ? ` in file "${args.file_path}"` : ''}${args.class_name ? ` (class: ${args.class_name})` : ''}.
|
|
13
|
+
Do NOT perform a manual audit from chat context.
|
|
14
|
+
If multiple matches exist, ask the disambiguation question and wait for user choice.
|
|
15
|
+
After tool output arrives, follow the strict markdown contract from the prepared prompt.
|
|
16
|
+
Your final answer MUST include these sections in order:
|
|
17
|
+
## Semantic Summary
|
|
18
|
+
## Invariant Checks
|
|
19
|
+
## Findings
|
|
20
|
+
## Risk Lanes
|
|
21
|
+
## Residual Risks & Tests
|
|
22
|
+
Do not return shallow generic advice; preserve evidence anchors ([line:*], [event:*], [caller:*], optional [inferred]) for every finding.
|
|
23
|
+
At the end, ask the user: "Do you want me to implement these fixes now?"`
|
|
24
|
+
: `Do NOT perform a manual audit.
|
|
25
|
+
Ask for method_name first, then call start_remote_audit.
|
|
26
|
+
If multiple matches exist, ask the disambiguation question and wait for user choice.
|
|
27
|
+
After tool output, enforce strict sections and anchored evidence in the final response.
|
|
28
|
+
At the end, ask the user: "Do you want me to implement these fixes now?"`
|
|
29
|
+
}
|
|
30
|
+
}],
|
|
31
|
+
}));
|
|
32
|
+
promptServer.registerPrompt('trace', {
|
|
33
|
+
title: 'Trace Method',
|
|
34
|
+
description: 'Trace execution flow of a method.',
|
|
35
|
+
}, async (args = {}) => ({
|
|
36
|
+
messages: [{
|
|
37
|
+
role: 'user',
|
|
38
|
+
content: {
|
|
39
|
+
type: 'text',
|
|
40
|
+
text: args.method_name && args.file_path
|
|
41
|
+
? `Use the trace_method tool to trace "${args.method_name}" in "${args.file_path}".`
|
|
42
|
+
: 'Ask for file_path and method_name, then use trace_method.'
|
|
43
|
+
}
|
|
44
|
+
}],
|
|
45
|
+
}));
|
|
46
|
+
promptServer.registerPrompt('deadcode', {
|
|
47
|
+
title: 'Find Dead Code',
|
|
48
|
+
description: 'Detect unused code in a file or across the project.',
|
|
49
|
+
}, async (args = {}) => ({
|
|
50
|
+
messages: [{
|
|
51
|
+
role: 'user',
|
|
52
|
+
content: {
|
|
53
|
+
type: 'text',
|
|
54
|
+
text: args.all
|
|
55
|
+
? 'Use the detect_deadcode tool with all=true to scan the full project.'
|
|
56
|
+
: args.file_path
|
|
57
|
+
? `Use the detect_deadcode tool to find unused code in "${args.file_path}".`
|
|
58
|
+
: 'Ask whether to run dead code on a specific file_path or the whole project (all=true), then call detect_deadcode.'
|
|
59
|
+
}
|
|
60
|
+
}],
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC7C,MAAM,YAAY,GAAG,MAAa,CAAC;IAEnC,YAAY,CAAC,cAAc,CACvB,OAAO,EACP;QACI,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,kEAAkE;KAClF,EACD,KAAK,EAAE,OAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,WAAW;wBAClB,CAAC,CAAC,+DAA+D,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;yEAWhJ;wBACjD,CAAC,CAAC;;;;yEAI+C;iBACxD;aACJ,CAAC;KACL,CAAC,CACL,CAAC;IAEF,YAAY,CAAC,cAAc,CACvB,OAAO,EACP;QACI,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,mCAAmC;KACnD,EACD,KAAK,EAAE,OAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS;wBACpC,CAAC,CAAC,uCAAuC,IAAI,CAAC,WAAW,SAAS,IAAI,CAAC,SAAS,IAAI;wBACpF,CAAC,CAAC,2DAA2D;iBACpE;aACJ,CAAC;KACL,CAAC,CACL,CAAC;IAEF,YAAY,CAAC,cAAc,CACvB,UAAU,EACV;QACI,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,qDAAqD;KACrE,EACD,KAAK,EAAE,OAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,GAAG;wBACV,CAAC,CAAC,sEAAsE;wBACxE,CAAC,CAAC,IAAI,CAAC,SAAS;4BACZ,CAAC,CAAC,wDAAwD,IAAI,CAAC,SAAS,IAAI;4BAC5E,CAAC,CAAC,kHAAkH;iBAC/H;aACJ,CAAC;KACL,CAAC,CACL,CAAC;AACN,CAAC"}
|