@mbc-cqrs-serverless/mcp-server 1.0.21 → 1.0.22

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.
@@ -44,6 +44,15 @@ const AnalyzeProjectSchema = zod_1.z.object({
44
44
  const LookupErrorSchema = zod_1.z.object({
45
45
  error_message: zod_1.z.string().describe('The error message to look up'),
46
46
  });
47
+ const CheckAntiPatternsSchema = zod_1.z.object({
48
+ path: zod_1.z.string().optional().describe('Path to check (defaults to src/)'),
49
+ });
50
+ const HealthCheckSchema = zod_1.z.object({});
51
+ const ExplainCodeSchema = zod_1.z.object({
52
+ file_path: zod_1.z.string().describe('Path to the file to explain'),
53
+ start_line: zod_1.z.number().optional().describe('Starting line number'),
54
+ end_line: zod_1.z.number().optional().describe('Ending line number'),
55
+ });
47
56
  /**
48
57
  * Get all analyze tools.
49
58
  */
@@ -76,6 +85,49 @@ function getAnalyzeTools() {
76
85
  required: ['error_message'],
77
86
  },
78
87
  },
88
+ {
89
+ name: 'mbc_check_anti_patterns',
90
+ description: 'Check the project code for common anti-patterns and bad practices. Returns a list of detected issues with locations and recommendations.',
91
+ inputSchema: {
92
+ type: 'object',
93
+ properties: {
94
+ path: {
95
+ type: 'string',
96
+ description: 'Path to check (defaults to src/)',
97
+ },
98
+ },
99
+ },
100
+ },
101
+ {
102
+ name: 'mbc_health_check',
103
+ description: 'Perform a health check on the MBC CQRS Serverless project. Checks dependencies, structure, configuration, and common setup issues.',
104
+ inputSchema: {
105
+ type: 'object',
106
+ properties: {},
107
+ },
108
+ },
109
+ {
110
+ name: 'mbc_explain_code',
111
+ description: 'Analyze and explain a specific file or code section in the context of the MBC CQRS Serverless framework.',
112
+ inputSchema: {
113
+ type: 'object',
114
+ properties: {
115
+ file_path: {
116
+ type: 'string',
117
+ description: 'Path to the file to explain',
118
+ },
119
+ start_line: {
120
+ type: 'number',
121
+ description: 'Starting line number (optional)',
122
+ },
123
+ end_line: {
124
+ type: 'number',
125
+ description: 'Ending line number (optional)',
126
+ },
127
+ },
128
+ required: ['file_path'],
129
+ },
130
+ },
79
131
  ];
80
132
  }
