@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,361 @@
1
+ /**
2
+ * Azure Infrastructure Configuration Parser
3
+ * Parses natural language descriptions into VM configurations
4
+ */
5
+ import { VM_SIZE_PRESETS, OS_IMAGES, DISK_TYPES, } from './types.js';
6
+ /**
7
+ * Parse natural language VM description into structured config
8
+ */
9
+ export function parseVMDescription(description) {
10
+ const config = {
11
+ name: extractVMName(description) || `vm-${Date.now()}`,
12
+ };
13
+ // Parse size/performance requirements
14
+ const sizePreset = extractSizePreset(description);
15
+ if (sizePreset) {
16
+ config.sizePreset = sizePreset;
17
+ }
18
+ else {
19
+ // Try to extract specific requirements
20
+ const cpuCores = extractNumber(description, /(\d+)\s*(cpu|core|vcpu)/i);
21
+ const memoryGB = extractNumber(description, /(\d+)\s*(gb|gig)?\s*(ram|memory)/i);
22
+ if (cpuCores)
23
+ config.cpuCores = cpuCores;
24
+ if (memoryGB)
25
+ config.memoryGB = memoryGB;
26
+ }
27
+ // Parse OS
28
+ config.os = extractOS(description);
29
+ // Parse region
30
+ config.region = extractRegion(description);
31
+ // Parse disk requirements
32
+ const diskSize = extractNumber(description, /(\d+)\s*(gb|gig)?\s*(disk|storage|ssd)/i);
33
+ if (diskSize)
34
+ config.diskSizeGB = diskSize;
35
+ if (/premium|ssd|fast/i.test(description)) {
36
+ config.diskType = 'premium';
37
+ }
38
+ else if (/ultra/i.test(description)) {
39
+ config.diskType = 'ultra';
40
+ }
41
+ // Parse networking
42
+ if (/public\s*ip|internet|external|exposed/i.test(description)) {
43
+ config.publicIP = true;
44
+ }
45
+ // Parse common ports
46
+ const ports = extractPorts(description);
47
+ if (ports.length > 0) {
48
+ config.openPorts = ports;
49
+ }
50
+ // Parse spot instance
51
+ if (/spot|preemptible|cheap|budget/i.test(description)) {
52
+ config.spotInstance = true;
53
+ }
54
+ // Parse auto-shutdown
55
+ const shutdownTime = extractShutdownTime(description);
56
+ if (shutdownTime) {
57
+ config.autoShutdown = shutdownTime;
58
+ }
59
+ // Parse resource group
60
+ const rgMatch = description.match(/resource\s*group[:\s]+["']?([a-zA-Z0-9-_]+)["']?/i);
61
+ if (rgMatch) {
62
+ config.resourceGroup = rgMatch[1];
63
+ }
64
+ // Parse tags from description
65
+ config.tags = extractTags(description);
66
+ return config;
67
+ }
68
+ /**
69
+ * Extract VM name from description
70
+ */
71
+ function extractVMName(description) {
72
+ const patterns = [
73
+ /(?:vm|machine|server)\s*(?:named?|called?)\s*["']?([a-zA-Z0-9-_]+)["']?/i,
74
+ /name[:\s]+["']?([a-zA-Z0-9-_]+)["']?/i,
75
+ /["']([a-zA-Z0-9-_]+-vm)["']?/i,
76
+ ];
77
+ for (const pattern of patterns) {
78
+ const match = description.match(pattern);
79
+ if (match)
80
+ return match[1];
81
+ }
82
+ return null;
83
+ }
84
+ /**
85
+ * Extract size preset from description
86
+ */
87
+ function extractSizePreset(description) {
88
+ const lower = description.toLowerCase();
89
+ if (/gpu|nvidia|cuda|ml|machine learning|deep learning/i.test(description)) {
90
+ return 'gpu';
91
+ }
92
+ if (/memory.?optimized|high.?memory|lot of ram|lots of ram/i.test(description)) {
93
+ return 'memory-optimized';
94
+ }
95
+ if (/compute.?optimized|cpu.?intensive|high.?cpu/i.test(description)) {
96
+ return 'compute-optimized';
97
+ }
98
+ if (/xlarge|x-large|extra.?large|very large|8.*core|32.*gb/i.test(description)) {
99
+ return 'xlarge';
100
+ }
101
+ if (/large|4.*core|16.*gb/i.test(description)) {
102
+ return 'large';
103
+ }
104
+ if (/medium|2.*core|8.*gb/i.test(description)) {
105
+ return 'medium';
106
+ }
107
+ if (/small|tiny|minimal|basic|budget|cheap|1.*core|2.*gb/i.test(description)) {
108
+ return 'small';
109
+ }
110
+ return null;
111
+ }
112
+ /**
113
+ * Extract OS type from description
114
+ */
115
+ function extractOS(description) {
116
+ const lower = description.toLowerCase();
117
+ if (/ubuntu\s*22|jammy/i.test(description))
118
+ return 'ubuntu-22.04';
119
+ if (/ubuntu\s*20|focal/i.test(description))
120
+ return 'ubuntu-20.04';
121
+ if (/debian|bullseye/i.test(description))
122
+ return 'debian-11';
123
+ if (/rhel|red\s*hat|centos/i.test(description))
124
+ return 'rhel-8';
125
+ if (/windows\s*2022|win\s*2022/i.test(description))
126
+ return 'windows-2022';
127
+ if (/windows\s*2019|win\s*2019/i.test(description))
128
+ return 'windows-2019';
129
+ if (/windows/i.test(description))
130
+ return 'windows-2022';
131
+ if (/linux|ubuntu/i.test(description))
132
+ return 'ubuntu-22.04';
133
+ // Default to Ubuntu 22.04
134
+ return 'ubuntu-22.04';
135
+ }
136
+ /**
137
+ * Extract Azure region from description
138
+ */
139
+ function extractRegion(description) {
140
+ const regionMappings = {
141
+ 'east us': 'eastus',
142
+ 'eastus': 'eastus',
143
+ 'east us 2': 'eastus2',
144
+ 'eastus2': 'eastus2',
145
+ 'west us': 'westus',
146
+ 'westus': 'westus',
147
+ 'west us 2': 'westus2',
148
+ 'westus2': 'westus2',
149
+ 'west us 3': 'westus3',
150
+ 'westus3': 'westus3',
151
+ 'central us': 'centralus',
152
+ 'centralus': 'centralus',
153
+ 'west europe': 'westeurope',
154
+ 'westeurope': 'westeurope',
155
+ 'north europe': 'northeurope',
156
+ 'northeurope': 'northeurope',
157
+ 'uk south': 'uksouth',
158
+ 'uksouth': 'uksouth',
159
+ 'east asia': 'eastasia',
160
+ 'eastasia': 'eastasia',
161
+ 'southeast asia': 'southeastasia',
162
+ 'southeastasia': 'southeastasia',
163
+ 'japan': 'japaneast',
164
+ 'japaneast': 'japaneast',
165
+ 'australia': 'australiaeast',
166
+ 'australiaeast': 'australiaeast',
167
+ 'brazil': 'brazilsouth',
168
+ 'brazilsouth': 'brazilsouth',
169
+ 'canada': 'canadacentral',
170
+ 'canadacentral': 'canadacentral',
171
+ 'india': 'centralindia',
172
+ 'centralindia': 'centralindia',
173
+ };
174
+ const lower = description.toLowerCase();
175
+ for (const [keyword, region] of Object.entries(regionMappings)) {
176
+ if (lower.includes(keyword)) {
177
+ return region;
178
+ }
179
+ }
180
+ // Default to eastus
181
+ return 'eastus';
182
+ }
183
+ /**
184
+ * Extract common ports from description
185
+ */
186
+ function extractPorts(description) {
187
+ const ports = new Set();
188
+ // Common service keywords
189
+ if (/ssh/i.test(description))
190
+ ports.add(22);
191
+ if (/http(?!s)/i.test(description))
192
+ ports.add(80);
193
+ if (/https|ssl|tls/i.test(description))
194
+ ports.add(443);
195
+ if (/rdp|remote desktop/i.test(description))
196
+ ports.add(3389);
197
+ if (/mysql/i.test(description))
198
+ ports.add(3306);
199
+ if (/postgres/i.test(description))
200
+ ports.add(5432);
201
+ if (/mongodb/i.test(description))
202
+ ports.add(27017);
203
+ if (/redis/i.test(description))
204
+ ports.add(6379);
205
+ // Extract explicit port numbers
206
+ const portMatches = description.matchAll(/port[s]?\s*:?\s*([\d,\s]+)/gi);
207
+ for (const match of portMatches) {
208
+ const portNums = match[1].match(/\d+/g);
209
+ if (portNums) {
210
+ portNums.forEach(p => ports.add(parseInt(p, 10)));
211
+ }
212
+ }
213
+ // Always include SSH for Linux
214
+ if (!/windows/i.test(description) && ports.size === 0) {
215
+ ports.add(22);
216
+ }
217
+ return Array.from(ports);
218
+ }
219
+ /**
220
+ * Extract auto-shutdown time
221
+ */
222
+ function extractShutdownTime(description) {
223
+ const timeMatch = description.match(/shutdown\s*(?:at)?\s*(\d{1,2}):?(\d{2})?\s*(am|pm)?/i);
224
+ if (timeMatch) {
225
+ let hour = parseInt(timeMatch[1], 10);
226
+ const minute = timeMatch[2] ? timeMatch[2] : '00';
227
+ const ampm = timeMatch[3]?.toLowerCase();
228
+ if (ampm === 'pm' && hour < 12)
229
+ hour += 12;
230
+ if (ampm === 'am' && hour === 12)
231
+ hour = 0;
232
+ return `${hour.toString().padStart(2, '0')}:${minute}`;
233
+ }
234
+ if (/auto.?shutdown|shutdown\s*at\s*night/i.test(description)) {
235
+ return '19:00'; // Default 7 PM
236
+ }
237
+ return null;
238
+ }
239
+ /**
240
+ * Extract tags from description
241
+ */
242
+ function extractTags(description) {
243
+ const tags = {
244
+ 'created-by': 'performance-agent-mcp',
245
+ 'created-at': new Date().toISOString(),
246
+ };
247
+ // Environment tags
248
+ if (/prod|production/i.test(description)) {
249
+ tags['environment'] = 'production';
250
+ }
251
+ else if (/staging|stage/i.test(description)) {
252
+ tags['environment'] = 'staging';
253
+ }
254
+ else if (/dev|development/i.test(description)) {
255
+ tags['environment'] = 'development';
256
+ }
257
+ else if (/test/i.test(description)) {
258
+ tags['environment'] = 'test';
259
+ }
260
+ // Purpose tags
261
+ if (/jmeter|load test|performance test/i.test(description)) {
262
+ tags['purpose'] = 'performance-testing';
263
+ }
264
+ else if (/web|api/i.test(description)) {
265
+ tags['purpose'] = 'web-server';
266
+ }
267
+ else if (/database|db/i.test(description)) {
268
+ tags['purpose'] = 'database';
269
+ }
270
+ return tags;
271
+ }
272
+ /**
273
+ * Extract number from pattern
274
+ */
275
+ function extractNumber(text, pattern) {
276
+ const match = text.match(pattern);
277
+ if (match) {
278
+ return parseInt(match[1], 10);
279
+ }
280
+ return null;
281
+ }
282
+ /**
283
+ * Resolve VM configuration with all defaults
284
+ */
285
+ export function resolveVMConfig(input) {
286
+ // Determine VM size
287
+ let vmSize;
288
+ if (input.customSize) {
289
+ vmSize = input.customSize;
290
+ }
291
+ else if (input.sizePreset) {
292
+ vmSize = VM_SIZE_PRESETS[input.sizePreset].size;
293
+ }
294
+ else if (input.cpuCores && input.memoryGB) {
295
+ vmSize = inferVMSize(input.cpuCores, input.memoryGB);
296
+ }
297
+ else {
298
+ vmSize = VM_SIZE_PRESETS['medium'].size;
299
+ }
300
+ // Determine OS image
301
+ const os = input.os || 'ubuntu-22.04';
302
+ const imageReference = OS_IMAGES[os];
303
+ // Determine disk configuration
304
+ const diskSizeGB = input.diskSizeGB || 64;
305
+ const diskType = input.diskType || 'premium';
306
+ const storageAccountType = DISK_TYPES[diskType] || DISK_TYPES['premium'];
307
+ // Build network config
308
+ const networkConfig = {
309
+ publicIP: input.publicIP ?? true,
310
+ openPorts: input.openPorts || [22],
311
+ vnetName: input.vnetName || `${input.name}-vnet`,
312
+ subnetName: input.subnetName || 'default',
313
+ nsgName: `${input.name}-nsg`,
314
+ };
315
+ return {
316
+ name: input.name,
317
+ resourceGroup: input.resourceGroup || `rg-${input.name}`,
318
+ subscriptionId: input.subscriptionId,
319
+ useExistingResourceGroup: input.useExistingResourceGroup,
320
+ vmSize,
321
+ imageReference,
322
+ region: input.region || 'eastus',
323
+ osDisk: {
324
+ sizeGB: diskSizeGB,
325
+ storageAccountType,
326
+ },
327
+ dataDisks: [],
328
+ networkConfig,
329
+ adminUsername: input.adminUsername || 'azureuser',
330
+ sshPublicKey: input.sshKeyPath,
331
+ tags: input.tags || { 'created-by': 'performance-agent-mcp' },
332
+ priority: input.spotInstance ? 'Spot' : 'Regular',
333
+ autoShutdownTime: input.autoShutdown,
334
+ customScript: input.customScript,
335
+ };
336
+ }
337
+ /**
338
+ * Infer appropriate VM size from CPU and memory requirements
339
+ */
340
+ function inferVMSize(cpuCores, memoryGB) {
341
+ // Find best matching preset
342
+ for (const [preset, config] of Object.entries(VM_SIZE_PRESETS)) {
343
+ if (config.cpus >= cpuCores && config.memoryGB >= memoryGB) {
344
+ return config.size;
345
+ }
346
+ }
347
+ // Default to D-series general purpose
348
+ if (memoryGB / cpuCores >= 8) {
349
+ // Memory optimized ratio
350
+ return `Standard_E${cpuCores}s_v3`;
351
+ }
352
+ else if (memoryGB / cpuCores <= 2) {
353
+ // Compute optimized ratio
354
+ return `Standard_F${cpuCores}s_v2`;
355
+ }
356
+ else {
357
+ // General purpose
358
+ return `Standard_D${cpuCores}s_v3`;
359
+ }
360
+ }
361
+ //# sourceMappingURL=config-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-parser.js","sourceRoot":"","sources":["../../../src/tools/azure-infra/config-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Azure Infrastructure Provisioning Tool
3
+ * Main entry point for VM provisioning via MCP
4
+ */
5
+ import { ProvisionVMArgs, ProvisionResult, AzureSubscription, AzureResourceGroup } from './types.js';
6
+ /**
7
+ * List all Azure subscriptions the user has access to
8
+ */
9
+ export declare function listAzureSubscriptions(): Promise<{
10
+ success: boolean;
11
+ subscriptions?: AzureSubscription[];
12
+ currentSubscription?: AzureSubscription;
13
+ error?: string;
14
+ }>;
15
+ /**
16
+ * Set the active Azure subscription
17
+ */
18
+ export declare function setAzureSubscription(subscriptionId: string): Promise<{
19
+ success: boolean;
20
+ message?: string;
21
+ error?: string;
22
+ }>;
23
+ /**
24
+ * List resource groups in the current subscription
25
+ */
26
+ export declare function listResourceGroups(subscriptionId?: string): Promise<{
27
+ success: boolean;
28
+ resourceGroups?: AzureResourceGroup[];
29
+ error?: string;
30
+ }>;
31
+ /**
32
+ * Main function to provision Azure VM
33
+ */
34
+ export declare function provisionAzureVM(args: ProvisionVMArgs): Promise<ProvisionResult>;
35
+ /**
36
+ * Get available VM size presets
37
+ */
38
+ export declare function getVMSizePresets(): Record<import("./types.js").VMSizePreset, {
39
+ size: string;
40
+ cpus: number;
41
+ memoryGB: number;
42
+ description: string;
43
+ }>;
44
+ /**
45
+ * Validate Azure CLI and Terraform availability
46
+ */
47
+ export declare function checkPrerequisites(): {
48
+ azureCli: boolean;
49
+ azureLoggedIn: boolean;
50
+ terraform: boolean;
51
+ };
52
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/azure-infra/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACL,eAAe,EACf,eAAe,EAIf,iBAAiB,EACjB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAsDpB;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC;IACtD,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAsCD;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC;IAC1E,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAaD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,kBAAkB,EAAE,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CA4BD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAsCtF;AAqSD;;GAEG;AACH,wBAAgB,gBAAgB;;;;;GAE/B;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB,CAqBA"}