@performance-agent/mcp-server 1.0.1 → 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.

Potentially problematic release.


This version of @performance-agent/mcp-server might be problematic. Click here for more details.

Files changed (45) hide show
  1. package/README.md +400 -25
  2. package/dist/index.d.ts +14 -4
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +783 -47
  5. package/dist/index.js.map +1 -1
  6. package/dist/prompts/jmx_prompt.txt +262 -0
  7. package/dist/prompts/prompts/jmx_prompt.txt +262 -0
  8. package/dist/tools/azure-infra/config-parser.d.ts +14 -0
  9. package/dist/tools/azure-infra/config-parser.d.ts.map +1 -0
  10. package/dist/tools/azure-infra/config-parser.js +361 -0
  11. package/dist/tools/azure-infra/config-parser.js.map +1 -0
  12. package/dist/tools/azure-infra/index.d.ts +52 -0
  13. package/dist/tools/azure-infra/index.d.ts.map +1 -0
  14. package/dist/tools/azure-infra/index.js +448 -0
  15. package/dist/tools/azure-infra/index.js.map +1 -0
  16. package/dist/tools/azure-infra/terraform-generator.d.ts +19 -0
  17. package/dist/tools/azure-infra/terraform-generator.d.ts.map +1 -0
  18. package/dist/tools/azure-infra/terraform-generator.js +458 -0
  19. package/dist/tools/azure-infra/terraform-generator.js.map +1 -0
  20. package/dist/tools/azure-infra/types.d.ts +123 -0
  21. package/dist/tools/azure-infra/types.d.ts.map +1 -0
  22. package/dist/tools/azure-infra/types.js +95 -0
  23. package/dist/tools/azure-infra/types.js.map +1 -0
  24. package/dist/tools/cloud-executor/index.d.ts +78 -0
  25. package/dist/tools/cloud-executor/index.d.ts.map +1 -0
  26. package/dist/tools/cloud-executor/index.js +528 -0
  27. package/dist/tools/cloud-executor/index.js.map +1 -0
  28. package/dist/tools/cloud-executor/result-analyzer.d.ts +65 -0
  29. package/dist/tools/cloud-executor/result-analyzer.d.ts.map +1 -0
  30. package/dist/tools/cloud-executor/result-analyzer.js +367 -0
  31. package/dist/tools/cloud-executor/result-analyzer.js.map +1 -0
  32. package/dist/tools/cloud-executor/vm-metrics.d.ts +87 -0
  33. package/dist/tools/cloud-executor/vm-metrics.d.ts.map +1 -0
  34. package/dist/tools/cloud-executor/vm-metrics.js +506 -0
  35. package/dist/tools/cloud-executor/vm-metrics.js.map +1 -0
  36. package/dist/tools/jmx-generator/index.d.ts +20 -0
  37. package/dist/tools/jmx-generator/index.d.ts.map +1 -0
  38. package/dist/tools/jmx-generator/index.js +115 -0
  39. package/dist/tools/jmx-generator/index.js.map +1 -0
  40. package/dist/tools/jmx-generator/sanitizer.d.ts +19 -0
  41. package/dist/tools/jmx-generator/sanitizer.d.ts.map +1 -0
  42. package/dist/tools/jmx-generator/sanitizer.js +166 -0
  43. package/dist/tools/jmx-generator/sanitizer.js.map +1 -0
  44. package/package.json +5 -2
  45. package/scripts/copy-prompts.js +46 -0
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Azure Infrastructure Types
3
+ * Type definitions for VM provisioning and infrastructure management
4
+ */
5
+ // VM size mappings
6
+ export const VM_SIZE_PRESETS = {
7
+ 'small': {
8
+ size: 'Standard_B1ms',
9
+ cpus: 1,
10
+ memoryGB: 2,
11
+ description: 'Budget VM for light workloads (1 vCPU, 2GB RAM)',
12
+ },
13
+ 'medium': {
14
+ size: 'Standard_D2s_v3',
15
+ cpus: 2,
16
+ memoryGB: 8,
17
+ description: 'General purpose VM (2 vCPUs, 8GB RAM)',
18
+ },
19
+ 'large': {
20
+ size: 'Standard_D4s_v3',
21
+ cpus: 4,
22
+ memoryGB: 16,
23
+ description: 'General purpose VM (4 vCPUs, 16GB RAM)',
24
+ },
25
+ 'xlarge': {
26
+ size: 'Standard_D8s_v3',
27
+ cpus: 8,
28
+ memoryGB: 32,
29
+ description: 'High-performance VM (8 vCPUs, 32GB RAM)',
30
+ },
31
+ 'compute-optimized': {
32
+ size: 'Standard_F4s_v2',
33
+ cpus: 4,
34
+ memoryGB: 8,
35
+ description: 'Compute optimized VM (4 vCPUs, 8GB RAM)',
36
+ },
37
+ 'memory-optimized': {
38
+ size: 'Standard_E4s_v3',
39
+ cpus: 4,
40
+ memoryGB: 32,
41
+ description: 'Memory optimized VM (4 vCPUs, 32GB RAM)',
42
+ },
43
+ 'gpu': {
44
+ size: 'Standard_NC6s_v3',
45
+ cpus: 6,
46
+ memoryGB: 112,
47
+ description: 'GPU VM with NVIDIA V100 (6 vCPUs, 112GB RAM)',
48
+ },
49
+ };
50
+ // OS image mappings
51
+ export const OS_IMAGES = {
52
+ 'ubuntu-22.04': {
53
+ publisher: 'Canonical',
54
+ offer: '0001-com-ubuntu-server-jammy',
55
+ sku: '22_04-lts-gen2',
56
+ version: 'latest',
57
+ },
58
+ 'ubuntu-20.04': {
59
+ publisher: 'Canonical',
60
+ offer: '0001-com-ubuntu-server-focal',
61
+ sku: '20_04-lts-gen2',
62
+ version: 'latest',
63
+ },
64
+ 'debian-11': {
65
+ publisher: 'Debian',
66
+ offer: 'debian-11',
67
+ sku: '11-gen2',
68
+ version: 'latest',
69
+ },
70
+ 'rhel-8': {
71
+ publisher: 'RedHat',
72
+ offer: 'RHEL',
73
+ sku: '8-lvm-gen2',
74
+ version: 'latest',
75
+ },
76
+ 'windows-2022': {
77
+ publisher: 'MicrosoftWindowsServer',
78
+ offer: 'WindowsServer',
79
+ sku: '2022-datacenter-azure-edition',
80
+ version: 'latest',
81
+ },
82
+ 'windows-2019': {
83
+ publisher: 'MicrosoftWindowsServer',
84
+ offer: 'WindowsServer',
85
+ sku: '2019-datacenter-gensecond',
86
+ version: 'latest',
87
+ },
88
+ };
89
+ // Disk type mappings
90
+ export const DISK_TYPES = {
91
+ 'standard': 'Standard_LRS',
92
+ 'premium': 'Premium_LRS',
93
+ 'ultra': 'UltraSSD_LRS',
94
+ };
95
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/azure-infra/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgKH,mBAAmB;AACnB,MAAM,CAAC,MAAM,eAAe,GAAgG;IAC1H,OAAO,EAAE;QACP,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,iDAAiD;KAC/D;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,uCAAuC;KACrD;IACD,OAAO,EAAE;QACP,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,wCAAwC;KACtD;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,yCAAyC;KACvD;IACD,mBAAmB,EAAE;QACnB,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,CAAC;QACX,WAAW,EAAE,yCAAyC;KACvD;IACD,kBAAkB,EAAE;QAClB,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,EAAE;QACZ,WAAW,EAAE,yCAAyC;KACvD;IACD,KAAK,EAAE;QACL,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,CAAC;QACP,QAAQ,EAAE,GAAG;QACb,WAAW,EAAE,8CAA8C;KAC5D;CACF,CAAC;AAEF,oBAAoB;AACpB,MAAM,CAAC,MAAM,SAAS,GAAuF;IAC3G,cAAc,EAAE;QACd,SAAS,EAAE,WAAW;QACtB,KAAK,EAAE,8BAA8B;QACrC,GAAG,EAAE,gBAAgB;QACrB,OAAO,EAAE,QAAQ;KAClB;IACD,cAAc,EAAE;QACd,SAAS,EAAE,WAAW;QACtB,KAAK,EAAE,8BAA8B;QACrC,GAAG,EAAE,gBAAgB;QACrB,OAAO,EAAE,QAAQ;KAClB;IACD,WAAW,EAAE;QACX,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,WAAW;QAClB,GAAG,EAAE,SAAS;QACd,OAAO,EAAE,QAAQ;KAClB;IACD,QAAQ,EAAE;QACR,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,MAAM;QACb,GAAG,EAAE,YAAY;QACjB,OAAO,EAAE,QAAQ;KAClB;IACD,cAAc,EAAE;QACd,SAAS,EAAE,wBAAwB;QACnC,KAAK,EAAE,eAAe;QACtB,GAAG,EAAE,+BAA+B;QACpC,OAAO,EAAE,QAAQ;KAClB;IACD,cAAc,EAAE;QACd,SAAS,EAAE,wBAAwB;QACnC,KAAK,EAAE,eAAe;QACtB,GAAG,EAAE,2BAA2B;QAChC,OAAO,EAAE,QAAQ;KAClB;CACF,CAAC;AAEF,qBAAqB;AACrB,MAAM,CAAC,MAAM,UAAU,GAA2B;IAChD,UAAU,EAAE,cAAc;IAC1B,SAAS,EAAE,aAAa;IACxB,OAAO,EAAE,cAAc;CACxB,CAAC"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Cloud Performance Test Executor
3
+ *
4
+ * This module provides end-to-end automated cloud performance testing:
5
+ * 1. Provision or reuse an Azure VM
6
+ * 2. Install JMeter on the VM
7
+ * 3. Upload the JMX test script
8
+ * 4. Execute the performance test
9
+ * 5. Download and return results
10
+ * 6. Optionally cleanup resources
11
+ */
12
+ export { analyzeTestResults } from './result-analyzer.js';
13
+ export type { TestResultAnalysis } from './result-analyzer.js';
14
+ export { getVMMetrics } from './vm-metrics.js';
15
+ export type { VMMetrics, VMMetricsConfig } from './vm-metrics.js';
16
+ export interface CloudTestConfig {
17
+ jmxFilePath: string;
18
+ vmName?: string;
19
+ resourceGroup?: string;
20
+ subscriptionId?: string;
21
+ region?: string;
22
+ vmSize?: 'small' | 'medium' | 'large' | 'xlarge';
23
+ reuseExistingVM?: boolean;
24
+ existingVMIp?: string;
25
+ sshKeyPath?: string;
26
+ cleanupAfterTest?: boolean;
27
+ testDurationMinutes?: number;
28
+ outputPath?: string;
29
+ }
30
+ export interface CloudTestResult {
31
+ success: boolean;
32
+ vmInfo?: {
33
+ name: string;
34
+ resourceGroup: string;
35
+ publicIp: string;
36
+ sshKeyPath: string;
37
+ };
38
+ testExecution?: {
39
+ startTime: string;
40
+ endTime: string;
41
+ durationSeconds: number;
42
+ };
43
+ results?: {
44
+ localPath: string;
45
+ jtlFile?: string;
46
+ summary?: string;
47
+ totalRequests?: number;
48
+ errorRate?: number;
49
+ avgResponseTime?: number;
50
+ };
51
+ error?: string;
52
+ cleanedUp?: boolean;
53
+ }
54
+ /**
55
+ * Main function: Run cloud performance test end-to-end
56
+ */
57
+ export declare function runCloudPerformanceTest(config: CloudTestConfig): Promise<CloudTestResult>;
58
+ /**
59
+ * Get recommended VM configuration based on JMX analysis
60
+ */
61
+ export declare function getVMRecommendation(jmxFilePath: string): {
62
+ recommendedSize: string;
63
+ threadCount: number;
64
+ duration: number;
65
+ estimatedCost: string;
66
+ description: string;
67
+ };
68
+ /**
69
+ * Cleanup Azure resources - Delete resource group using Terraform destroy (primary) or Azure CLI (fallback)
70
+ */
71
+ export declare function cleanupAzureResources(resourceGroup: string, terraformDir?: string, force?: boolean): Promise<{
72
+ success: boolean;
73
+ message: string;
74
+ method?: string;
75
+ steps?: string[];
76
+ verificationStatus?: string;
77
+ }>;
78
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/cloud-executor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAQlE,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IACjD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,aAAa,CAAC,EAAE;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAsMD;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAiL/F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG;IACxD,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAsBA;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC;IACzH,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B,CAAC,CA0JD"}