@tng-sh/mcp-server 1.0.1 → 1.0.3
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 +37 -7
- package/dist/index.js +118 -18
- package/dist/index.js.map +1 -1
- package/dist/tools/audit.d.ts +1 -0
- package/dist/tools/audit.d.ts.map +1 -1
- package/dist/tools/audit.js +10 -5
- package/dist/tools/audit.js.map +1 -1
- package/dist/tools/call_sites.d.ts +17 -0
- package/dist/tools/call_sites.d.ts.map +1 -0
- package/dist/tools/call_sites.js +115 -0
- package/dist/tools/call_sites.js.map +1 -0
- package/dist/tools/clones.d.ts.map +1 -1
- package/dist/tools/clones.js +7 -5
- package/dist/tools/clones.js.map +1 -1
- package/dist/tools/deadcode.d.ts.map +1 -1
- package/dist/tools/deadcode.js +15 -5
- package/dist/tools/deadcode.js.map +1 -1
- package/dist/tools/generate.d.ts +1 -0
- package/dist/tools/generate.d.ts.map +1 -1
- package/dist/tools/generate.js +10 -5
- package/dist/tools/generate.js.map +1 -1
- package/dist/tools/impact.d.ts.map +1 -1
- package/dist/tools/impact.js +8 -7
- package/dist/tools/impact.js.map +1 -1
- package/dist/tools/trace.d.ts +1 -0
- package/dist/tools/trace.d.ts.map +1 -1
- package/dist/tools/trace.js +11 -6
- package/dist/tools/trace.js.map +1 -1
- package/dist/tools/utils.d.ts +2 -0
- package/dist/tools/utils.d.ts.map +1 -1
- package/dist/tools/utils.js +16 -1
- package/dist/tools/utils.js.map +1 -1
- package/dist/tools/xray.d.ts.map +1 -1
- package/dist/tools/xray.js +6 -4
- package/dist/tools/xray.js.map +1 -1
- package/package.json +8 -2
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ 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
|
-
- *"
|
|
13
|
+
- *"Run a regression check on `Order#checkout`"*
|
|
14
14
|
- *"What can TNG do here?"*
|
|
15
15
|
|
|
16
16
|
And the AI will use TNG automatically to provide detailed, actionable results.
|
|
@@ -21,7 +21,7 @@ And the AI will use TNG automatically to provide detailed, actionable results.
|
|
|
21
21
|
- **Test Generation** - Automatic test creation for Ruby, Python, and JavaScript
|
|
22
22
|
- **X-Ray Visualization** - Generate Mermaid flowcharts to visualize method logic
|
|
23
23
|
- **Symbolic Trace** - Execution path analysis for debugging and understanding code flow
|
|
24
|
-
- **
|
|
24
|
+
- **Regression Check** - Blast radius check for changes to a method vs Git HEAD
|
|
25
25
|
- **Clone Detection** - Find duplicate code with token-based, structural, and fuzzy matching
|
|
26
26
|
- **Dead Code Detection** - Identify unused imports, variables, functions, and unreachable code
|
|
27
27
|
- **Capabilities Listing** - List available TNG MCP tools and when to use them
|
|
@@ -310,7 +310,7 @@ AI: I'll analyze that file for dead code.
|
|
|
310
310
|
|
|
311
311
|
## Available Tools
|
|
312
312
|
|
|
313
|
-
The MCP server exposes
|
|
313
|
+
The MCP server exposes seven tools:
|
|
314
314
|
|
|
315
315
|
### 1. `audit_method`
|
|
316
316
|
|
|
@@ -365,7 +365,21 @@ Generate symbolic trace execution path for a method.
|
|
|
365
365
|
- Variable states at each step
|
|
366
366
|
- Control flow analysis
|
|
367
367
|
|
|
368
|
-
### 5. `
|
|
368
|
+
### 5. `impact_method` (Regression Check)
|
|
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`
|
|
369
383
|
|
|
370
384
|
Detect code duplication within a file.
|
|
371
385
|
|
|
@@ -378,18 +392,34 @@ Detect code duplication within a file.
|
|
|
378
392
|
- Locations of duplicated code
|
|
379
393
|
- Refactoring recommendations
|
|
380
394
|
|
|
381
|
-
###
|
|
395
|
+
### 7. `detect_deadcode`
|
|
382
396
|
|
|
383
|
-
Detect dead code in a file.
|
|
397
|
+
Detect dead code in a file or across the whole project.
|
|
384
398
|
|
|
385
399
|
**Parameters:**
|
|
386
|
-
- `file_path` (
|
|
400
|
+
- `file_path` (optional) - Path to the source file (omit when using `all=true`)
|
|
401
|
+
- `all` (optional) - Set to true for a project-wide scan (uses CLI flag `--all`)
|
|
402
|
+
- `project_root` (required when `all=true`) - Project root to run the scan from
|
|
387
403
|
|
|
388
404
|
**Returns:**
|
|
389
405
|
- Unused imports, variables, and functions
|
|
390
406
|
- Unreachable code blocks
|
|
391
407
|
- Cleanup recommendations
|
|
392
408
|
|
|
409
|
+
### 8. `find_call_sites`
|
|
410
|
+
|
|
411
|
+
Find in-repo call sites for a method/function.
|
|
412
|
+
|
|
413
|
+
**Parameters:**
|
|
414
|
+
- `file_path` (required) - Path to the source file containing the method
|
|
415
|
+
- `method_name` (required) - Method/function name
|
|
416
|
+
- `class_name` (optional) - Class/module name to disambiguate methods with the same name
|
|
417
|
+
- `project_root` (optional) - Project root to resolve relative paths
|
|
418
|
+
|
|
419
|
+
**Returns:**
|
|
420
|
+
- Files and line numbers where the method is called
|
|
421
|
+
- Snippet/context lines (when available)
|
|
422
|
+
|
|
393
423
|
## Development
|
|
394
424
|
|
|
395
425
|
### Building
|
package/dist/index.js
CHANGED
|
@@ -8,8 +8,11 @@ import { xrayMethod } from './tools/xray.js';
|
|
|
8
8
|
import { traceMethod } from './tools/trace.js';
|
|
9
9
|
import { detectClones } from './tools/clones.js';
|
|
10
10
|
import { detectDeadCode } from './tools/deadcode.js';
|
|
11
|
+
import { findCallSites } from './tools/call_sites.js';
|
|
11
12
|
import { impactMethod } from './tools/impact.js';
|
|
12
13
|
import { runInit } from './init.js';
|
|
14
|
+
import { existsSync, readFileSync } from 'fs';
|
|
15
|
+
import { resolveFilePath, findProjectRoot } from './tools/utils.js';
|
|
13
16
|
const server = new McpServer({
|
|
14
17
|
name: 'tng-mcp',
|
|
15
18
|
version: '1.0.0',
|
|
@@ -21,6 +24,7 @@ if (process.argv.includes('init')) {
|
|
|
21
24
|
const auditSchema = {
|
|
22
25
|
file_path: z.string().describe('Relative or absolute path to the source file (e.g., "app/services/payment_processor.rb", "src/utils/validator.ts")'),
|
|
23
26
|
method_name: z.string().describe('Name of the method/function to audit (e.g., "process_payment", "validateUser", "handleSubmit")'),
|
|
27
|
+
class_name: z.string().optional().describe('Class or module name to disambiguate methods with the same name'),
|
|
24
28
|
test_type: z.string().optional().describe('Component type - REQUIRED for JavaScript/Python: "utility", "react_component", "express_handler", "django_view", etc. Ignored for Ruby/Rails.'),
|
|
25
29
|
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
26
30
|
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
@@ -28,6 +32,7 @@ const auditSchema = {
|
|
|
28
32
|
const generateSchema = {
|
|
29
33
|
file_path: z.string().describe('Relative or absolute path to the source file to generate tests for'),
|
|
30
34
|
method_name: z.string().describe('Name of the method/function to generate tests for'),
|
|
35
|
+
class_name: z.string().optional().describe('Class or module name to disambiguate methods with the same name'),
|
|
31
36
|
test_type: z.string().optional().describe('Component type or test framework hint - REQUIRED for JS/Python: "utility", "react_component", "express_handler", etc.'),
|
|
32
37
|
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
33
38
|
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
@@ -35,13 +40,14 @@ const generateSchema = {
|
|
|
35
40
|
const methodSchema = {
|
|
36
41
|
file_path: z.string().describe('Relative or absolute path to the source file'),
|
|
37
42
|
method_name: z.string().describe('Name of the method/function'),
|
|
43
|
+
class_name: z.string().optional().describe('Class or module name to disambiguate methods with the same name'),
|
|
38
44
|
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
39
45
|
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
40
46
|
};
|
|
41
47
|
const impactSchema = {
|
|
42
48
|
file_path: z.string().describe('Relative or absolute path to the source file'),
|
|
43
49
|
method_name: z.string().describe('Name of the method/function'),
|
|
44
|
-
class_name: z.string().optional().describe('Class name
|
|
50
|
+
class_name: z.string().optional().describe('Class or module name to disambiguate methods with the same name'),
|
|
45
51
|
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
46
52
|
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
47
53
|
};
|
|
@@ -53,34 +59,54 @@ const clonesSchema = {
|
|
|
53
59
|
};
|
|
54
60
|
const deadCodeSchema = {
|
|
55
61
|
file_path: z.string().optional().describe('Relative or absolute path to the source file to analyze for dead code (omit when using all=true)'),
|
|
62
|
+
project_root: z.string().optional().describe('Project root to resolve relative paths and run project-wide scans (recommended when all=true)'),
|
|
56
63
|
all: z.boolean().optional().describe('If true, analyze dead code across the entire project (passes --all).'),
|
|
57
64
|
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
58
65
|
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
59
66
|
};
|
|
67
|
+
const callSitesSchema = {
|
|
68
|
+
file_path: z.string().describe('Relative or absolute path to the source file containing the method'),
|
|
69
|
+
method_name: z.string().describe('Name of the method/function'),
|
|
70
|
+
class_name: z.string().optional().describe('Class or module name to disambiguate methods with the same name'),
|
|
71
|
+
project_root: z.string().optional().describe('Project root to resolve relative paths'),
|
|
72
|
+
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
73
|
+
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
74
|
+
};
|
|
60
75
|
const auditDescription = `Audit a specific method/function for security, bugs, performance, and code quality issues.
|
|
61
76
|
Use when the user asks to audit, review, analyze, inspect, or check code.
|
|
62
77
|
Returns findings with severity, line locations, and suggested fixes.
|
|
63
|
-
Supports: Ruby, Python, JavaScript/TypeScript
|
|
78
|
+
Supports: Ruby, Python, JavaScript/TypeScript.
|
|
79
|
+
Example: audit_method { file_path: "app/services/payment_processor.rb", method_name: "process_payment" }`;
|
|
64
80
|
const generateDescription = `Generate tests for a specific method/function.
|
|
65
81
|
Use when the user asks to write tests, create specs, or add coverage.
|
|
66
82
|
Returns complete test code with suggested file path and command to run.
|
|
67
|
-
Supports: Ruby, Python, JavaScript/TypeScript
|
|
83
|
+
Supports: Ruby, Python, JavaScript/TypeScript.
|
|
84
|
+
Example: generate_test { file_path: "src/utils/validator.ts", method_name: "validateUser", test_type: "utility" }`;
|
|
68
85
|
const xrayDescription = `Generate a Mermaid flowchart for a method/function (X-Ray).
|
|
69
86
|
Use when the user asks for a diagram, flowchart, or visual explanation.
|
|
70
|
-
Returns Mermaid code suitable for Markdown renderers
|
|
87
|
+
Returns Mermaid code suitable for Markdown renderers.
|
|
88
|
+
Example: xray_method { file_path: "lib/order.rb", method_name: "checkout" }`;
|
|
71
89
|
const traceDescription = `Generate a symbolic execution trace for a method/function.
|
|
72
90
|
Use when the user asks to trace, step through, or debug execution flow.
|
|
73
|
-
Returns step-by-step trace output
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
91
|
+
Returns step-by-step trace output.
|
|
92
|
+
Example: trace_method { file_path: "src/controllers/cart.ts", method_name: "addItem" }`;
|
|
93
|
+
const impactDescription = `Run a regression check (blast radius analysis) on changes to a method vs Git HEAD.
|
|
94
|
+
Use when the user asks about regressions, impact, breaking changes, or blast radius.
|
|
95
|
+
Returns breaking/informational changes and impacted call sites.
|
|
96
|
+
Example: impact_method { file_path: "app/models/user.rb", method_name: "full_name" }`;
|
|
77
97
|
const clonesDescription = `Detect code duplication (clones) within a file.
|
|
78
98
|
Use when the user asks to find duplicates or copy-paste code.
|
|
79
|
-
Returns clone pairs with similarity and locations
|
|
99
|
+
Returns clone pairs with similarity and locations.
|
|
100
|
+
Example: detect_clones { file_path: "src/services/order.ts", level: "2" }`;
|
|
80
101
|
const deadcodeDescription = `Detect unused or unreachable code in a file or entire project.
|
|
81
102
|
Use when the user asks to find dead code or unused imports/variables.
|
|
82
|
-
Set all=true to scan the whole project.
|
|
83
|
-
Returns unused elements with locations and cleanup suggestions
|
|
103
|
+
Set all=true to scan the whole project (CLI flag: --all).
|
|
104
|
+
Returns unused elements with locations and cleanup suggestions.
|
|
105
|
+
Example: detect_deadcode { file_path: "src/api/auth.ts" }
|
|
106
|
+
Example (project-wide): detect_deadcode { all: true }`;
|
|
107
|
+
const callSitesDescription = `Find in-repo call sites for a method/function.
|
|
108
|
+
Use when the user asks "who calls this?" or "where is this used?".
|
|
109
|
+
Example: find_call_sites { file_path: "src/utils/auth.ts", method_name: "validateUser" }`;
|
|
84
110
|
// 1. Audit Method - AI-Powered Code Analysis
|
|
85
111
|
server.registerTool('audit_method', { description: auditDescription, inputSchema: auditSchema }, async (args) => await auditMethod(args));
|
|
86
112
|
// Aliases for audit_method
|
|
@@ -102,7 +128,8 @@ server.registerTool('trace_method', { description: traceDescription, inputSchema
|
|
|
102
128
|
server.registerTool('impact_method', { description: impactDescription, inputSchema: impactSchema }, async (args) => await impactMethod(args));
|
|
103
129
|
// Aliases for impact_method
|
|
104
130
|
server.registerTool('impact_analysis', { description: 'Alias of impact_method. Use for "impact analysis" or "blast radius".', inputSchema: impactSchema }, async (args) => await impactMethod(args));
|
|
105
|
-
server.registerTool('impact_audit', { description: 'Alias of impact_method. Use for "
|
|
131
|
+
server.registerTool('impact_audit', { description: 'Alias of impact_method. Use for "regression check".', inputSchema: impactSchema }, async (args) => await impactMethod(args));
|
|
132
|
+
server.registerTool('regression_check', { description: 'Alias of impact_method. Use for "regression check".', inputSchema: impactSchema }, async (args) => await impactMethod(args));
|
|
106
133
|
server.registerTool('blast_radius', { description: 'Alias of impact_method. Use for "blast radius check".', inputSchema: impactSchema }, async (args) => await impactMethod(args));
|
|
107
134
|
// Aliases for trace_method
|
|
108
135
|
server.registerTool('trace_execution', { description: 'Alias of trace_method. Use for "trace execution".', inputSchema: methodSchema }, async (args) => await traceMethod(args));
|
|
@@ -114,7 +141,11 @@ server.registerTool('find_clones', { description: 'Alias of detect_clones. Use f
|
|
|
114
141
|
server.registerTool('detect_deadcode', { description: deadcodeDescription, inputSchema: deadCodeSchema }, async (args) => await detectDeadCode(args));
|
|
115
142
|
// Aliases for detect_deadcode
|
|
116
143
|
server.registerTool('find_deadcode', { description: 'Alias of detect_deadcode. Use for "find unused code".', inputSchema: deadCodeSchema }, async (args) => await detectDeadCode(args));
|
|
117
|
-
// 7.
|
|
144
|
+
// 7. Find Call Sites - Usage Detection
|
|
145
|
+
server.registerTool('find_call_sites', { description: callSitesDescription, inputSchema: callSitesSchema }, async (args) => await findCallSites(args));
|
|
146
|
+
// Alias for find_call_sites
|
|
147
|
+
server.registerTool('call_sites', { description: 'Alias of find_call_sites. Use for "find usages" or "where is this called".', inputSchema: callSitesSchema }, async (args) => await findCallSites(args));
|
|
148
|
+
// 8. Capabilities - List Available Tools
|
|
118
149
|
server.registerTool('list_capabilities', {
|
|
119
150
|
description: 'List available TNG MCP tools and when to use them.',
|
|
120
151
|
inputSchema: {},
|
|
@@ -128,15 +159,83 @@ server.registerTool('list_capabilities', {
|
|
|
128
159
|
'- generate_test: generate tests for a method',
|
|
129
160
|
'- xray_method: Mermaid flow diagram for a method',
|
|
130
161
|
'- trace_method: symbolic execution trace',
|
|
131
|
-
'- impact_method:
|
|
162
|
+
'- impact_method: run a regression check (blast radius) for a method',
|
|
132
163
|
'- detect_clones: find duplicate code in a file',
|
|
133
|
-
'- detect_deadcode: find unused/unreachable code in a file',
|
|
164
|
+
'- detect_deadcode: find unused/unreachable code in a file (or whole project with all=true)',
|
|
165
|
+
'- find_call_sites: locate in-repo call sites for a method/function',
|
|
134
166
|
'',
|
|
135
|
-
'
|
|
167
|
+
'Best practices:',
|
|
168
|
+
'- Prefer file paths relative to the project root.',
|
|
169
|
+
'- If the server runs outside the repo, pass project_root or use absolute file paths.',
|
|
170
|
+
'- For JS/Python, include test_type when generating tests or auditing.',
|
|
171
|
+
'',
|
|
172
|
+
'Aliases: review_method, analyze_method, generate_tests, write_tests, xray_diagram, visualize_flow, trace_execution, impact_analysis, impact_audit, regression_check, blast_radius, find_clones, find_deadcode.',
|
|
136
173
|
].join('\n'),
|
|
137
174
|
},
|
|
138
175
|
],
|
|
139
176
|
}));
|
|
177
|
+
// 7.5 Validate Request - Preflight check for file/method existence
|
|
178
|
+
server.registerTool('validate_request', {
|
|
179
|
+
description: 'Validate file_path and optional method_name before running a TNG tool. Returns a checklist and recommendations.',
|
|
180
|
+
inputSchema: {
|
|
181
|
+
file_path: z.string().describe('Relative or absolute path to the source file'),
|
|
182
|
+
method_name: z.string().optional().describe('Name of the method/function (optional)'),
|
|
183
|
+
project_root: z.string().optional().describe('Project root to resolve relative paths (optional)'),
|
|
184
|
+
},
|
|
185
|
+
}, async (args) => {
|
|
186
|
+
const filePath = String(args?.file_path || '');
|
|
187
|
+
const methodName = args?.method_name ? String(args.method_name) : '';
|
|
188
|
+
const projectRoot = args?.project_root ? String(args.project_root) : undefined;
|
|
189
|
+
const absoluteFilePath = resolveFilePath(filePath, projectRoot);
|
|
190
|
+
const exists = existsSync(absoluteFilePath);
|
|
191
|
+
let methodFound = false;
|
|
192
|
+
let methodCheckSkipped = false;
|
|
193
|
+
let methodCheckError = null;
|
|
194
|
+
if (exists && methodName) {
|
|
195
|
+
try {
|
|
196
|
+
const content = readFileSync(absoluteFilePath, 'utf8');
|
|
197
|
+
methodFound = content.includes(methodName);
|
|
198
|
+
}
|
|
199
|
+
catch (e) {
|
|
200
|
+
methodCheckError = e?.message || 'Unknown error reading file';
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else if (!methodName) {
|
|
204
|
+
methodCheckSkipped = true;
|
|
205
|
+
}
|
|
206
|
+
const projectRootDetected = exists ? (projectRoot || findProjectRoot(absoluteFilePath) || null) : null;
|
|
207
|
+
const response = {
|
|
208
|
+
ok: exists && (methodName ? methodFound : true) && !methodCheckError,
|
|
209
|
+
file: {
|
|
210
|
+
provided: filePath,
|
|
211
|
+
resolved: absoluteFilePath,
|
|
212
|
+
exists,
|
|
213
|
+
},
|
|
214
|
+
method: {
|
|
215
|
+
provided: methodName || null,
|
|
216
|
+
found: methodName ? methodFound : null,
|
|
217
|
+
skipped: methodCheckSkipped ? true : null,
|
|
218
|
+
error: methodCheckError,
|
|
219
|
+
},
|
|
220
|
+
project_root: {
|
|
221
|
+
provided: projectRoot || null,
|
|
222
|
+
detected: projectRootDetected,
|
|
223
|
+
},
|
|
224
|
+
recommendations: [
|
|
225
|
+
!exists ? 'Check file_path or provide project_root.' : null,
|
|
226
|
+
methodName && !methodFound ? 'Confirm method_name or use the exact symbol spelling.' : null,
|
|
227
|
+
methodCheckError ? `Failed to read file for method check: ${methodCheckError}` : null,
|
|
228
|
+
].filter(Boolean),
|
|
229
|
+
};
|
|
230
|
+
return {
|
|
231
|
+
content: [
|
|
232
|
+
{
|
|
233
|
+
type: 'text',
|
|
234
|
+
text: JSON.stringify(response, null, 2),
|
|
235
|
+
},
|
|
236
|
+
],
|
|
237
|
+
};
|
|
238
|
+
});
|
|
140
239
|
// 8. Request Router - Map Natural Language to a Tool
|
|
141
240
|
server.registerTool('route_tng_request', {
|
|
142
241
|
description: 'Route a natural-language request to the best TNG tool and list required arguments.',
|
|
@@ -149,10 +248,11 @@ server.registerTool('route_tng_request', {
|
|
|
149
248
|
const matchAny = (phrases) => phrases.some((p) => request.includes(p));
|
|
150
249
|
const toolOrder = [
|
|
151
250
|
{ tool: 'generate_test', phrases: ['write test', 'write tests', 'generate test', 'generate tests', 'create specs', 'add test coverage', 'test coverage'] },
|
|
152
|
-
{ tool: 'impact_method', phrases: ['impact', 'blast radius', 'breaking change', 'breakage', 'what breaks', 'change impact'] },
|
|
251
|
+
{ tool: 'impact_method', phrases: ['regression', 'regression check', 'impact', 'blast radius', 'breaking change', 'breakage', 'what breaks', 'change impact'] },
|
|
153
252
|
{ tool: 'audit_method', phrases: ['audit', 'review', 'analyze', 'inspect', 'check', 'security', 'vulnerab', 'bug', 'issue', 'code smell'] },
|
|
154
253
|
{ tool: 'xray_method', phrases: ['diagram', 'flowchart', 'visual', 'mermaid', 'xray', 'x-ray', 'flow'] },
|
|
155
254
|
{ tool: 'trace_method', phrases: ['trace', 'step through', 'step-by-step', 'execution', 'debug flow'] },
|
|
255
|
+
{ tool: 'find_call_sites', phrases: ['call sites', 'callsite', 'usages', 'usage', 'where is this used', 'who calls', 'find references'] },
|
|
156
256
|
{ tool: 'detect_clones', phrases: ['clone', 'duplicate', 'copy-paste', 'repeated code', 'similar code'] },
|
|
157
257
|
{ tool: 'detect_deadcode', phrases: ['dead code', 'unused', 'unreachable', 'unused import', 'unused variable'] },
|
|
158
258
|
];
|
|
@@ -179,7 +279,7 @@ server.registerTool('route_tng_request', {
|
|
|
179
279
|
}
|
|
180
280
|
}
|
|
181
281
|
const required = [];
|
|
182
|
-
if (tool === 'audit_method' || tool === 'generate_test' || tool === 'xray_method' || tool === 'trace_method' || tool === 'impact_method') {
|
|
282
|
+
if (tool === 'audit_method' || tool === 'generate_test' || tool === 'xray_method' || tool === 'trace_method' || tool === 'impact_method' || tool === 'find_call_sites') {
|
|
183
283
|
required.push('file_path', 'method_name');
|
|
184
284
|
}
|
|
185
285
|
if (tool === 'detect_clones') {
|
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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"}
|
package/dist/tools/audit.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"AAOA,UAAU,SAAS;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS;;;;;;GAwJhD"}
|
package/dist/tools/audit.js
CHANGED
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import { exec, execFile } from 'child_process';
|
|
2
2
|
import { promisify } from 'util';
|
|
3
|
-
import {
|
|
4
|
-
import { findProjectRoot, getTngCommandConfig, detectLanguage, getShellEnv, shellEscape, buildMcpResponse } from './utils.js';
|
|
3
|
+
import { findProjectRoot, getTngCommandConfig, detectLanguage, getShellEnv, shellEscape, buildMcpResponse, resolveFilePath, safeJsonParse } from './utils.js';
|
|
5
4
|
const execAsync = promisify(exec);
|
|
6
5
|
const execFileAsync = promisify(execFile);
|
|
7
6
|
export async function auditMethod(args) {
|
|
8
|
-
const { file_path, method_name, test_type, project_root } = args;
|
|
7
|
+
const { file_path, method_name, class_name, test_type, project_root } = args;
|
|
9
8
|
const responseFormat = args.response_format || (args.raw_json ? 'json' : 'text');
|
|
10
9
|
try {
|
|
11
10
|
// Resolve to absolute path if relative
|
|
12
|
-
const absoluteFilePath =
|
|
11
|
+
const absoluteFilePath = resolveFilePath(file_path, project_root);
|
|
13
12
|
// Find project root if not provided
|
|
14
13
|
const cwd = project_root || findProjectRoot(absoluteFilePath) || process.cwd();
|
|
15
14
|
// Find TNG command in the project
|
|
16
15
|
const tngCommand = getTngCommandConfig(cwd, file_path);
|
|
17
16
|
const baseArgs = ['--audit', '--json', '-f', file_path, '-m', method_name];
|
|
17
|
+
if (class_name) {
|
|
18
|
+
baseArgs.push('--class', class_name);
|
|
19
|
+
}
|
|
18
20
|
// Add --type for Python/JS/TS if provided
|
|
19
21
|
if (test_type) {
|
|
20
22
|
baseArgs.push('--type', test_type);
|
|
@@ -61,7 +63,10 @@ export async function auditMethod(args) {
|
|
|
61
63
|
catch (e) {
|
|
62
64
|
// Try parsing the whole output as single JSON (fallback)
|
|
63
65
|
if (line.includes('{') && line.includes('issues')) {
|
|
64
|
-
|
|
66
|
+
const parsed = safeJsonParse(line);
|
|
67
|
+
if (parsed) {
|
|
68
|
+
result = parsed;
|
|
69
|
+
}
|
|
65
70
|
}
|
|
66
71
|
}
|
|
67
72
|
}
|
package/dist/tools/audit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface CallSitesArgs {
|
|
2
|
+
file_path: string;
|
|
3
|
+
method_name: string;
|
|
4
|
+
class_name?: string;
|
|
5
|
+
project_root?: string;
|
|
6
|
+
response_format?: 'text' | 'json' | 'both';
|
|
7
|
+
raw_json?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare function findCallSites(args: CallSitesArgs): Promise<{
|
|
10
|
+
content: {
|
|
11
|
+
type: "text";
|
|
12
|
+
text: string;
|
|
13
|
+
}[];
|
|
14
|
+
isError: boolean | undefined;
|
|
15
|
+
}>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=call_sites.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call_sites.d.ts","sourceRoot":"","sources":["../../src/tools/call_sites.ts"],"names":[],"mappings":"AAOA,UAAU,aAAa;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,aAAa;;;;;;GAqGtD"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { exec, execFile } from 'child_process';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
import { findProjectRoot, getTngCommandConfig, detectLanguage, getShellEnv, shellEscape, buildMcpResponse, resolveFilePath, safeJsonParse } from './utils.js';
|
|
4
|
+
const execAsync = promisify(exec);
|
|
5
|
+
const execFileAsync = promisify(execFile);
|
|
6
|
+
export async function findCallSites(args) {
|
|
7
|
+
const { file_path, method_name, class_name, project_root } = args;
|
|
8
|
+
const responseFormat = args.response_format || (args.raw_json ? 'json' : 'text');
|
|
9
|
+
try {
|
|
10
|
+
if (!file_path || !method_name) {
|
|
11
|
+
return buildMcpResponse({
|
|
12
|
+
tool: 'find_call_sites',
|
|
13
|
+
text: 'Error: file_path and method_name are required.',
|
|
14
|
+
isError: true,
|
|
15
|
+
format: responseFormat,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
const absoluteFilePath = resolveFilePath(file_path, project_root);
|
|
19
|
+
const cwd = project_root || findProjectRoot(absoluteFilePath) || process.cwd();
|
|
20
|
+
const tngCommand = getTngCommandConfig(cwd, file_path);
|
|
21
|
+
const baseArgs = ['--callsites', '--json', '-f', file_path, '-m', method_name];
|
|
22
|
+
if (class_name) {
|
|
23
|
+
baseArgs.push('--class', class_name);
|
|
24
|
+
}
|
|
25
|
+
const command = tngCommand.shell
|
|
26
|
+
? `${tngCommand.cmd} ${baseArgs.map(shellEscape).join(' ')}`
|
|
27
|
+
: `${tngCommand.cmd} ${[...tngCommand.args, ...baseArgs].map(shellEscape).join(' ')}`;
|
|
28
|
+
console.error(`[TNG MCP] Running: ${command}`);
|
|
29
|
+
console.error(`[TNG MCP] CWD: ${cwd}`);
|
|
30
|
+
const { stdout, stderr } = tngCommand.shell
|
|
31
|
+
? await execAsync(command, {
|
|
32
|
+
cwd,
|
|
33
|
+
env: getShellEnv(),
|
|
34
|
+
timeout: 600000,
|
|
35
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
36
|
+
})
|
|
37
|
+
: await execFileAsync(tngCommand.cmd, [...tngCommand.args, ...baseArgs], {
|
|
38
|
+
cwd,
|
|
39
|
+
env: getShellEnv(),
|
|
40
|
+
timeout: 600000,
|
|
41
|
+
maxBuffer: 10 * 1024 * 1024,
|
|
42
|
+
});
|
|
43
|
+
if (stderr && !stderr.includes('TNG')) {
|
|
44
|
+
console.error('[TNG MCP] stderr:', stderr);
|
|
45
|
+
}
|
|
46
|
+
const lines = stdout.trim().split('\n');
|
|
47
|
+
let result = null;
|
|
48
|
+
for (const line of lines) {
|
|
49
|
+
if (!line.trim())
|
|
50
|
+
continue;
|
|
51
|
+
try {
|
|
52
|
+
const event = JSON.parse(line);
|
|
53
|
+
if (event.type === 'result' || event.type === 'call_sites' || event.call_sites || event.sites || Array.isArray(event)) {
|
|
54
|
+
result = event;
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
if (event.type === 'error' || event.type === 'auth_error') {
|
|
58
|
+
throw new Error(event.message || 'Call sites lookup failed');
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
if (line.includes('{') && (line.includes('"call_sites"') || line.includes('"sites"') || line.startsWith('['))) {
|
|
63
|
+
const parsed = safeJsonParse(line);
|
|
64
|
+
if (parsed) {
|
|
65
|
+
result = parsed;
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (!result) {
|
|
72
|
+
return buildMcpResponse({
|
|
73
|
+
tool: 'find_call_sites',
|
|
74
|
+
text: `No call site results returned. Raw output:\n${stdout.substring(0, 500)}`,
|
|
75
|
+
raw: stdout,
|
|
76
|
+
isError: true,
|
|
77
|
+
format: responseFormat,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
const lang = detectLanguage(file_path);
|
|
81
|
+
const sites = Array.isArray(result) ? result : (result.call_sites || result.sites || result);
|
|
82
|
+
const formatted = formatCallSites(sites, file_path, method_name, class_name, lang);
|
|
83
|
+
return buildMcpResponse({
|
|
84
|
+
tool: 'find_call_sites',
|
|
85
|
+
text: formatted,
|
|
86
|
+
raw: result,
|
|
87
|
+
format: responseFormat,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
return buildMcpResponse({
|
|
92
|
+
tool: 'find_call_sites',
|
|
93
|
+
text: `Error: ${error.message || error}`,
|
|
94
|
+
isError: true,
|
|
95
|
+
format: responseFormat,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
function formatCallSites(sites, filePath, methodName, className, lang) {
|
|
100
|
+
if (!sites || sites.length === 0) {
|
|
101
|
+
return `No call sites found for ${className ? `${className}#` : ''}${methodName} in ${filePath}.`;
|
|
102
|
+
}
|
|
103
|
+
const header = `Found ${sites.length} call sites for ${className ? `${className}#` : ''}${methodName} (${lang}):`;
|
|
104
|
+
const lines = sites.slice(0, 200).map((site) => {
|
|
105
|
+
const file = site.file || site.path || 'unknown';
|
|
106
|
+
const line = site.line || site.line_number || 0;
|
|
107
|
+
const content = site.content || site.code || '';
|
|
108
|
+
return `- ${file}:${line} ${content}`;
|
|
109
|
+
});
|
|
110
|
+
if (sites.length > 200) {
|
|
111
|
+
lines.push(`- ... ${sites.length - 200} more`);
|
|
112
|
+
}
|
|
113
|
+
return [header, ...lines].join('\n');
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=call_sites.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call_sites.js","sourceRoot":"","sources":["../../src/tools/call_sites.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clones.d.ts","sourceRoot":"","sources":["../../src/tools/clones.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"clones.d.ts","sourceRoot":"","sources":["../../src/tools/clones.ts"],"names":[],"mappings":"AAOA,UAAU,UAAU;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU;;;;;;GAuJlD"}
|