81
133
  /**
@@ -93,6 +145,20 @@ async function handleAnalyzeTool(name, args, projectPath) {
93
145
  const parsed = LookupErrorSchema.parse(args);
94
146
  return await lookupError(parsed.error_message, projectPath);
95
147
  }
148
+ case 'mbc_check_anti_patterns': {
149
+ const parsed = CheckAntiPatternsSchema.parse(args);
150
+ const targetPath = parsed.path ? path.resolve(projectPath, parsed.path) : path.join(projectPath, 'src');
151
+ return await checkAntiPatterns(targetPath, projectPath);
152
+ }
153
+ case 'mbc_health_check': {
154
+ HealthCheckSchema.parse(args);
155
+ return await healthCheck(projectPath);
156
+ }
157
+ case 'mbc_explain_code': {
158
+ const parsed = ExplainCodeSchema.parse(args);
159
+ const filePath = path.resolve(projectPath, parsed.file_path);
160
+ return await explainCode(filePath, parsed.start_line, parsed.end_line);
161
+ }
96
162
  default:
97
163
  return {
98
164
  content: [{ type: 'text', text: `Unknown analyze tool: ${name}` }],
@@ -302,4 +368,444 @@ function formatAnalysisResult(result) {
302
368
  content: [{ type: 'text', text }],
303
369
  };
304
370
  }
371
+ /**
372
+ * Anti-patterns to check for.
373
+ * Codes are sequential from AP001 to AP010.
374
+ */
375
+ const ANTI_PATTERNS = [
376
+ {
377
+ code: 'AP001',
378
+ name: 'Direct DynamoDB Write',
379
+ severity: 'critical',
380
+ pattern: /new\s+(PutItemCommand|UpdateItemCommand|DeleteItemCommand)\s*\(/,
381
+ recommendation: 'Use CommandService.publishAsync() instead of direct DynamoDB writes to maintain CQRS pattern.',
382
+ },
383
+ {
384
+ code: 'AP002',
385
+ name: 'Ignored Version Mismatch',
386
+ severity: 'high',
387
+ pattern: /catch\s*\([^)]*\)\s*\{[^}]*VersionMismatch[^}]*(?:console\.log|\/\/|return\s*;)/,
388
+ recommendation: 'Handle VersionMismatchError by retrying with fresh data, not by ignoring.',
389
+ },
390
+ {
391
+ code: 'AP003',
392
+ name: 'N+1 Query Pattern',
393
+ severity: 'high',
394
+ pattern: /for\s*\([^)]+\)\s*\{[^}]*await\s+(?:this\.)?(?:dataService|commandService)\./,
395
+ recommendation: 'Use batch operations or pre-fetch data before the loop.',
396
+ },
397
+ {
398
+ code: 'AP004',
399
+ name: 'Full Table Scan',
400
+ severity: 'high',
401
+ pattern: /\.scan\s*\(\s*\{[^}]*TableName/,
402
+ recommendation: 'Use Query with proper key conditions instead of Scan.',
403
+ },
404
+ {
405
+ code: 'AP005',
406
+ name: 'Hardcoded Tenant',
407
+ severity: 'critical',
408
+ pattern: /['"`]TENANT#\w+['"`]/,
409
+ recommendation: 'Use getUserContext(context).tenantCode to get tenant dynamically.',
410
+ },
411
+ {
412
+ code: 'AP006',
413
+ name: 'Missing Tenant Validation',
414
+ severity: 'critical',
415
+ pattern: /(?:dto|body|request)\s*\.\s*tenantCode/,
416
+ recommendation: 'Never trust client-provided tenant codes. Use getUserContext() from authenticated context.',
417
+ },
418
+ {
419
+ code: 'AP007',
420
+ name: 'Throwing in Sync Handler',
421
+ severity: 'high',
422
+ // Limit match to 500 characters to avoid false positives across distant code
423
+ pattern: /@DataSyncHandler[\s\S]{0,500}throw\s+(?:error|new\s+\w+Error)/,
424
+ recommendation: 'Handle errors gracefully in DataSyncHandler. Use DLQ for failed events.',
425
+ },
426
+ {
427
+ code: 'AP008',
428
+ name: 'Hardcoded Secret',
429
+ severity: 'critical',
430
+ pattern: /(?:password|secret|apiKey|token)\s*[:=]\s*['"`][^'"`]{8,}['"`]/i,
431
+ recommendation: 'Use environment variables or AWS Secrets Manager for sensitive values.',
432
+ },
433
+ {
434
+ code: 'AP009',
435
+ name: 'Manual JWT Parsing',
436
+ severity: 'critical',
437
+ pattern: /atob\s*\([^)]*\.split\s*\(['"`]\.['"`]\)/,
438
+ recommendation: 'Use the framework\'s built-in JWT validation via Cognito authorizer.',
439
+ },
440
+ {
441
+ code: 'AP010',
442
+ name: 'Heavy Module Import',
443
+ severity: 'medium',
444
+ pattern: /^import\s+\*\s+as\s+\w+\s+from\s+['"`](?:aws-sdk|lodash|moment)['"`]/m,
445
+ recommendation: 'Import only what you need to reduce cold start time.',
446
+ },
447
+ ];
448
+ /**
449
+ * Check for anti-patterns in code.
450
+ */
451
+ async function checkAntiPatterns(targetPath, projectPath) {
452
+ if (!fs.existsSync(targetPath)) {
453
+ return {
454
+ content: [{ type: 'text', text: `Path not found: ${targetPath}` }],
455
+ isError: true,
456
+ };
457
+ }
458
+ const matches = [];
459
+ const skippedFiles = [];
460
+ const files = await findFiles(targetPath, '.ts');
461
+ for (const file of files) {
462
+ if (file.includes('.spec.') || file.includes('.test.') || file.includes('.d.ts')) {
463
+ continue;
464
+ }
465
+ let content;
466
+ try {
467
+ content = fs.readFileSync(file, 'utf-8');
468
+ }
469
+ catch (err) {
470
+ // Skip files that cannot be read (permission issues, etc.)
471
+ skippedFiles.push(path.relative(projectPath, file));
472
+ continue;
473
+ }
474
+ const lines = content.split('\n');
475
+ for (const ap of ANTI_PATTERNS) {
476
+ const regex = new RegExp(ap.pattern.source, 'gm');
477
+ let match;
478
+ while ((match = regex.exec(content)) !== null) {
479
+ const lineNumber = content.substring(0, match.index).split('\n').length;
480
+ const snippet = lines[lineNumber - 1]?.trim() || '';
481
+ matches.push({
482
+ code: ap.code,
483
+ name: ap.name,
484
+ severity: ap.severity,
485
+ file: path.relative(projectPath, file),
486
+ line: lineNumber,
487
+ snippet: snippet.length > 80 ? snippet.substring(0, 77) + '...' : snippet,
488
+ recommendation: ap.recommendation,
489
+ });
490
+ }
491
+ }
492
+ }
493
+ if (matches.length === 0) {
494
+ let text = '## Anti-Pattern Check Results\n\n✅ No anti-patterns detected! Your code follows best practices.';
495
+ if (skippedFiles.length > 0) {
496
+ text += `\n\n**Note:** ${skippedFiles.length} file(s) could not be read and were skipped.`;
497
+ }
498
+ return {
499
+ content: [{ type: 'text', text }],
500
+ };
501
+ }
502
+ // Group by severity
503
+ const critical = matches.filter(m => m.severity === 'critical');
504
+ const high = matches.filter(m => m.severity === 'high');
505
+ const medium = matches.filter(m => m.severity === 'medium');
506
+ const low = matches.filter(m => m.severity === 'low');
507
+ let text = `## Anti-Pattern Check Results\n\n`;
508
+ text += `Found **${matches.length}** potential issue(s):\n\n`;
509
+ text += `| Severity | Count |\n|----------|-------|\n`;
510
+ text += `| 🔴 Critical | ${critical.length} |\n`;
511
+ text += `| 🟠 High | ${high.length} |\n`;
512
+ text += `| 🟡 Medium | ${medium.length} |\n`;
513
+ text += `| 🟢 Low | ${low.length} |\n\n`;
514
+ for (const m of matches) {
515
+ const icon = m.severity === 'critical' ? '🔴' : m.severity === 'high' ? '🟠' : m.severity === 'medium' ? '🟡' : '🟢';
516
+ text += `### ${icon} ${m.code}: ${m.name}\n\n`;
517
+ text += `**File:** \`${m.file}:${m.line}\`\n`;
518
+ text += `**Snippet:** \`${m.snippet}\`\n\n`;
519
+ text += `**Recommendation:** ${m.recommendation}\n\n`;
520
+ text += `---\n\n`;
521
+ }
522
+ if (skippedFiles.length > 0) {
523
+ text += `**Note:** ${skippedFiles.length} file(s) could not be read and were skipped.\n`;
524
+ }
525
+ return { content: [{ type: 'text', text }] };
526
+ }
527
+ /**
528
+ * Perform health check on project.
529
+ */
530
+ async function healthCheck(projectPath) {
531
+ const result = {
532
+ status: 'healthy',
533
+ checks: [],
534
+ };
535
+ // Check package.json
536
+ const packageJsonPath = path.join(projectPath, 'package.json');
537
+ if (fs.existsSync(packageJsonPath)) {
538
+ let pkg;
539
+ try {
540
+ pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
541
+ }
542
+ catch (err) {
543
+ result.checks.push({
544
+ name: 'package.json',
545
+ status: 'fail',
546
+ message: 'package.json exists but could not be parsed (invalid JSON)',
547
+ });
548
+ result.status = 'error';
549
+ pkg = {};
550
+ }
551
+ const deps = { ...pkg.dependencies, ...pkg.devDependencies };
552
+ // Check for MBC packages
553
+ const mbcPackages = Object.keys(deps).filter(k => k.startsWith('@mbc-cqrs-serverless/'));
554
+ if (mbcPackages.length === 0) {
555
+ result.checks.push({
556
+ name: 'MBC Framework',
557
+ status: 'fail',
558
+ message: 'No @mbc-cqrs-serverless packages found. Is this an MBC project?',
559
+ });
560
+ result.status = 'error';
561
+ }
562
+ else {
563
+ result.checks.push({
564
+ name: 'MBC Framework',
565
+ status: 'pass',
566
+ message: `Found ${mbcPackages.length} package(s): ${mbcPackages.join(', ')}`,
567
+ });
568
+ }
569
+ // Check for @nestjs packages
570
+ const nestPackages = Object.keys(deps).filter(k => k.startsWith('@nestjs/'));
571
+ if (nestPackages.length === 0) {
572
+ result.checks.push({
573
+ name: 'NestJS',
574
+ status: 'fail',
575
+ message: 'No @nestjs packages found.',
576
+ });
577
+ result.status = 'error';
578
+ }
579
+ else {
580
+ result.checks.push({
581
+ name: 'NestJS',
582
+ status: 'pass',
583
+ message: `Found ${nestPackages.length} NestJS package(s)`,
584
+ });
585
+ }
586
+ // Check TypeScript version
587
+ const tsVersion = deps['typescript'];
588
+ if (!tsVersion) {
589
+ result.checks.push({
590
+ name: 'TypeScript',
591
+ status: 'warn',
592
+ message: 'TypeScript not found in dependencies',
593
+ });
594
+ if (result.status === 'healthy')
595
+ result.status = 'warning';
596
+ }
597
+ else {
598
+ result.checks.push({
599
+ name: 'TypeScript',
600
+ status: 'pass',
601
+ message: `Version: ${tsVersion}`,
602
+ });
603
+ }
604
+ }
605
+ else {
606
+ result.checks.push({
607
+ name: 'package.json',
608
+ status: 'fail',
609
+ message: 'package.json not found',
610
+ });
611
+ result.status = 'error';
612
+ }
613
+ // Check for .env file
614
+ const envPath = path.join(projectPath, '.env');
615
+ const envExamplePath = path.join(projectPath, '.env.example');
616
+ if (!fs.existsSync(envPath)) {
617
+ if (fs.existsSync(envExamplePath)) {
618
+ result.checks.push({
619
+ name: 'Environment',
620
+ status: 'warn',
621
+ message: '.env not found, but .env.example exists. Copy and configure it.',
622
+ });
623
+ if (result.status === 'healthy')
624
+ result.status = 'warning';
625
+ }
626
+ else {
627
+ result.checks.push({
628
+ name: 'Environment',
629
+ status: 'warn',
630
+ message: 'No .env file found',
631
+ });
632
+ if (result.status === 'healthy')
633
+ result.status = 'warning';
634
+ }
635
+ }
636
+ else {
637
+ result.checks.push({
638
+ name: 'Environment',
639
+ status: 'pass',
640
+ message: '.env file exists',
641
+ });
642
+ }
643
+ // Check for src directory
644
+ const srcPath = path.join(projectPath, 'src');
645
+ if (!fs.existsSync(srcPath)) {
646
+ result.checks.push({
647
+ name: 'Source Directory',
648
+ status: 'fail',
649
+ message: 'src/ directory not found',
650
+ });
651
+ result.status = 'error';
652
+ }
653
+ else {
654
+ const moduleCount = (await findFiles(srcPath, '.module.ts')).length;
655
+ result.checks.push({
656
+ name: 'Source Directory',
657
+ status: 'pass',
658
+ message: `Found ${moduleCount} module(s)`,
659
+ });
660
+ }
661
+ // Check for serverless.yml or serverless.ts
662
+ const serverlessYml = path.join(projectPath, 'serverless.yml');
663
+ const serverlessTs = path.join(projectPath, 'serverless.ts');
664
+ if (!fs.existsSync(serverlessYml) && !fs.existsSync(serverlessTs)) {
665
+ result.checks.push({
666
+ name: 'Serverless Config',
667
+ status: 'warn',
668
+ message: 'No serverless.yml or serverless.ts found',
669
+ });
670
+ if (result.status === 'healthy')
671
+ result.status = 'warning';
672
+ }
673
+ else {
674
+ result.checks.push({
675
+ name: 'Serverless Config',
676
+ status: 'pass',
677
+ message: fs.existsSync(serverlessYml) ? 'serverless.yml found' : 'serverless.ts found',
678
+ });
679
+ }
680
+ // Format output
681
+ const icon = result.status === 'healthy' ? '✅' : result.status === 'warning' ? '⚠️' : '❌';
682
+ let text = `## Project Health Check ${icon}\n\n`;
683
+ text += `**Overall Status:** ${result.status.toUpperCase()}\n\n`;
684
+ text += `| Check | Status | Details |\n`;
685
+ text += `|-------|--------|--------|\n`;
686
+ for (const check of result.checks) {
687
+ const statusIcon = check.status === 'pass' ? '✅' : check.status === 'warn' ? '⚠️' : '❌';
688
+ text += `| ${check.name} | ${statusIcon} | ${check.message} |\n`;
689
+ }
690
+ return { content: [{ type: 'text', text }] };
691
+ }
692
+ /**
693
+ * Explain code in MBC context.
694
+ */
695
+ async function explainCode(filePath, startLine, endLine) {
696
+ if (!fs.existsSync(filePath)) {
697
+ return {
698
+ content: [{ type: 'text', text: `File not found: ${filePath}` }],
699
+ isError: true,
700
+ };
701
+ }
702
+ const content = fs.readFileSync(filePath, 'utf-8');
703
+ const lines = content.split('\n');
704
+ const fileName = path.basename(filePath);
705
+ let codeSection;
706
+ if (startLine !== undefined && endLine !== undefined) {
707
+ codeSection = lines.slice(startLine - 1, endLine).join('\n');
708
+ }
709
+ else {
710
+ codeSection = content;
711
+ }
712
+ // Detect file type and patterns
713
+ const patterns = [];
714
+ const explanations = [];
715
+ // Module detection
716
+ if (content.includes('@Module(')) {
717
+ patterns.push('NestJS Module');
718
+ if (content.includes('CommandModule')) {
719
+ explanations.push('This module imports CommandModule, enabling CQRS command handling.');
720
+ }
721
+ if (content.includes('imports:')) {
722
+ explanations.push('The imports array lists other modules this module depends on.');
723
+ }
724
+ if (content.includes('providers:')) {
725
+ explanations.push('The providers array lists services and handlers available in this module.');
726
+ }
727
+ }
728
+ // Controller detection
729
+ if (content.includes('@Controller(')) {
730
+ patterns.push('REST Controller');
731
+ if (content.includes('@Get('))
732
+ explanations.push('Contains GET endpoint(s) for read operations.');
733
+ if (content.includes('@Post('))
734
+ explanations.push('Contains POST endpoint(s) for create operations.');
735
+ if (content.includes('@Patch(') || content.includes('@Put(')) {
736
+ explanations.push('Contains PATCH/PUT endpoint(s) for update operations.');
737
+ }
738
+ if (content.includes('@Delete('))
739
+ explanations.push('Contains DELETE endpoint(s) for delete operations.');
740
+ }
741
+ // Service detection
742
+ if (content.includes('@Injectable()') && fileName.includes('.service.')) {
743
+ patterns.push('Service');
744
+ if (content.includes('CommandService')) {
745
+ explanations.push('Uses CommandService for publishing commands (state changes).');
746
+ }
747
+ if (content.includes('DataService')) {
748
+ explanations.push('Uses DataService for querying data (read operations).');
749
+ }
750
+ if (content.includes('SequenceService')) {
751
+ explanations.push('Uses SequenceService for generating sequential IDs.');
752
+ }
753
+ }
754
+ // Entity detection
755
+ if (fileName.includes('.entity.')) {
756
+ patterns.push('Entity');
757
+ if (content.includes('CommandEntity')) {
758
+ explanations.push('This is a Command entity stored in the command table for write operations.');
759
+ }
760
+ if (content.includes('DataEntity')) {
761
+ explanations.push('This is a Data entity stored in the data table for read operations.');
762
+ }
763
+ if (content.includes('pk:') && content.includes('sk:')) {
764
+ explanations.push('Uses DynamoDB single-table design with partition key (pk) and sort key (sk).');
765
+ }
766
+ }
767
+ // Handler detection
768
+ if (content.includes('@DataSyncHandler(')) {
769
+ patterns.push('Data Sync Handler');
770
+ explanations.push('This handler reacts to DynamoDB Streams events for data synchronization.');
771
+ explanations.push('It runs when items are created, updated, or deleted in DynamoDB.');
772
+ }
773
+ // CQRS patterns
774
+ if (content.includes('publishAsync(')) {
775
+ explanations.push('Uses publishAsync() for non-blocking command publishing.');
776
+ }
777
+ if (content.includes('publishSync(')) {
778
+ explanations.push('Uses publishSync() for synchronous command execution (waits for Step Functions).');
779
+ }
780
+ if (content.includes('getUserContext(')) {
781
+ explanations.push('Extracts user context (tenantCode, userId, role) from the invocation context.');
782
+ }
783
+ // Build output
784
+ let text = `## Code Analysis: ${fileName}\n\n`;
785
+ if (patterns.length > 0) {
786
+ text += `### Detected Patterns\n\n`;
787
+ for (const p of patterns) {
788
+ text += `- ${p}\n`;
789
+ }
790
+ text += '\n';
791
+ }
792
+ if (explanations.length > 0) {
793
+ text += `### Explanation\n\n`;
794
+ for (const e of explanations) {
795
+ text += `- ${e}\n`;
796
+ }
797
+ text += '\n';
798
+ }
799
+ if (startLine !== undefined && endLine !== undefined) {
800
+ text += `### Code Section (lines ${startLine}-${endLine})\n\n`;
801
+ text += '```typescript\n';
802
+ text += codeSection;
803
+ text += '\n```\n';
804
+ }
805
+ if (patterns.length === 0 && explanations.length === 0) {
806
+ text += 'No specific MBC CQRS patterns detected in this file.\n';
807
+ text += 'This might be a utility file, DTO, or non-framework-specific code.\n';
808
+ }
809
+ return { content: [{ type: 'text', text }] };
810
+ }
305
811
  //# sourceMappingURL=analyze.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/tools/analyze.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mbc-cqrs-serverless/mcp-server",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "MCP (Model Context Protocol) server for MBC CQRS Serverless framework - enables AI tools to interact with the framework",
5
5
  "keywords": [
6
6
  "mbc",
@@ -51,10 +51,13 @@
51
51
  "zod": "^3.23.0"
52
52
  },
53
53
  "devDependencies": {
54
- "@types/node": "^20.10.0"
54
+ "@types/jest": "^29.5.0",
55
+ "@types/node": "^20.10.0",
56
+ "jest": "^29.7.0",
57
+ "ts-jest": "^29.1.0"
55
58
  },
56
59
  "engines": {
57
60
  "node": ">=18.0.0"
58
61
  },
59
- "gitHead": "66471d0305565977eebd51de5c23abf28d628147"
62
+ "gitHead": "7d77028acefcce1a4a5b0fbeee2524d2dc264e64"
60
63
  }