@tng-sh/mcp-server 1.0.4 → 1.0.5

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/dist/index.js CHANGED
@@ -12,6 +12,7 @@ import { findCallSites } from './tools/call_sites.js';
12
12
  import { impactMethod } from './tools/impact.js';
13
13
  import { runInit } from './init.js';
14
14
  import { preflightTarget, buildMcpResponse } from './tools/utils.js';
15
+ import { registerPrompts } from './prompts.js';
15
16
  const server = new McpServer({
16
17
  name: 'tng-mcp',
17
18
  version: '1.1.0',
@@ -21,10 +22,10 @@ if (process.argv.includes('init')) {
21
22
  process.exit(code);
22
23
  }
23
24
  const auditSchema = {
24
- file_path: z.string().describe('Relative or absolute path to the source file (e.g., "app/services/payment_processor.rb", "src/utils/validator.ts")'),
25
+ file_path: z.string().optional().describe('Relative or absolute path to the source file (optional when method name is unique in project)'),
25
26
  method_name: z.string().describe('Name of the method/function to audit (e.g., "process_payment", "validateUser", "handleSubmit")'),
26
27
  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: "utility", "react_component", "express_handler", "django_view", etc. Ignored for Ruby/Rails.'),
28
+ 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
29
  response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
29
30
  raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
30
31
  project_root: z.string().optional().describe('Project root for deterministic relative-path resolution.'),
@@ -36,7 +37,7 @@ const generateSchema = {
36
37
  file_path: z.string().describe('Relative or absolute path to the source file to generate tests for'),
37
38
  method_name: z.string().describe('Name of the method/function to generate tests for'),
38
39
  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.'),
40
+ 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.'),
40
41
  response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
41
42
  raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
42
43
  project_root: z.string().optional().describe('Project root for deterministic relative-path resolution.'),
@@ -100,12 +101,15 @@ const callSitesSchema = {
100
101
  const auditDescription = `Audit a specific method/function for security, bugs, performance, and code quality issues.
101
102
  Use when the user asks to audit, review, analyze, inspect, or check code.
102
103
  Returns findings with severity, line locations, and suggested fixes.
104
+ IMPORTANT POST-AUDIT INSTRUCTION: Once you have presented the audit findings to the user, you MUST ask them if they would like you to implement the suggested fixes. Do not implement the fixes immediately without asking first.
103
105
  Supports: Ruby, Python, JavaScript/TypeScript.
104
- Example: audit_method { file_path: "app/services/payment_processor.rb", method_name: "process_payment" }`;
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.
107
+ Example: audit_method { file_path: "src/api/payment.ts", method_name: "processPayment", test_type: "express_handler" }`;
105
108
  const generateDescription = `Generate tests for a specific method/function.
106
109
  Use when the user asks to write tests, create specs, or add coverage.
107
110
  Returns complete test code with suggested file path and command to run.
108
111
  Supports: Ruby, Python, JavaScript/TypeScript.
112
+ 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
113
  Example: generate_test { file_path: "src/utils/validator.ts", method_name: "validateUser", test_type: "utility" }`;
110
114
  const xrayDescription = `Generate a Mermaid flowchart for a method/function (X-Ray).
111
115
  Use when the user asks for a diagram, flowchart, or visual explanation.
@@ -134,8 +138,10 @@ Use when the user asks "who calls this?" or "where is this used?".
134
138
  Example: find_call_sites { file_path: "src/utils/auth.ts", method_name: "validateUser" }`;
135
139
  async function callWithPreflight(toolName, args, handler, options = { requireMethod: false }) {
136
140
  const filePath = args?.file_path ? String(args.file_path) : '';
137
- const allMode = !!args?.all;
138
- if (!options.allowMissingFilePath || !allMode) {
141
+ const canSkipPathPreflight = !!options.allowMissingFilePath
142
+ && filePath.trim().length === 0
143
+ && (toolName === 'audit_method' || !!args?.all);
144
+ if (!canSkipPathPreflight) {
139
145
  const preflight = preflightTarget({
140
146
  tool: toolName,
141
147
  filePath,
@@ -162,13 +168,29 @@ async function callWithPreflight(toolName, args, handler, options = { requireMet
162
168
  file_path: preflight.resolvedPath || filePath,
163
169
  };
164
170
  }
171
+ else {
172
+ args = {
173
+ ...args,
174
+ project_root: args?.project_root || process.cwd(),
175
+ };
176
+ if (options.requireMethod && !args?.method_name) {
177
+ const format = args?.response_format || (args?.raw_json ? 'json' : 'text');
178
+ return buildMcpResponse({
179
+ tool: toolName,
180
+ text: 'method_name is required',
181
+ isError: true,
182
+ format,
183
+ code: 'missing_method_name',
184
+ });
185
+ }
186
+ }
165
187
  return handler(args);
166
188
  }
167
189
  // 1. Audit Method - AI-Powered Code Analysis
168
- server.registerTool('audit_method', { description: auditDescription, inputSchema: auditSchema }, async (args) => await callWithPreflight('audit_method', args, auditMethod, { requireMethod: true }));
190
+ server.registerTool('audit_method', { description: auditDescription, inputSchema: auditSchema }, async (args) => await callWithPreflight('audit_method', args, auditMethod, { requireMethod: true, allowMissingFilePath: true }));
169
191
  // Aliases for audit_method
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 }));
192
+ 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, allowMissingFilePath: true }));
193
+ 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, allowMissingFilePath: true }));
172
194
  // 2. Generate Test - AI Test Generation
173
195
  server.registerTool('generate_test', { description: generateDescription, inputSchema: generateSchema }, async (args) => await callWithPreflight('generate_test', args, generateTest, { requireMethod: true }));
174
196
  // Aliases for generate_test
@@ -224,7 +246,7 @@ server.registerTool('list_capabilities', {
224
246
  'Best practices:',
225
247
  '- Prefer file paths relative to the project root.',
226
248
  '- If the server runs outside the repo, pass project_root or use absolute file paths.',
227
- '- For JS/Python, include test_type when generating tests or auditing.',
249
+ '- For JS/Python/Ruby, test_type is MANDATORY when generating tests or auditing. MUST auto-detect from the code.',
228
250
  '- All execution tools support timeout_sec, retries, and debug.',
229
251
  '- Preflight validates file/method and ignore rules before execution.',
230
252
  '',
@@ -331,12 +353,27 @@ const INTENT_DEFINITIONS = [
331
353
  },
332
354
  ];
333
355
  function normalizeIntentText(text) {
334
- return text
356
+ const normalized = text
335
357
  .toLowerCase()
336
358
  .replace(/[`"'()[\]{}:;,.!?]/g, ' ')
337
359
  .replace(/[-_/]/g, ' ')
338
360
  .replace(/\s+/g, ' ')
339
361
  .trim();
362
+ const typoMap = {
363
+ reviewe: 'review',
364
+ reviee: 'review',
365
+ reviwe: 'review',
366
+ audti: 'audit',
367
+ audut: 'audit',
368
+ anlyze: 'analyze',
369
+ analze: 'analyze',
370
+ trcae: 'trace',
371
+ ununsed: 'unused',
372
+ };
373
+ return normalized
374
+ .split(' ')
375
+ .map((token) => typoMap[token] || token)
376
+ .join(' ');
340
377
  }
341
378
  function singularizeToken(token) {
342
379
  if (token.endsWith('ies') && token.length > 3)
@@ -417,7 +454,10 @@ server.registerTool('route_tng_request', {
417
454
  }
418
455
  }
419
456
  const required = [];
420
- if (tool === 'audit_method' || tool === 'generate_test' || tool === 'xray_method' || tool === 'trace_method' || tool === 'impact_method' || tool === 'find_call_sites') {
457
+ if (tool === 'audit_method') {
458
+ required.push('method_name');
459
+ }
460
+ if (tool === 'generate_test' || tool === 'xray_method' || tool === 'trace_method' || tool === 'impact_method' || tool === 'find_call_sites') {
421
461
  required.push('file_path', 'method_name');
422
462
  }
423
463
  if (tool === 'detect_clones') {
@@ -468,6 +508,7 @@ server.registerTool('route_tng_request', {
468
508
  ],
469
509
  };
470
510
  });
511
+ registerPrompts(server);
471
512
  // Start the MCP server
472
513
  async function main() {
473
514
  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,3 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerPrompts(server: McpServer): void;
3
+ //# sourceMappingURL=prompts.d.ts.map
@@ -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"}
@@ -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 audit_method 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 audit_method.
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,yDAAyD,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;;;;;;;;;;;yEAW1I;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"}
@@ -1,5 +1,5 @@
1
1
  interface AuditArgs {
2
- file_path: string;
2
+ file_path?: string;
3
3
  method_name: string;
4
4
  class_name?: string;
5
5
  test_type?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"AAEA,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;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS;;;;;;GAsJhD"}
1
+ {"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"AAWA,UAAU,SAAS;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,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;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS;;;;;;GAsJhD"}
@@ -1,21 +1,57 @@
1
- import { findProjectRoot, getTngCommandConfig, detectLanguage, buildMcpResponse, resolveFilePath, safeJsonParse, runTngCommand } from './utils.js';
1
+ import { relative } from 'path';
2
+ import { buildMcpResponse, findProjectRoot, getTngCommandConfig, resolveFilePath, runTngCommand, safeJsonParse } from './utils.js';
3
+ import { resolveMethodCandidates } from './method_resolver.js';
2
4
  export async function auditMethod(args) {
3
- const { file_path, method_name, class_name, test_type, project_root } = args;
4
5
  const responseFormat = args.response_format || (args.raw_json ? 'json' : 'text');
6
+ const methodName = String(args.method_name || '').trim();
7
+ const requestedClass = args.class_name ? String(args.class_name).trim() : '';
8
+ const inputFilePath = args.file_path ? String(args.file_path).trim() : '';
5
9
  try {
6
- // Resolve to absolute path if relative
7
- const absoluteFilePath = resolveFilePath(file_path, project_root);
8
- // Find project root if not provided
9
- const cwd = project_root || findProjectRoot(absoluteFilePath) || process.cwd();
10
- // Find TNG command in the project
11
- const tngCommand = getTngCommandConfig(cwd, file_path);
12
- const baseArgs = ['--audit', '--json', '-f', file_path, '-m', method_name];
13
- if (class_name) {
14
- baseArgs.push('--class', class_name);
10
+ const absoluteFilePath = inputFilePath ? resolveFilePath(inputFilePath, args.project_root) : '';
11
+ const cwd = args.project_root
12
+ || (absoluteFilePath ? findProjectRoot(absoluteFilePath) : null)
13
+ || process.cwd();
14
+ const resolution = resolveMethodCandidates({
15
+ project_root: cwd,
16
+ method_name: methodName,
17
+ file_path: inputFilePath || undefined,
18
+ class_name: requestedClass || undefined,
19
+ limit: 10,
20
+ });
21
+ if (resolution.total_matches === 0) {
22
+ return buildMcpResponse({
23
+ tool: 'audit_method',
24
+ text: buildNoMatchText(methodName, requestedClass, cwd),
25
+ raw: { method_name: methodName, class_name: requestedClass || null, project_root: cwd },
26
+ format: responseFormat,
27
+ code: 'method_not_found',
28
+ });
15
29
  }
16
- // Add --type for Python/JS/TS if provided
17
- if (test_type) {
18
- baseArgs.push('--type', test_type);
30
+ if (resolution.total_matches > 1) {
31
+ return buildMcpResponse({
32
+ tool: 'audit_method',
33
+ text: buildAmbiguousText(methodName, resolution.total_matches, resolution.candidates, cwd),
34
+ raw: {
35
+ method_name: methodName,
36
+ class_name: requestedClass || null,
37
+ project_root: cwd,
38
+ total_matches: resolution.total_matches,
39
+ candidates: resolution.candidates,
40
+ },
41
+ format: responseFormat,
42
+ code: 'needs_disambiguation',
43
+ });
44
+ }
45
+ const selected = resolution.candidates[0];
46
+ const targetFilePath = selected.file_path;
47
+ const targetClass = requestedClass || selected.class_name || null;
48
+ const tngCommand = getTngCommandConfig(cwd, targetFilePath);
49
+ const baseArgs = ['--audit', '--prepare', '--json', '-f', targetFilePath, '-m', methodName];
50
+ if (targetClass) {
51
+ baseArgs.push('--class', targetClass);
52
+ }
53
+ if (args.test_type) {
54
+ baseArgs.push('--type', args.test_type);
19
55
  }
20
56
  const timeoutSec = args.timeout_sec ?? 420;
21
57
  const retries = args.retries ?? 0;
@@ -29,164 +65,101 @@ export async function auditMethod(args) {
29
65
  if (stderr && !stderr.includes('TNG')) {
30
66
  console.error('[TNG MCP] stderr:', stderr);
31
67
  }
32
- // Parse the JSON output from TNG
33
- // TNG CLI returns JSON events line by line, we need the "result" event
34
68
  const lines = stdout.trim().split('\n');
35
- let result = null;
69
+ let promptEvent = null;
36
70
  for (const line of lines) {
37
- if (!line.trim())
71
+ const event = safeJsonParse(line);
72
+ if (!event)
38
73
  continue;
39
- try {
40
- const event = JSON.parse(line);
41
- if (event.type === 'result') {
42
- result = event;
43
- break;
44
- }
45
- if (event.type === 'error' || event.type === 'auth_error') {
46
- throw new Error(event.message || 'Audit failed');
47
- }
74
+ if (event.type === 'prompt' && typeof event.content === 'string') {
75
+ promptEvent = event;
76
+ break;
48
77
  }
49
- catch (e) {
50
- // Try parsing the whole output as single JSON (fallback)
51
- if (line.includes('{') && line.includes('issues')) {
52
- const parsed = safeJsonParse(line);
53
- if (parsed) {
54
- result = parsed;
55
- }
56
- }
78
+ if (event.type === 'error' || event.type === 'auth_error') {
79
+ throw new Error(event.message || 'Audit prompt preparation failed');
57
80
  }
58
81
  }
59
- if (!result) {
82
+ if (!promptEvent) {
60
83
  return buildMcpResponse({
61
84
  tool: 'audit_method',
62
- text: `No audit results returned. Raw output:\n${stdout.substring(0, 500)}`,
85
+ text: `Failed to prepare audit prompt. Raw output:\n${stdout.substring(0, 800)}`,
63
86
  raw: stdout,
64
87
  isError: true,
65
88
  format: responseFormat,
66
- code: 'no_result',
89
+ code: 'no_prompt_result',
67
90
  meta: { attempts, duration_ms: durationMs, project_root: cwd },
68
91
  });
69
92
  }
70
- // Format the response for MCP
71
- const formattedOutput = formatAuditResult(result);
72
93
  return buildMcpResponse({
73
94
  tool: 'audit_method',
74
- text: formattedOutput,
75
- raw: result,
95
+ text: promptEvent.content,
96
+ raw: {
97
+ file_path: targetFilePath,
98
+ method_name: methodName,
99
+ class_name: targetClass,
100
+ project_root: cwd,
101
+ },
76
102
  format: responseFormat,
77
103
  code: 'ok',
78
104
  meta: { attempts, duration_ms: durationMs, project_root: cwd },
79
105
  });
80
106
  }
81
107
  catch (error) {
82
- // Handle specific error cases
83
108
  if (error.code === 'ENOENT') {
84
109
  return buildMcpResponse({
85
110
  tool: 'audit_method',
86
- text: `Error: TNG CLI not found in project. Please install TNG first:
87
-
88
- **For Ruby projects:**
89
- \`gem install tng\` or add to Gemfile: \`gem 'tng'\`
90
-
91
- **For Python projects:**
92
- \`pip install tng-python\` or \`uv add tng-python\`
93
-
94
- **For Node.js projects:**
95
- \`npm install tng-js\`
96
-
97
- Then configure your API key by running the appropriate init command.`,
111
+ text: `Error: TNG CLI not found in project. Please install TNG and retry.`,
98
112
  isError: true,
99
113
  format: responseFormat,
100
114
  code: 'cli_not_found',
101
- next_actions: ['Install TNG in this project and retry.'],
102
115
  });
103
116
  }
104
117
  if (error.killed) {
105
118
  return buildMcpResponse({
106
119
  tool: 'audit_method',
107
- text: `Error: Audit timed out.`,
120
+ text: 'Error: Audit prompt preparation timed out.',
108
121
  isError: true,
109
122
  format: responseFormat,
110
123
  code: 'timeout',
111
124
  });
112
125
  }
113
- // Extract error message
114
- let errorMessage = error.message;
115
- try {
116
- const errorOutput = error.stdout || error.stderr || '';
117
- const lines = errorOutput.split('\n');
118
- for (const line of lines) {
119
- if (!line.trim())
120
- continue;
121
- try {
122
- const event = JSON.parse(line);
123
- if (event.type === 'error' || event.type === 'auth_error') {
124
- errorMessage = event.message || errorMessage;
125
- break;
126
- }
127
- }
128
- catch { }
129
- }
130
- }
131
- catch { }
132
126
  return buildMcpResponse({
133
127
  tool: 'audit_method',
134
- text: `Error auditing ${file_path}#${method_name}: ${errorMessage}
135
-
136
- Make sure TNG is properly installed and configured in your project.`,
128
+ text: `Error preparing audit prompt for ${methodName}: ${error.message}`,
137
129
  isError: true,
138
130
  format: responseFormat,
139
- code: 'audit_failed',
140
- details: { file_path, method_name, class_name: class_name || null },
131
+ code: 'audit_prepare_failed',
132
+ details: {
133
+ file_path: inputFilePath || null,
134
+ method_name: methodName,
135
+ class_name: requestedClass || null,
136
+ },
141
137
  });
142
138
  }
143
139
  }
144
- function formatAuditResult(result) {
145
- // VSCode plugin expects result to have issues, behaviours, etc.
146
- const issues = result.issues || [];
147
- const behaviours = result.behaviours || [];
148
- const methodName = result.method_name || 'Unknown';
149
- const className = result.class_name || 'Unknown';
150
- const sourceCode = result.method_source_with_lines || result.source_code || '';
151
- let output = `# Audit Results for ${className}#${methodName}\n\n`;
152
- // Add method source code
153
- if (sourceCode) {
154
- // Try to find the file path in the result, or default to unknown
155
- const lang = detectLanguage(result.file_path || '');
156
- output += `## Source Code\n\`\`\`${lang}\n${sourceCode}\n\`\`\`\n\n`;
157
- }
158
- // Format issues
159
- if (issues.length > 0) {
160
- output += `## Issues Found (${issues.length})\n\n`;
161
- issues.forEach((issue, index) => {
162
- output += `### ${index + 1}. ${issue.category || 'General'} - Severity: ${issue.severity || 'Medium'}\n`;
163
- output += `**Description:** ${issue.description || issue.summary || 'No description'}\n`;
164
- if (issue.location) {
165
- output += `**Location:** Line ${issue.location}\n`;
166
- }
167
- if (issue.fix) {
168
- output += `**Suggested Fix:** ${issue.fix}\n`;
169
- }
170
- if (issue.reasoning) {
171
- output += `**Reasoning:** ${issue.reasoning}\n`;
172
- }
173
- output += '\n';
174
- });
175
- }
176
- else {
177
- output += `## ✅ No Issues Found\n\n`;
178
- }
179
- // Format behaviors
180
- if (behaviours.length > 0) {
181
- output += `## Behaviors (${behaviours.length})\n\n`;
182
- behaviours.forEach((behavior, index) => {
183
- output += `${index + 1}. ${behavior.description || behavior.summary}\n`;
184
- if (behavior.reasoning) {
185
- output += ` - ${behavior.reasoning}\n`;
186
- }
187
- });
188
- output += '\n';
189
- }
190
- return output;
140
+ function buildAmbiguousText(methodName, totalMatches, candidates, projectRoot) {
141
+ const lines = candidates.map((candidate, index) => {
142
+ const displayPath = toDisplayPath(candidate.file_path, projectRoot);
143
+ const classSuffix = candidate.class_name ? ` (${candidate.class_name})` : '';
144
+ return `${index + 1}. ${displayPath}:${candidate.line} ${candidate.method_name}${classSuffix}`;
145
+ });
146
+ return [
147
+ `I found ${totalMatches} methods named "${methodName}". Which one should I audit?`,
148
+ '',
149
+ ...lines,
150
+ '',
151
+ 'Reply with the number or provide an exact file_path (and class_name if needed).',
152
+ ].join('\n');
153
+ }
154
+ function buildNoMatchText(methodName, className, projectRoot) {
155
+ const classHint = className ? ` in class "${className}"` : '';
156
+ return [
157
+ `I could not find a method named "${methodName}"${classHint} in ${projectRoot}.`,
158
+ 'Provide file_path (and optionally class_name), then I can prepare the audit prompt.',
159
+ ].join('\n');
160
+ }
161
+ function toDisplayPath(absPath, projectRoot) {
162
+ const rel = relative(projectRoot, absPath);
163
+ return rel && !rel.startsWith('..') ? rel : absPath;
191
164
  }
192
165
  //# sourceMappingURL=audit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export interface MethodCandidate {
2
+ file_path: string;
3
+ class_name?: string | null;
4
+ method_name: string;
5
+ line: number;
6
+ }
7
+ interface ResolveInput {
8
+ project_root: string;
9
+ method_name: string;
10
+ file_path?: string;
11
+ class_name?: string;
12
+ limit?: number;
13
+ }
14
+ interface ResolveResult {
15
+ candidates: MethodCandidate[];
16
+ total_matches: number;
17
+ }
18
+ export declare function resolveMethodCandidates(input: ResolveInput): ResolveResult;
19
+ export {};
20
+ //# sourceMappingURL=method_resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method_resolver.d.ts","sourceRoot":"","sources":["../../src/tools/method_resolver.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,YAAY;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,aAAa;IACnB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACzB;AAKD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CA8B1E"}
@@ -0,0 +1,138 @@
1
+ import { existsSync, readdirSync, readFileSync, statSync } from 'fs';
2
+ import { extname, join, resolve as pathResolve } from 'path';
3
+ const JS_TS_EXTENSIONS = new Set(['.js', '.jsx', '.ts', '.tsx', '.mjs', '.cjs']);
4
+ const SKIP_DIRS = new Set(['.git', 'node_modules', 'dist', 'build', 'coverage', '.next', '.nuxt', '.turbo', 'tmp']);
5
+ export function resolveMethodCandidates(input) {
6
+ const limit = Math.max(1, input.limit || 10);
7
+ const projectRoot = input.project_root;
8
+ const targetMethod = input.method_name;
9
+ const targetClass = input.class_name || '';
10
+ const candidates = [];
11
+ const files = input.file_path
12
+ ? [toAbsolutePath(input.file_path, projectRoot)]
13
+ : collectSourceFiles(projectRoot);
14
+ for (const file of files) {
15
+ if (candidates.length >= limit)
16
+ break;
17
+ if (!existsSync(file))
18
+ continue;
19
+ const fileCandidates = findMethodInFile(file, targetMethod, targetClass);
20
+ for (const candidate of fileCandidates) {
21
+ candidates.push(candidate);
22
+ if (candidates.length >= limit)
23
+ break;
24
+ }
25
+ }
26
+ const totalMatches = input.file_path
27
+ ? findMethodInFile(toAbsolutePath(input.file_path, projectRoot), targetMethod, targetClass).length
28
+ : countTotalMatches(projectRoot, targetMethod, targetClass);
29
+ return {
30
+ candidates,
31
+ total_matches: totalMatches,
32
+ };
33
+ }
34
+ function toAbsolutePath(filePath, projectRoot) {
35
+ if (filePath.startsWith('/'))
36
+ return filePath;
37
+ return pathResolve(projectRoot, filePath);
38
+ }
39
+ function collectSourceFiles(projectRoot) {
40
+ const results = [];
41
+ const walk = (dir) => {
42
+ let entries = [];
43
+ try {
44
+ entries = readdirSync(dir);
45
+ }
46
+ catch {
47
+ return;
48
+ }
49
+ for (const entry of entries) {
50
+ const fullPath = join(dir, entry);
51
+ let stat;
52
+ try {
53
+ stat = statSync(fullPath);
54
+ }
55
+ catch {
56
+ continue;
57
+ }
58
+ if (stat.isDirectory()) {
59
+ if (SKIP_DIRS.has(entry))
60
+ continue;
61
+ walk(fullPath);
62
+ continue;
63
+ }
64
+ if (JS_TS_EXTENSIONS.has(extname(entry))) {
65
+ results.push(fullPath);
66
+ }
67
+ }
68
+ };
69
+ walk(projectRoot);
70
+ return results;
71
+ }
72
+ function findMethodInFile(filePath, methodName, className) {
73
+ let content = '';
74
+ try {
75
+ content = readFileSync(filePath, 'utf8');
76
+ }
77
+ catch {
78
+ return [];
79
+ }
80
+ const lines = content.split('\n');
81
+ const candidates = [];
82
+ let currentClass = null;
83
+ let classDepth = 0;
84
+ let braceDepth = 0;
85
+ for (let i = 0; i < lines.length; i++) {
86
+ const line = lines[i];
87
+ const classMatch = line.match(/^\s*class\s+([A-Za-z_$][A-Za-z0-9_$]*)\b/);
88
+ if (classMatch) {
89
+ currentClass = classMatch[1];
90
+ classDepth = braceDepth;
91
+ }
92
+ const matchers = [
93
+ new RegExp(`^\\s*(?:export\\s+)?(?:async\\s+)?function\\s+${escapeRegex(methodName)}\\s*\\(`),
94
+ new RegExp(`^\\s*(?:export\\s+)?(?:const|let|var)\\s+${escapeRegex(methodName)}\\s*=\\s*(?:async\\s*)?\\([^)]*\\)\\s*=>`),
95
+ new RegExp(`^\\s*(?:public\\s+|private\\s+|protected\\s+)?(?:static\\s+)?(?:async\\s+)?${escapeRegex(methodName)}\\s*\\([^)]*\\)\\s*\\{`)
96
+ ];
97
+ if (matchers.some((re) => re.test(line))) {
98
+ if (className && currentClass !== className) {
99
+ // keep searching
100
+ }
101
+ else {
102
+ candidates.push({
103
+ file_path: filePath,
104
+ class_name: currentClass,
105
+ method_name: methodName,
106
+ line: i + 1,
107
+ });
108
+ }
109
+ }
110
+ braceDepth += countChar(line, '{');
111
+ braceDepth -= countChar(line, '}');
112
+ if (currentClass && braceDepth <= classDepth) {
113
+ currentClass = null;
114
+ classDepth = 0;
115
+ }
116
+ }
117
+ return candidates;
118
+ }
119
+ function countTotalMatches(projectRoot, methodName, className) {
120
+ let total = 0;
121
+ const files = collectSourceFiles(projectRoot);
122
+ for (const file of files) {
123
+ total += findMethodInFile(file, methodName, className).length;
124
+ }
125
+ return total;
126
+ }
127
+ function countChar(text, target) {
128
+ let count = 0;
129
+ for (const ch of text) {
130
+ if (ch === target)
131
+ count += 1;
132
+ }
133
+ return count;
134
+ }
135
+ function escapeRegex(input) {
136
+ return input.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
137
+ }
138
+ //# sourceMappingURL=method_resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method_resolver.js","sourceRoot":"","sources":["../../src/tools/method_resolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tng-sh/mcp-server",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "MCP server for TNG test generation and code auditing",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",