cloud-cost-mcp 1.1.0 → 1.2.1
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 +23 -0
- package/dist/data/bundled/oci-pricing.json +130 -0
- package/dist/data/loader.d.ts +9 -1
- package/dist/data/loader.d.ts.map +1 -1
- package/dist/data/loader.js +28 -0
- package/dist/data/loader.js.map +1 -1
- package/dist/index.js +106 -3
- package/dist/index.js.map +1 -1
- package/dist/tools/calculator.d.ts +4 -1
- package/dist/tools/calculator.d.ts.map +1 -1
- package/dist/tools/calculator.js +95 -31
- package/dist/tools/calculator.js.map +1 -1
- package/dist/tools/gpu.d.ts +74 -0
- package/dist/tools/gpu.d.ts.map +1 -0
- package/dist/tools/gpu.js +222 -0
- package/dist/tools/gpu.js.map +1 -0
- package/dist/types.d.ts +21 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Multi-cloud pricing comparison MCP server for AWS, Azure, GCP, and OCI. Compare compute, storage, egress, and Kubernetes costs across all major cloud providers with a single query.
|
|
4
4
|
|
|
5
|
+
> **⚠️ DISCLAIMER**: All pricing data is retrieved from publicly available APIs and data sources including [instances.vantage.sh](https://instances.vantage.sh), Azure Retail Prices API, and Oracle Cloud Price List API. This data is provided for informational and estimation purposes only. **Cloud pricing changes frequently and may vary by region, account type, commitment terms, and other factors.** Users are solely responsible for verifying all pricing information directly with cloud providers before making any purchasing or architectural decisions. The authors make no warranties about the accuracy, completeness, or timeliness of this data.
|
|
6
|
+
|
|
5
7
|
## Features
|
|
6
8
|
|
|
7
9
|
- **Comprehensive Coverage**: 2,700+ instance types across all providers
|
|
@@ -76,6 +78,15 @@ Once installed, just ask Claude:
|
|
|
76
78
|
```
|
|
77
79
|
"Quick estimate for a medium API server"
|
|
78
80
|
"Compare all clouds for a kubernetes-cluster preset"
|
|
81
|
+
"Estimate cost for gpu-training-large preset"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
### GPU Pricing (OCI)
|
|
85
|
+
```
|
|
86
|
+
"List all available GPU shapes"
|
|
87
|
+
"Compare A100 vs H100 GPU pricing"
|
|
88
|
+
"What GPU should I use for ML training with 80GB memory?"
|
|
89
|
+
"Get details for BM.GPU.H100.8"
|
|
79
90
|
```
|
|
80
91
|
|
|
81
92
|
### Migration Planning
|
|
@@ -103,6 +114,8 @@ Once installed, just ask Claude:
|
|
|
103
114
|
| `estimate_migration_savings` | Calculate migration savings |
|
|
104
115
|
| `list_presets` | List available deployment presets |
|
|
105
116
|
|
|
117
|
+
**Available presets**: `small-web-app`, `medium-api-server`, `large-database`, `ml-training`, `kubernetes-cluster`, `data-lake`, `high-egress-cdn`, `high-traffic-web`, `gpu-inference`, `gpu-training-small`, `gpu-training-large`
|
|
118
|
+
|
|
106
119
|
### Data Management Tools
|
|
107
120
|
| Tool | Description |
|
|
108
121
|
|------|-------------|
|
|
@@ -142,6 +155,16 @@ Once installed, just ask Claude:
|
|
|
142
155
|
| `refresh_oci_pricing` | Fetch live OCI pricing (public API) |
|
|
143
156
|
| `list_oci_categories` | List OCI service categories |
|
|
144
157
|
|
|
158
|
+
### GPU Tools (OCI)
|
|
159
|
+
| Tool | Description |
|
|
160
|
+
|------|-------------|
|
|
161
|
+
| `list_gpu_shapes` | List GPU shapes with filtering by model, use case, price |
|
|
162
|
+
| `get_gpu_shape_details` | Get detailed specs and pricing for a GPU shape |
|
|
163
|
+
| `compare_gpu_shapes` | Compare multiple GPU shapes side-by-side |
|
|
164
|
+
| `recommend_gpu_shape` | Get GPU recommendation based on workload type |
|
|
165
|
+
|
|
166
|
+
**Available GPU shapes**: A10, A100 80GB, H100 80GB, H200 141GB, L40S, MI300X
|
|
167
|
+
|
|
145
168
|
#### Status
|
|
146
169
|
| Tool | Description |
|
|
147
170
|
|------|-------------|
|
|
@@ -286,5 +286,135 @@
|
|
|
286
286
|
"monthlyPrice": 0.0,
|
|
287
287
|
"notes": "Pay per read/write units. 25GB Always Free."
|
|
288
288
|
}
|
|
289
|
+
],
|
|
290
|
+
"gpu": [
|
|
291
|
+
{
|
|
292
|
+
"service": "gpu",
|
|
293
|
+
"shapeFamily": "BM.GPU.A10.4",
|
|
294
|
+
"type": "nvidia-a10",
|
|
295
|
+
"name": "NVIDIA A10 Bare Metal",
|
|
296
|
+
"description": "4x NVIDIA A10 GPUs for inference workloads",
|
|
297
|
+
"gpuCount": 4,
|
|
298
|
+
"gpuModel": "NVIDIA A10",
|
|
299
|
+
"gpuMemoryGB": 24,
|
|
300
|
+
"ocpus": 64,
|
|
301
|
+
"memoryGB": 1024,
|
|
302
|
+
"pricePerHour": 2.95,
|
|
303
|
+
"currency": "USD",
|
|
304
|
+
"useCase": "inference",
|
|
305
|
+
"notes": "Best for AI inference, graphics rendering, and video processing"
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"service": "gpu",
|
|
309
|
+
"shapeFamily": "VM.GPU.A10.1",
|
|
310
|
+
"type": "nvidia-a10",
|
|
311
|
+
"name": "NVIDIA A10 VM (1 GPU)",
|
|
312
|
+
"description": "1x NVIDIA A10 GPU VM for inference",
|
|
313
|
+
"gpuCount": 1,
|
|
314
|
+
"gpuModel": "NVIDIA A10",
|
|
315
|
+
"gpuMemoryGB": 24,
|
|
316
|
+
"ocpus": 15,
|
|
317
|
+
"memoryGB": 240,
|
|
318
|
+
"pricePerHour": 1.65,
|
|
319
|
+
"currency": "USD",
|
|
320
|
+
"useCase": "inference",
|
|
321
|
+
"notes": "Single GPU VM for smaller inference workloads"
|
|
322
|
+
},
|
|
323
|
+
{
|
|
324
|
+
"service": "gpu",
|
|
325
|
+
"shapeFamily": "VM.GPU.A10.2",
|
|
326
|
+
"type": "nvidia-a10",
|
|
327
|
+
"name": "NVIDIA A10 VM (2 GPU)",
|
|
328
|
+
"description": "2x NVIDIA A10 GPUs VM for inference",
|
|
329
|
+
"gpuCount": 2,
|
|
330
|
+
"gpuModel": "NVIDIA A10",
|
|
331
|
+
"gpuMemoryGB": 24,
|
|
332
|
+
"ocpus": 30,
|
|
333
|
+
"memoryGB": 480,
|
|
334
|
+
"pricePerHour": 2.30,
|
|
335
|
+
"currency": "USD",
|
|
336
|
+
"useCase": "inference",
|
|
337
|
+
"notes": "Dual GPU VM for medium inference workloads"
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"service": "gpu",
|
|
341
|
+
"shapeFamily": "BM.GPU.A100-v2.8",
|
|
342
|
+
"type": "nvidia-a100",
|
|
343
|
+
"name": "NVIDIA A100 Bare Metal (8x 80GB)",
|
|
344
|
+
"description": "8x NVIDIA A100 80GB GPUs for large-scale training",
|
|
345
|
+
"gpuCount": 8,
|
|
346
|
+
"gpuModel": "NVIDIA A100 80GB",
|
|
347
|
+
"gpuMemoryGB": 80,
|
|
348
|
+
"ocpus": 128,
|
|
349
|
+
"memoryGB": 2048,
|
|
350
|
+
"pricePerHour": 17.00,
|
|
351
|
+
"currency": "USD",
|
|
352
|
+
"useCase": "training",
|
|
353
|
+
"notes": "High-bandwidth NVLink interconnect, ideal for distributed training"
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
"service": "gpu",
|
|
357
|
+
"shapeFamily": "BM.GPU.H100.8",
|
|
358
|
+
"type": "nvidia-h100",
|
|
359
|
+
"name": "NVIDIA H100 Bare Metal (8x 80GB)",
|
|
360
|
+
"description": "8x NVIDIA H100 80GB GPUs for large-scale AI",
|
|
361
|
+
"gpuCount": 8,
|
|
362
|
+
"gpuModel": "NVIDIA H100 80GB",
|
|
363
|
+
"gpuMemoryGB": 80,
|
|
364
|
+
"ocpus": 112,
|
|
365
|
+
"memoryGB": 2048,
|
|
366
|
+
"pricePerHour": 36.00,
|
|
367
|
+
"currency": "USD",
|
|
368
|
+
"useCase": "training",
|
|
369
|
+
"notes": "Latest generation, 4th Gen Tensor Cores, Transformer Engine"
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"service": "gpu",
|
|
373
|
+
"shapeFamily": "BM.GPU.L40S.4",
|
|
374
|
+
"type": "nvidia-l40s",
|
|
375
|
+
"name": "NVIDIA L40S Bare Metal (4 GPU)",
|
|
376
|
+
"description": "4x NVIDIA L40S GPUs for inference and graphics",
|
|
377
|
+
"gpuCount": 4,
|
|
378
|
+
"gpuModel": "NVIDIA L40S",
|
|
379
|
+
"gpuMemoryGB": 48,
|
|
380
|
+
"ocpus": 64,
|
|
381
|
+
"memoryGB": 1024,
|
|
382
|
+
"pricePerHour": 3.50,
|
|
383
|
+
"currency": "USD",
|
|
384
|
+
"useCase": "inference",
|
|
385
|
+
"notes": "Ada Lovelace architecture, excellent for inference and visualization"
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"service": "gpu",
|
|
389
|
+
"shapeFamily": "BM.GPU.H200.8",
|
|
390
|
+
"type": "nvidia-h200",
|
|
391
|
+
"name": "NVIDIA H200 Bare Metal (8x 141GB)",
|
|
392
|
+
"description": "8x NVIDIA H200 141GB HBM3e GPUs for next-gen AI",
|
|
393
|
+
"gpuCount": 8,
|
|
394
|
+
"gpuModel": "NVIDIA H200",
|
|
395
|
+
"gpuMemoryGB": 141,
|
|
396
|
+
"ocpus": 112,
|
|
397
|
+
"memoryGB": 2048,
|
|
398
|
+
"pricePerHour": 45.00,
|
|
399
|
+
"currency": "USD",
|
|
400
|
+
"useCase": "training",
|
|
401
|
+
"notes": "HBM3e memory for massive models, 1.9x H100 memory bandwidth"
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
"service": "gpu",
|
|
405
|
+
"shapeFamily": "BM.GPU.MI300X.8",
|
|
406
|
+
"type": "amd-mi300x",
|
|
407
|
+
"name": "AMD MI300X Bare Metal (8 GPU)",
|
|
408
|
+
"description": "8x AMD Instinct MI300X GPUs for AI workloads",
|
|
409
|
+
"gpuCount": 8,
|
|
410
|
+
"gpuModel": "AMD Instinct MI300X",
|
|
411
|
+
"gpuMemoryGB": 192,
|
|
412
|
+
"ocpus": 128,
|
|
413
|
+
"memoryGB": 2048,
|
|
414
|
+
"pricePerHour": 6.00,
|
|
415
|
+
"currency": "USD",
|
|
416
|
+
"useCase": "training",
|
|
417
|
+
"notes": "192GB HBM3 per GPU, competitive alternative to NVIDIA"
|
|
418
|
+
}
|
|
289
419
|
]
|
|
290
420
|
}
|
package/dist/data/loader.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Cloud Cost MCP - Data Loader
|
|
3
3
|
* Loads pricing data from bundled JSON files for all cloud providers
|
|
4
4
|
*/
|
|
5
|
-
import type { CloudProvider, ProviderPricingData, AllCloudPricing, ComputeInstance, StoragePricing, EgressPricing, DataFreshnessInfo } from '../types.js';
|
|
5
|
+
import type { CloudProvider, ProviderPricingData, AllCloudPricing, ComputeInstance, StoragePricing, EgressPricing, DataFreshnessInfo, GPUPricing } from '../types.js';
|
|
6
6
|
/**
|
|
7
7
|
* Get pricing data for a specific provider
|
|
8
8
|
*/
|
|
@@ -53,4 +53,12 @@ export declare function getAllDatabasePricing(): {
|
|
|
53
53
|
gcp: import("../types.js").DatabasePricing[];
|
|
54
54
|
oci: import("../types.js").DatabasePricing[];
|
|
55
55
|
};
|
|
56
|
+
/**
|
|
57
|
+
* Get GPU pricing data (currently OCI only)
|
|
58
|
+
*/
|
|
59
|
+
export declare function getGPUPricing(type?: string): GPUPricing[];
|
|
60
|
+
/**
|
|
61
|
+
* Get GPU shape by family name
|
|
62
|
+
*/
|
|
63
|
+
export declare function getGPUShapeByFamily(shapeFamily: string): GPUPricing | undefined;
|
|
56
64
|
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/data/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/data/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,UAAU,EACX,MAAM,aAAa,CAAC;AAerB;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,aAAa,GAAG,mBAAmB,CAW5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,eAAe,CAOpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,eAAe,EAAE,CAgB1D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,cAAc,EAAE,CAgBvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,aAAa,EAAE,CAQrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,iBAAiB,EAAE,CAoBtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,yCAE1D;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;GAEG;AACH,wBAAgB,uBAAuB;;;;;EAQtC;AAED;;GAEG;AACH,wBAAgB,qBAAqB;;;;;EAQpC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE,CAsBzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAK/E"}
|
package/dist/data/loader.js
CHANGED
|
@@ -146,4 +146,32 @@ export function getAllDatabasePricing() {
|
|
|
146
146
|
oci: allData.oci.database || [],
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* Get GPU pricing data (currently OCI only)
|
|
151
|
+
*/
|
|
152
|
+
export function getGPUPricing(type) {
|
|
153
|
+
const cached = pricingCache.get('GPU_PRICING');
|
|
154
|
+
let pricing;
|
|
155
|
+
if (cached) {
|
|
156
|
+
pricing = cached;
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
const ociData = getProviderData('oci');
|
|
160
|
+
pricing = ociData.gpu || [];
|
|
161
|
+
pricingCache.set('GPU_PRICING', pricing, 60);
|
|
162
|
+
}
|
|
163
|
+
if (type) {
|
|
164
|
+
return pricing.filter((p) => p.type === type ||
|
|
165
|
+
p.gpuModel.toLowerCase().includes(type.toLowerCase()) ||
|
|
166
|
+
p.shapeFamily.toLowerCase().includes(type.toLowerCase()));
|
|
167
|
+
}
|
|
168
|
+
return pricing;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Get GPU shape by family name
|
|
172
|
+
*/
|
|
173
|
+
export function getGPUShapeByFamily(shapeFamily) {
|
|
174
|
+
const pricing = getGPUPricing();
|
|
175
|
+
return pricing.find((p) => p.shapeFamily.toLowerCase() === shapeFamily.toLowerCase());
|
|
176
|
+
}
|
|
149
177
|
//# sourceMappingURL=loader.js.map
|
package/dist/data/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/data/loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/data/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -24,6 +24,8 @@ import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError, } f
|
|
|
24
24
|
import { compareCompute, compareStorage, compareEgress, compareKubernetes, findCheapestCompute, getStoragePricingSummary, } from './tools/compare.js';
|
|
25
25
|
// Import calculator tools
|
|
26
26
|
import { calculateWorkloadCost, quickEstimate, getAvailablePresets, estimateMigrationSavings, } from './tools/calculator.js';
|
|
27
|
+
// Import GPU tools
|
|
28
|
+
import { listGPUShapes, getGPUShapeDetails, compareGPUShapes, recommendGPUShape, } from './tools/gpu.js';
|
|
27
29
|
// Import data functions
|
|
28
30
|
import { getDataFreshness, getProviderData, } from './data/loader.js';
|
|
29
31
|
// Import real-time fetchers
|
|
@@ -34,7 +36,7 @@ import { fetchAWSEC2Pricing, fetchAWSRDSPricing, getAWSLightsailPricing, getAWSR
|
|
|
34
36
|
// Create server instance
|
|
35
37
|
const server = new Server({
|
|
36
38
|
name: 'cloud-cost-mcp',
|
|
37
|
-
version: '1.1
|
|
39
|
+
version: '1.2.1',
|
|
38
40
|
}, {
|
|
39
41
|
capabilities: {
|
|
40
42
|
tools: {},
|
|
@@ -192,13 +194,17 @@ const TOOLS = [
|
|
|
192
194
|
},
|
|
193
195
|
{
|
|
194
196
|
name: 'quick_estimate',
|
|
195
|
-
description: 'Get instant cost comparison for common deployment presets.',
|
|
197
|
+
description: 'Get instant cost comparison for common deployment presets including GPU workloads.',
|
|
196
198
|
inputSchema: {
|
|
197
199
|
type: 'object',
|
|
198
200
|
properties: {
|
|
199
201
|
preset: {
|
|
200
202
|
type: 'string',
|
|
201
|
-
enum: [
|
|
203
|
+
enum: [
|
|
204
|
+
'small-web-app', 'medium-api-server', 'large-database', 'ml-training',
|
|
205
|
+
'kubernetes-cluster', 'data-lake', 'high-egress-cdn', 'high-traffic-web',
|
|
206
|
+
'gpu-inference', 'gpu-training-small', 'gpu-training-large'
|
|
207
|
+
],
|
|
202
208
|
description: 'Deployment preset name',
|
|
203
209
|
},
|
|
204
210
|
},
|
|
@@ -525,6 +531,82 @@ const TOOLS = [
|
|
|
525
531
|
properties: {},
|
|
526
532
|
},
|
|
527
533
|
},
|
|
534
|
+
// GPU Tools (OCI)
|
|
535
|
+
{
|
|
536
|
+
name: 'list_gpu_shapes',
|
|
537
|
+
description: 'List OCI GPU shapes with pricing. Filter by GPU model (A10, A100, H100, H200, L40S, MI300X) or use case (inference, training).',
|
|
538
|
+
inputSchema: {
|
|
539
|
+
type: 'object',
|
|
540
|
+
properties: {
|
|
541
|
+
gpuModel: {
|
|
542
|
+
type: 'string',
|
|
543
|
+
description: 'Filter by GPU model (e.g., "A100", "H100", "MI300X")',
|
|
544
|
+
},
|
|
545
|
+
useCase: {
|
|
546
|
+
type: 'string',
|
|
547
|
+
enum: ['inference', 'training', 'graphics', 'general'],
|
|
548
|
+
description: 'Filter by intended use case',
|
|
549
|
+
},
|
|
550
|
+
maxPricePerHour: {
|
|
551
|
+
type: 'number',
|
|
552
|
+
description: 'Maximum hourly price filter',
|
|
553
|
+
},
|
|
554
|
+
},
|
|
555
|
+
},
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
name: 'get_gpu_shape_details',
|
|
559
|
+
description: 'Get detailed specifications and pricing for a specific OCI GPU shape.',
|
|
560
|
+
inputSchema: {
|
|
561
|
+
type: 'object',
|
|
562
|
+
properties: {
|
|
563
|
+
shapeFamily: {
|
|
564
|
+
type: 'string',
|
|
565
|
+
description: 'GPU shape family (e.g., "BM.GPU.H100.8", "BM.GPU.A100-v2.8", "VM.GPU.A10.1")',
|
|
566
|
+
},
|
|
567
|
+
},
|
|
568
|
+
required: ['shapeFamily'],
|
|
569
|
+
},
|
|
570
|
+
},
|
|
571
|
+
{
|
|
572
|
+
name: 'compare_gpu_shapes',
|
|
573
|
+
description: 'Compare multiple OCI GPU shapes side-by-side on specs, pricing, and price-per-GPU metrics.',
|
|
574
|
+
inputSchema: {
|
|
575
|
+
type: 'object',
|
|
576
|
+
properties: {
|
|
577
|
+
shapes: {
|
|
578
|
+
type: 'array',
|
|
579
|
+
items: { type: 'string' },
|
|
580
|
+
description: 'GPU shape families to compare (e.g., ["BM.GPU.A10.4", "BM.GPU.A100-v2.8", "BM.GPU.H100.8"])',
|
|
581
|
+
},
|
|
582
|
+
},
|
|
583
|
+
required: ['shapes'],
|
|
584
|
+
},
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
name: 'recommend_gpu_shape',
|
|
588
|
+
description: 'Get GPU shape recommendation based on workload requirements and budget.',
|
|
589
|
+
inputSchema: {
|
|
590
|
+
type: 'object',
|
|
591
|
+
properties: {
|
|
592
|
+
workloadType: {
|
|
593
|
+
type: 'string',
|
|
594
|
+
enum: ['inference', 'training', 'fine-tuning', 'data-science'],
|
|
595
|
+
description: 'Type of AI/ML workload',
|
|
596
|
+
},
|
|
597
|
+
minGPUMemoryGB: {
|
|
598
|
+
type: 'number',
|
|
599
|
+
description: 'Minimum GPU memory needed per GPU (e.g., 24, 40, 80)',
|
|
600
|
+
},
|
|
601
|
+
budget: {
|
|
602
|
+
type: 'string',
|
|
603
|
+
enum: ['low', 'medium', 'high'],
|
|
604
|
+
description: 'Budget constraint (low: <$5/hr, medium: <$20/hr, high: unlimited)',
|
|
605
|
+
},
|
|
606
|
+
},
|
|
607
|
+
required: ['workloadType'],
|
|
608
|
+
},
|
|
609
|
+
},
|
|
528
610
|
];
|
|
529
611
|
// Handle list tools request
|
|
530
612
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
@@ -682,6 +764,27 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
682
764
|
note: 'Azure VM categories with count of instance types',
|
|
683
765
|
};
|
|
684
766
|
break;
|
|
767
|
+
// GPU Tools (OCI)
|
|
768
|
+
case 'list_gpu_shapes':
|
|
769
|
+
result = listGPUShapes({
|
|
770
|
+
gpuModel: typedArgs.gpuModel,
|
|
771
|
+
useCase: typedArgs.useCase,
|
|
772
|
+
maxPricePerHour: typedArgs.maxPricePerHour,
|
|
773
|
+
});
|
|
774
|
+
break;
|
|
775
|
+
case 'get_gpu_shape_details':
|
|
776
|
+
result = getGPUShapeDetails(typedArgs.shapeFamily);
|
|
777
|
+
break;
|
|
778
|
+
case 'compare_gpu_shapes':
|
|
779
|
+
result = compareGPUShapes(typedArgs.shapes);
|
|
780
|
+
break;
|
|
781
|
+
case 'recommend_gpu_shape':
|
|
782
|
+
result = recommendGPUShape({
|
|
783
|
+
workloadType: typedArgs.workloadType,
|
|
784
|
+
minGPUMemoryGB: typedArgs.minGPUMemoryGB,
|
|
785
|
+
budget: typedArgs.budget,
|
|
786
|
+
});
|
|
787
|
+
break;
|
|
685
788
|
default:
|
|
686
789
|
throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
|
|
687
790
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,SAAS,EACT,QAAQ,GACT,MAAM,oCAAoC,CAAC;AAE5C,0BAA0B;AAC1B,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAE5B,0BAA0B;AAC1B,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,wBAAwB;AACxB,OAAO,EACL,gBAAgB,EAChB,eAAe,GAGhB,MAAM,kBAAkB,CAAC;AAE1B,4BAA4B;AAC5B,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACtG,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,yBAAyB;AACzB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;KACV;CACF,CACF,CAAC;AAEF,yBAAyB;AACzB,MAAM,KAAK,GAAG;IACZ,wBAAwB;IACxB;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,0HAA0H;QACvI,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACvC;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sBAAsB;iBACpC;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;oBAC/D,WAAW,EAAE,uCAAuC;iBACrD;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;SAChC;KACF;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,6DAA6D;QAC1E,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oBAAoB;iBAClC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC;oBACxC,WAAW,EAAE,wBAAwB;iBACtC;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;oBACzB,WAAW,EAAE,wBAAwB;iBACtC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,yFAAyF;QACtG,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6BAA6B;iBAC3C;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,qGAAqG;QAClH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,wBAAwB;iBACtC;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gBAAgB;iBAC9B;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uBAAuB;iBACrC;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC;SACrD;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,8DAA8D;QAC3E,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yBAAyB;iBACvC;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,sBAAsB;iBACpC;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;oBAC/D,WAAW,EAAE,uCAAuC;iBACrD;aACF;YACD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;SAChC;KACF;IAED,mBAAmB;IACnB;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,2HAA2H;QACxI,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,kCAAkC,EAAE;qBAC3E;oBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC;iBAChC;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,sBAAsB,EAAE;wBACjE,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE;qBAChE;iBACF;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,6BAA6B,EAAE;qBAC1E;iBACF;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC7B,YAAY,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBACjC;oBACD,QAAQ,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC;iBACrD;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,4DAA4D;QACzE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,eAAe,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,oBAAoB,EAAE,WAAW,EAAE,iBAAiB,CAAC;oBACnI,WAAW,EAAE,wBAAwB;iBACtC;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IACD;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,gFAAgF;QAC7F,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,eAAe,EAAE;oBACf,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;oBACpC,WAAW,EAAE,6BAA6B;iBAC3C;gBACD,cAAc,EAAE;oBACd,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;oBACpC,WAAW,EAAE,6DAA6D;iBAC3E;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC5B,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC1B;iBACF;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC5B;iBACF;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC9B;iBACF;aACF;YACD,QAAQ,EAAE,CAAC,iBAAiB,CAAC;SAC9B;KACF;IAED,wBAAwB;IACxB;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,4FAA4F;QACzG,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,0DAA0D;QACvE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC;oBACpC,WAAW,EAAE,gBAAgB;iBAC9B;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC;oBAChE,WAAW,EAAE,8BAA8B;iBAC5C;aACF;YACD,QAAQ,EAAE,CAAC,UAAU,CAAC;SACvB;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,mFAAmF;QAChG,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yCAAyC;iBACvD;aACF;YACD,QAAQ,EAAE,CAAC,QAAQ,CAAC;SACrB;KACF;IAED,sBAAsB;IACtB;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,oGAAoG;QACjH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gCAAgC;iBAC9C;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,qDAAqD;iBACnE;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,wGAAwG;QACrH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;iBAC5C;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yDAAyD;iBACvE;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8BAA8B;iBAC5C;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,0EAA0E;QACvF,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IAED,uEAAuE;IACvE;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,iKAAiK;QAC9K,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6EAA6E;iBAC3F;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0EAA0E;iBACxF;gBACD,YAAY,EAAE;oBACZ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;oBACpB,WAAW,EAAE,4BAA4B;iBAC1C;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,eAAe,EAAE;oBACf,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,mCAAmC;iBACjD;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EAAE,wGAAwG;QACrH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,gGAAgG;iBAC9G;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,6GAA6G;QAC1H,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,iCAAiC;iBAC/C;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,qDAAqD;QAClE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,kGAAkG;QAC/G,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IAED,gEAAgE;IAChE;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EAAE,sJAAsJ;QACnK,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+EAA+E;iBAC7F;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0EAA0E;iBACxF;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,2CAA2C;iBACzD;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EAAE,8EAA8E;QAC3F,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,yCAAyC;QACtD,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IAED,sDAAsD;IACtD;QACE,IAAI,EAAE,4BAA4B;QAClC,WAAW,EAAE,yIAAyI;QACtJ,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+EAA+E;iBAC7F;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,oFAAoF;iBAClG;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0CAA0C;iBACxD;aACF;SACF;KACF;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EAAE,uDAAuD;QACpE,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;IACD;QACE,IAAI,EAAE,uBAAuB;QAC7B,WAAW,EAAE,0FAA0F;QACvG,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE,EAAE;SACf;KACF;CACF,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC1B,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,IAAI,MAAe,CAAC;QAEpB,8DAA8D;QAC9D,MAAM,SAAS,GAAG,IAAW,CAAC;QAE9B,QAAQ,IAAI,EAAE,CAAC;YACb,mBAAmB;YACnB,KAAK,iBAAiB;gBACpB,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,iBAAiB;gBACpB,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,gBAAgB;gBACnB,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;gBAClC,MAAM;YACR,KAAK,oBAAoB;gBACvB,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBACtC,MAAM;YACR,KAAK,uBAAuB;gBAC1B,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBACxC,MAAM;YAER,mBAAmB;YACnB,KAAK,yBAAyB;gBAC5B,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;gBAC1C,MAAM;YACR,KAAK,gBAAgB;gBACnB,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACzC,MAAM;YACR,KAAK,cAAc;gBACjB,MAAM,GAAG,mBAAmB,EAAE,CAAC;gBAC/B,MAAM;YACR,KAAK,4BAA4B;gBAC/B,MAAM,GAAG,wBAAwB,CAAC;oBAChC,IAAI,EAAE;wBACJ,OAAO,EAAE,SAAS,CAAC,OAAO;wBAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;wBAC1B,MAAM,EAAE,SAAS,CAAC,MAAM;qBACzB;oBACD,eAAe,EAAE,SAAS,CAAC,eAAe;oBAC1C,cAAc,EAAE,SAAS,CAAC,cAAc;iBACzC,CAAC,CAAC;gBACH,MAAM;YAER,wBAAwB;YACxB,KAAK,oBAAoB;gBACvB,MAAM,GAAG;oBACP,SAAS,EAAE,gBAAgB,EAAE;oBAC7B,IAAI,EAAE,wJAAwJ;iBAC/J,CAAC;gBACF,MAAM;YACR,KAAK,sBAAsB,CAAC,CAAC,CAAC;gBAC5B,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;gBACjD,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;oBACvB,MAAM,GAAG;wBACP,QAAQ,EAAE,SAAS,CAAC,QAAQ;wBAC5B,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACvB,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAA6B,CAAC;qBACpE,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,MAAM,GAAG,IAAI,CAAC;gBAChB,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,qBAAqB;gBACxB,MAAM,GAAG,wBAAwB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBACpD,MAAM;YAER,sBAAsB;YACtB,KAAK,uBAAuB;gBAC1B,MAAM,GAAG;oBACP,SAAS,EAAE,MAAM,wBAAwB,CAAC,SAAS,CAAC;oBACpD,IAAI,EAAE,gDAAgD;oBACtD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC;gBACF,MAAM;YACR,KAAK,qBAAqB;gBACxB,MAAM,GAAG,MAAM,uBAAuB,CAAC,SAAS,CAAC,CAAC;gBAClD,MAAM;YACR,KAAK,qBAAqB;gBACxB,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAClC,MAAM;YACR,KAAK,kBAAkB;gBACrB,MAAM,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;oBACvE,mBAAmB,EAAE;oBACrB,iBAAiB,EAAE;oBACnB,iBAAiB,EAAE;oBACnB,iBAAiB,EAAE;iBACpB,CAAC,CAAC;gBACH,MAAM,GAAG;oBACP,GAAG,EAAE,SAAS;oBACd,KAAK,EAAE,WAAW;oBAClB,GAAG,EAAE,SAAS;oBACd,GAAG,EAAE,SAAS;oBACd,IAAI,EAAE,sHAAsH;iBAC7H,CAAC;gBACF,MAAM;YAER,8BAA8B;YAC9B,KAAK,yBAAyB;gBAC5B,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,yBAAyB;gBAC5B,MAAM,GAAG,MAAM,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBAC7C,MAAM;YACR,KAAK,2BAA2B;gBAC9B,MAAM,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAC3C,MAAM;YACR,KAAK,kBAAkB;gBACrB,MAAM,GAAG;oBACP,OAAO,EAAE,MAAM,aAAa,EAAE;oBAC9B,IAAI,EAAE,yCAAyC;iBAChD,CAAC;gBACF,MAAM;YACR,KAAK,4BAA4B;gBAC/B,MAAM,GAAG;oBACP,QAAQ,EAAE,MAAM,sBAAsB,EAAE;oBACxC,IAAI,EAAE,oDAAoD;iBAC3D,CAAC;gBACF,MAAM;YAER,8BAA8B;YAC9B,KAAK,qBAAqB;gBACxB,MAAM,GAAG,MAAM,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,kBAAkB;gBACrB,MAAM,GAAG;oBACP,OAAO,EAAE,MAAM,aAAa,EAAE;oBAC9B,IAAI,EAAE,iDAAiD;iBACxD,CAAC;gBACF,MAAM;YACR,KAAK,4BAA4B;gBAC/B,MAAM,GAAG;oBACP,QAAQ,EAAE,MAAM,sBAAsB,EAAE;oBACxC,IAAI,EAAE,oDAAoD;iBAC3D,CAAC;gBACF,MAAM;YAER,sEAAsE;YACtE,KAAK,4BAA4B;gBAC/B,MAAM,GAAG,MAAM,wBAAwB,CAAC,SAAS,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,oBAAoB;gBACvB,MAAM,GAAG;oBACP,OAAO,EAAE,MAAM,sBAAsB,EAAE;oBACvC,IAAI,EAAE,mDAAmD;iBAC1D,CAAC;gBACF,MAAM;YACR,KAAK,uBAAuB;gBAC1B,MAAM,GAAG;oBACP,UAAU,EAAE,MAAM,kBAAkB,EAAE;oBACtC,IAAI,EAAE,kDAAkD;iBACzD,CAAC;gBACF,MAAM;YAER;gBACE,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,iBAAiB,IAAI,EAAE,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACtC;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;YAC9B,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QACvF,MAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,mBAAmB;AACnB,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;AAC1D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,13 +10,16 @@ export declare function calculateWorkloadCost(spec: WorkloadSpec): WorkloadCompa
|
|
|
10
10
|
/**
|
|
11
11
|
* Quick estimate for common deployment presets
|
|
12
12
|
*/
|
|
13
|
-
export declare function quickEstimate(preset: string): WorkloadComparisonResult
|
|
13
|
+
export declare function quickEstimate(preset: string): WorkloadComparisonResult & {
|
|
14
|
+
presetDescription?: string;
|
|
15
|
+
};
|
|
14
16
|
/**
|
|
15
17
|
* Get available presets
|
|
16
18
|
*/
|
|
17
19
|
export declare function getAvailablePresets(): Array<{
|
|
18
20
|
name: string;
|
|
19
21
|
description: string;
|
|
22
|
+
category: string;
|
|
20
23
|
}>;
|
|
21
24
|
/**
|
|
22
25
|
* Estimate migration savings from one cloud to another
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculator.d.ts","sourceRoot":"","sources":["../../src/tools/calculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EAEZ,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAiJrB;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,wBAAwB,CA2ClF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,
|
|
1
|
+
{"version":3,"file":"calculator.d.ts","sourceRoot":"","sources":["../../src/tools/calculator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EAEZ,wBAAwB,EACzB,MAAM,aAAa,CAAC;AAiJrB;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,wBAAwB,CA2ClF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,wBAAwB,GAAG;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,CAyGvG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBpG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE;IAChD,IAAI,EAAE,YAAY,CAAC;IACnB,eAAe,EAAE,aAAa,CAAC;IAC/B,cAAc,CAAC,EAAE,aAAa,CAAC;CAChC,GAAG;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,CAsCA"}
|
package/dist/tools/calculator.js
CHANGED
|
@@ -174,59 +174,123 @@ export function calculateWorkloadCost(spec) {
|
|
|
174
174
|
export function quickEstimate(preset) {
|
|
175
175
|
const presets = {
|
|
176
176
|
'small-web-app': {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
177
|
+
spec: {
|
|
178
|
+
compute: { vcpus: 2, memoryGB: 4, count: 1 },
|
|
179
|
+
storage: { blockGB: 50 },
|
|
180
|
+
egress: { monthlyGB: 100 },
|
|
181
|
+
},
|
|
182
|
+
description: 'Basic web application with single instance',
|
|
180
183
|
},
|
|
181
184
|
'medium-api-server': {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
+
spec: {
|
|
186
|
+
compute: { vcpus: 4, memoryGB: 16, count: 2 },
|
|
187
|
+
storage: { blockGB: 200, objectGB: 100 },
|
|
188
|
+
egress: { monthlyGB: 500 },
|
|
189
|
+
},
|
|
190
|
+
description: 'API server with load balancing and moderate storage',
|
|
185
191
|
},
|
|
186
192
|
'large-database': {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
193
|
+
spec: {
|
|
194
|
+
compute: { vcpus: 8, memoryGB: 64, count: 1 },
|
|
195
|
+
storage: { blockGB: 1000 },
|
|
196
|
+
egress: { monthlyGB: 200 },
|
|
197
|
+
},
|
|
198
|
+
description: 'High-memory database server with 1TB storage',
|
|
190
199
|
},
|
|
191
200
|
'ml-training': {
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
201
|
+
spec: {
|
|
202
|
+
compute: { vcpus: 8, memoryGB: 32, count: 2 },
|
|
203
|
+
storage: { objectGB: 500 },
|
|
204
|
+
egress: { monthlyGB: 1000 },
|
|
205
|
+
},
|
|
206
|
+
description: 'CPU-based ML training cluster (no GPU)',
|
|
195
207
|
},
|
|
196
208
|
'kubernetes-cluster': {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
209
|
+
spec: {
|
|
210
|
+
kubernetes: { nodeCount: 3, nodeVcpus: 4, nodeMemoryGB: 16 },
|
|
211
|
+
storage: { blockGB: 300 },
|
|
212
|
+
egress: { monthlyGB: 500 },
|
|
213
|
+
},
|
|
214
|
+
description: 'Standard 3-node Kubernetes cluster',
|
|
200
215
|
},
|
|
201
216
|
'data-lake': {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
217
|
+
spec: {
|
|
218
|
+
compute: { vcpus: 16, memoryGB: 128, count: 1 },
|
|
219
|
+
storage: { objectGB: 100000 },
|
|
220
|
+
egress: { monthlyGB: 5000 },
|
|
221
|
+
},
|
|
222
|
+
description: 'Object storage-heavy analytics workload (100TB)',
|
|
205
223
|
},
|
|
206
224
|
'high-egress-cdn': {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
225
|
+
spec: {
|
|
226
|
+
compute: { vcpus: 2, memoryGB: 4, count: 2 },
|
|
227
|
+
storage: { objectGB: 200 },
|
|
228
|
+
egress: { monthlyGB: 10000 },
|
|
229
|
+
},
|
|
230
|
+
description: 'CDN origin servers with 10TB/month egress',
|
|
231
|
+
},
|
|
232
|
+
// GPU Presets (using equivalent vCPU/memory for cost estimation)
|
|
233
|
+
'gpu-inference': {
|
|
234
|
+
spec: {
|
|
235
|
+
compute: { vcpus: 64, memoryGB: 1024, count: 1 },
|
|
236
|
+
storage: { blockGB: 500, objectGB: 1000 },
|
|
237
|
+
egress: { monthlyGB: 2000 },
|
|
238
|
+
},
|
|
239
|
+
description: 'GPU inference server (BM.GPU.A10.4 equivalent: $2.95/hr)',
|
|
240
|
+
},
|
|
241
|
+
'gpu-training-small': {
|
|
242
|
+
spec: {
|
|
243
|
+
compute: { vcpus: 128, memoryGB: 2048, count: 1 },
|
|
244
|
+
storage: { blockGB: 2000, objectGB: 5000 },
|
|
245
|
+
egress: { monthlyGB: 5000 },
|
|
246
|
+
},
|
|
247
|
+
description: 'GPU training (BM.GPU.A100-v2.8 equivalent: $17/hr, ~200hrs/month)',
|
|
248
|
+
},
|
|
249
|
+
'gpu-training-large': {
|
|
250
|
+
spec: {
|
|
251
|
+
compute: { vcpus: 112, memoryGB: 2048, count: 1 },
|
|
252
|
+
storage: { blockGB: 10000, objectGB: 50000 },
|
|
253
|
+
egress: { monthlyGB: 10000 },
|
|
254
|
+
},
|
|
255
|
+
description: 'Large-scale GPU training (BM.GPU.H100.8 equivalent: $36/hr)',
|
|
256
|
+
},
|
|
257
|
+
'high-traffic-web': {
|
|
258
|
+
spec: {
|
|
259
|
+
compute: { vcpus: 8, memoryGB: 64, count: 4 },
|
|
260
|
+
storage: { blockGB: 500, objectGB: 2000 },
|
|
261
|
+
egress: { monthlyGB: 10000 },
|
|
262
|
+
},
|
|
263
|
+
description: 'Load-balanced web tier with 4 instances and CDN',
|
|
210
264
|
},
|
|
211
265
|
};
|
|
212
|
-
const
|
|
213
|
-
if (!
|
|
266
|
+
const presetConfig = presets[preset];
|
|
267
|
+
if (!presetConfig) {
|
|
214
268
|
throw new Error(`Unknown preset: ${preset}. Available presets: ${Object.keys(presets).join(', ')}`);
|
|
215
269
|
}
|
|
216
|
-
|
|
270
|
+
const result = calculateWorkloadCost(presetConfig.spec);
|
|
271
|
+
return {
|
|
272
|
+
...result,
|
|
273
|
+
presetDescription: presetConfig.description,
|
|
274
|
+
};
|
|
217
275
|
}
|
|
218
276
|
/**
|
|
219
277
|
* Get available presets
|
|
220
278
|
*/
|
|
221
279
|
export function getAvailablePresets() {
|
|
222
280
|
return [
|
|
223
|
-
|
|
224
|
-
{ name: '
|
|
225
|
-
{ name: '
|
|
226
|
-
{ name: '
|
|
227
|
-
{ name: '
|
|
228
|
-
{ name: '
|
|
229
|
-
{ name: '
|
|
281
|
+
// Standard presets
|
|
282
|
+
{ name: 'small-web-app', description: '2 vCPU, 4GB RAM, 50GB storage, 100GB egress', category: 'web' },
|
|
283
|
+
{ name: 'medium-api-server', description: '2x 4 vCPU, 16GB RAM, 200GB block + 100GB object, 500GB egress', category: 'web' },
|
|
284
|
+
{ name: 'high-traffic-web', description: '4x 8 vCPU, 64GB RAM, 500GB block + 2TB object, 10TB egress', category: 'web' },
|
|
285
|
+
{ name: 'large-database', description: '8 vCPU, 64GB RAM, 1TB storage, 200GB egress', category: 'database' },
|
|
286
|
+
{ name: 'kubernetes-cluster', description: '3 nodes × 4 vCPU × 16GB, 300GB storage, 500GB egress', category: 'kubernetes' },
|
|
287
|
+
{ name: 'data-lake', description: '16 vCPU, 128GB RAM, 100TB object storage, 5TB egress', category: 'analytics' },
|
|
288
|
+
{ name: 'high-egress-cdn', description: '2x 2 vCPU, 4GB RAM, 200GB object, 10TB egress (shows OCI advantage)', category: 'networking' },
|
|
289
|
+
// GPU presets
|
|
290
|
+
{ name: 'ml-training', description: 'CPU-based: 2x 8 vCPU, 32GB RAM, 500GB object storage, 1TB egress', category: 'ml' },
|
|
291
|
+
{ name: 'gpu-inference', description: 'GPU inference: A10 equivalent (64 vCPU, 1TB RAM, ~$2.95/hr GPU cost)', category: 'gpu' },
|
|
292
|
+
{ name: 'gpu-training-small', description: 'GPU training: A100 equivalent (128 vCPU, 2TB RAM, ~$17/hr GPU cost)', category: 'gpu' },
|
|
293
|
+
{ name: 'gpu-training-large', description: 'Large GPU training: H100 equivalent (112 vCPU, 2TB RAM, ~$36/hr GPU cost)', category: 'gpu' },
|
|
230
294
|
];
|
|
231
295
|
}
|
|
232
296
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../src/tools/calculator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../src/tools/calculator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud Cost MCP - GPU Tools
|
|
3
|
+
* Tools for listing, comparing, and recommending GPU shapes
|
|
4
|
+
*/
|
|
5
|
+
import type { GPUPricing, GPUUseCase } from '../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* List GPU shapes with optional filtering
|
|
8
|
+
*/
|
|
9
|
+
export declare function listGPUShapes(params: {
|
|
10
|
+
gpuModel?: string;
|
|
11
|
+
useCase?: GPUUseCase;
|
|
12
|
+
maxPricePerHour?: number;
|
|
13
|
+
}): {
|
|
14
|
+
shapes: GPUPricing[];
|
|
15
|
+
count: number;
|
|
16
|
+
summary: string;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Get detailed info for a specific GPU shape
|
|
20
|
+
*/
|
|
21
|
+
export declare function getGPUShapeDetails(shapeFamily: string): {
|
|
22
|
+
found: boolean;
|
|
23
|
+
shape?: GPUPricing;
|
|
24
|
+
monthlyEstimate?: number;
|
|
25
|
+
costBreakdown?: {
|
|
26
|
+
hourly: number;
|
|
27
|
+
daily: number;
|
|
28
|
+
monthly: number;
|
|
29
|
+
annual: number;
|
|
30
|
+
};
|
|
31
|
+
specs?: {
|
|
32
|
+
totalGPUMemoryGB: number;
|
|
33
|
+
gpuMemoryPerUnit: number;
|
|
34
|
+
memoryPerOCPU: number;
|
|
35
|
+
};
|
|
36
|
+
message: string;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Compare multiple GPU shapes side by side
|
|
40
|
+
*/
|
|
41
|
+
export declare function compareGPUShapes(shapes: string[]): {
|
|
42
|
+
comparison: Array<{
|
|
43
|
+
shapeFamily: string;
|
|
44
|
+
name: string;
|
|
45
|
+
gpuCount: number;
|
|
46
|
+
gpuModel: string;
|
|
47
|
+
gpuMemoryGB: number;
|
|
48
|
+
totalGPUMemoryGB: number;
|
|
49
|
+
ocpus: number;
|
|
50
|
+
memoryGB: number;
|
|
51
|
+
pricePerHour: number;
|
|
52
|
+
monthlyPrice: number;
|
|
53
|
+
useCase: string;
|
|
54
|
+
pricePerGPU: number;
|
|
55
|
+
pricePerGPUMemoryGB: number;
|
|
56
|
+
}>;
|
|
57
|
+
cheapest: string | null;
|
|
58
|
+
mostMemory: string | null;
|
|
59
|
+
summary: string;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Recommend GPU shape based on workload requirements
|
|
63
|
+
*/
|
|
64
|
+
export declare function recommendGPUShape(params: {
|
|
65
|
+
workloadType: 'inference' | 'training' | 'fine-tuning' | 'data-science';
|
|
66
|
+
minGPUMemoryGB?: number;
|
|
67
|
+
budget?: 'low' | 'medium' | 'high';
|
|
68
|
+
}): {
|
|
69
|
+
recommended: GPUPricing | null;
|
|
70
|
+
alternatives: GPUPricing[];
|
|
71
|
+
reasoning: string;
|
|
72
|
+
allMatches: GPUPricing[];
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=gpu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["../../src/tools/gpu.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAG1D;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GAAG;IACF,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB,CAqCA;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG;IACvD,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,gBAAgB,EAAE,MAAM,CAAC;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;CACjB,CAgCA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG;IAClD,UAAU,EAAE,KAAK,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC,CAAC;IACH,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;CACjB,CA0EA;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IACxC,YAAY,EAAE,WAAW,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,CAAC;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CACpC,GAAG;IACF,WAAW,EAAE,UAAU,GAAG,IAAI,CAAC;IAC/B,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B,CAqFA"}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloud Cost MCP - GPU Tools
|
|
3
|
+
* Tools for listing, comparing, and recommending GPU shapes
|
|
4
|
+
*/
|
|
5
|
+
import { getGPUPricing, getGPUShapeByFamily } from '../data/loader.js';
|
|
6
|
+
/**
|
|
7
|
+
* List GPU shapes with optional filtering
|
|
8
|
+
*/
|
|
9
|
+
export function listGPUShapes(params) {
|
|
10
|
+
let shapes = getGPUPricing();
|
|
11
|
+
// Filter by GPU model
|
|
12
|
+
if (params.gpuModel) {
|
|
13
|
+
const model = params.gpuModel.toLowerCase();
|
|
14
|
+
shapes = shapes.filter((s) => s.gpuModel.toLowerCase().includes(model) ||
|
|
15
|
+
s.type.toLowerCase().includes(model) ||
|
|
16
|
+
s.shapeFamily.toLowerCase().includes(model));
|
|
17
|
+
}
|
|
18
|
+
// Filter by use case
|
|
19
|
+
if (params.useCase) {
|
|
20
|
+
shapes = shapes.filter((s) => s.useCase === params.useCase);
|
|
21
|
+
}
|
|
22
|
+
// Filter by max price
|
|
23
|
+
if (params.maxPricePerHour !== undefined) {
|
|
24
|
+
shapes = shapes.filter((s) => s.pricePerHour <= params.maxPricePerHour);
|
|
25
|
+
}
|
|
26
|
+
// Sort by price
|
|
27
|
+
shapes.sort((a, b) => a.pricePerHour - b.pricePerHour);
|
|
28
|
+
const summary = shapes.length === 0
|
|
29
|
+
? 'No GPU shapes match the specified criteria.'
|
|
30
|
+
: `Found ${shapes.length} GPU shape(s). Prices range from $${shapes[0].pricePerHour.toFixed(2)}/hr to $${shapes[shapes.length - 1].pricePerHour.toFixed(2)}/hr.`;
|
|
31
|
+
return {
|
|
32
|
+
shapes,
|
|
33
|
+
count: shapes.length,
|
|
34
|
+
summary,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get detailed info for a specific GPU shape
|
|
39
|
+
*/
|
|
40
|
+
export function getGPUShapeDetails(shapeFamily) {
|
|
41
|
+
const shape = getGPUShapeByFamily(shapeFamily);
|
|
42
|
+
if (!shape) {
|
|
43
|
+
const allShapes = getGPUPricing();
|
|
44
|
+
const availableShapes = allShapes.map((s) => s.shapeFamily).join(', ');
|
|
45
|
+
return {
|
|
46
|
+
found: false,
|
|
47
|
+
message: `GPU shape '${shapeFamily}' not found. Available shapes: ${availableShapes}`,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const monthlyEstimate = shape.pricePerHour * 730; // 730 hours/month
|
|
51
|
+
const totalGPUMemoryGB = shape.gpuCount * shape.gpuMemoryGB;
|
|
52
|
+
return {
|
|
53
|
+
found: true,
|
|
54
|
+
shape,
|
|
55
|
+
monthlyEstimate,
|
|
56
|
+
costBreakdown: {
|
|
57
|
+
hourly: shape.pricePerHour,
|
|
58
|
+
daily: shape.pricePerHour * 24,
|
|
59
|
+
monthly: monthlyEstimate,
|
|
60
|
+
annual: monthlyEstimate * 12,
|
|
61
|
+
},
|
|
62
|
+
specs: {
|
|
63
|
+
totalGPUMemoryGB,
|
|
64
|
+
gpuMemoryPerUnit: shape.gpuMemoryGB,
|
|
65
|
+
memoryPerOCPU: Math.round(shape.memoryGB / shape.ocpus),
|
|
66
|
+
},
|
|
67
|
+
message: `${shape.name}: ${shape.gpuCount}x ${shape.gpuModel} with ${totalGPUMemoryGB}GB total GPU memory at $${shape.pricePerHour.toFixed(2)}/hr ($${monthlyEstimate.toFixed(2)}/month)`,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Compare multiple GPU shapes side by side
|
|
72
|
+
*/
|
|
73
|
+
export function compareGPUShapes(shapes) {
|
|
74
|
+
const results = [];
|
|
75
|
+
const notFound = [];
|
|
76
|
+
for (const shapeFamily of shapes) {
|
|
77
|
+
const shape = getGPUShapeByFamily(shapeFamily);
|
|
78
|
+
if (shape) {
|
|
79
|
+
const totalGPUMemoryGB = shape.gpuCount * shape.gpuMemoryGB;
|
|
80
|
+
results.push({
|
|
81
|
+
shapeFamily: shape.shapeFamily,
|
|
82
|
+
name: shape.name,
|
|
83
|
+
gpuCount: shape.gpuCount,
|
|
84
|
+
gpuModel: shape.gpuModel,
|
|
85
|
+
gpuMemoryGB: shape.gpuMemoryGB,
|
|
86
|
+
totalGPUMemoryGB,
|
|
87
|
+
ocpus: shape.ocpus,
|
|
88
|
+
memoryGB: shape.memoryGB,
|
|
89
|
+
pricePerHour: shape.pricePerHour,
|
|
90
|
+
monthlyPrice: shape.pricePerHour * 730,
|
|
91
|
+
useCase: shape.useCase,
|
|
92
|
+
pricePerGPU: shape.pricePerHour / shape.gpuCount,
|
|
93
|
+
pricePerGPUMemoryGB: shape.pricePerHour / totalGPUMemoryGB,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
notFound.push(shapeFamily);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
if (results.length === 0) {
|
|
101
|
+
return {
|
|
102
|
+
comparison: [],
|
|
103
|
+
cheapest: null,
|
|
104
|
+
mostMemory: null,
|
|
105
|
+
summary: `No valid GPU shapes found. Not found: ${notFound.join(', ')}`,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
// Find cheapest and most memory
|
|
109
|
+
const cheapest = results.reduce((a, b) => a.pricePerHour < b.pricePerHour ? a : b);
|
|
110
|
+
const mostMemory = results.reduce((a, b) => a.totalGPUMemoryGB > b.totalGPUMemoryGB ? a : b);
|
|
111
|
+
let summary = `Compared ${results.length} GPU shapes. `;
|
|
112
|
+
summary += `Cheapest: ${cheapest.name} at $${cheapest.pricePerHour.toFixed(2)}/hr. `;
|
|
113
|
+
summary += `Most GPU memory: ${mostMemory.name} with ${mostMemory.totalGPUMemoryGB}GB total.`;
|
|
114
|
+
if (notFound.length > 0) {
|
|
115
|
+
summary += ` Not found: ${notFound.join(', ')}.`;
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
comparison: results,
|
|
119
|
+
cheapest: cheapest.shapeFamily,
|
|
120
|
+
mostMemory: mostMemory.shapeFamily,
|
|
121
|
+
summary,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Recommend GPU shape based on workload requirements
|
|
126
|
+
*/
|
|
127
|
+
export function recommendGPUShape(params) {
|
|
128
|
+
let shapes = getGPUPricing();
|
|
129
|
+
// Map workload type to use case
|
|
130
|
+
const useCaseMap = {
|
|
131
|
+
inference: ['inference'],
|
|
132
|
+
training: ['training'],
|
|
133
|
+
'fine-tuning': ['training', 'inference'],
|
|
134
|
+
'data-science': ['inference', 'training', 'general'],
|
|
135
|
+
};
|
|
136
|
+
const relevantUseCases = useCaseMap[params.workloadType] || ['general'];
|
|
137
|
+
// Filter by use case
|
|
138
|
+
shapes = shapes.filter((s) => relevantUseCases.includes(s.useCase));
|
|
139
|
+
// Filter by minimum GPU memory if specified
|
|
140
|
+
if (params.minGPUMemoryGB) {
|
|
141
|
+
shapes = shapes.filter((s) => s.gpuMemoryGB >= params.minGPUMemoryGB);
|
|
142
|
+
}
|
|
143
|
+
// Filter by budget
|
|
144
|
+
const budgetRanges = {
|
|
145
|
+
low: { min: 0, max: 5 },
|
|
146
|
+
medium: { min: 0, max: 20 },
|
|
147
|
+
high: { min: 0, max: Infinity },
|
|
148
|
+
};
|
|
149
|
+
if (params.budget) {
|
|
150
|
+
const range = budgetRanges[params.budget];
|
|
151
|
+
shapes = shapes.filter((s) => s.pricePerHour >= range.min && s.pricePerHour <= range.max);
|
|
152
|
+
}
|
|
153
|
+
// Sort by price
|
|
154
|
+
shapes.sort((a, b) => a.pricePerHour - b.pricePerHour);
|
|
155
|
+
if (shapes.length === 0) {
|
|
156
|
+
return {
|
|
157
|
+
recommended: null,
|
|
158
|
+
alternatives: [],
|
|
159
|
+
reasoning: `No GPU shapes match the criteria: workloadType=${params.workloadType}, minGPUMemoryGB=${params.minGPUMemoryGB || 'any'}, budget=${params.budget || 'any'}. Try relaxing your requirements.`,
|
|
160
|
+
allMatches: [],
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
// Pick recommended based on workload type
|
|
164
|
+
let recommended;
|
|
165
|
+
if (params.workloadType === 'inference') {
|
|
166
|
+
// For inference, prefer A10 or L40S (good inference performance, reasonable cost)
|
|
167
|
+
recommended =
|
|
168
|
+
shapes.find((s) => s.type === 'nvidia-a10' || s.type === 'nvidia-l40s') || shapes[0];
|
|
169
|
+
}
|
|
170
|
+
else if (params.workloadType === 'training') {
|
|
171
|
+
// For training, prefer H100 > A100 > others if budget allows
|
|
172
|
+
recommended =
|
|
173
|
+
shapes.find((s) => s.type === 'nvidia-h100') ||
|
|
174
|
+
shapes.find((s) => s.type === 'nvidia-a100') ||
|
|
175
|
+
shapes[shapes.length - 1]; // Most capable in range
|
|
176
|
+
}
|
|
177
|
+
else if (params.workloadType === 'fine-tuning') {
|
|
178
|
+
// For fine-tuning, A100 is often the sweet spot
|
|
179
|
+
recommended =
|
|
180
|
+
shapes.find((s) => s.type === 'nvidia-a100') ||
|
|
181
|
+
shapes.find((s) => s.type === 'nvidia-a10') ||
|
|
182
|
+
shapes[0];
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
// Data science - balance of cost and capability
|
|
186
|
+
recommended = shapes[Math.floor(shapes.length / 2)] || shapes[0];
|
|
187
|
+
}
|
|
188
|
+
const alternatives = shapes.filter((s) => s.shapeFamily !== recommended.shapeFamily);
|
|
189
|
+
const reasoning = buildRecommendationReasoning(recommended, params);
|
|
190
|
+
return {
|
|
191
|
+
recommended,
|
|
192
|
+
alternatives: alternatives.slice(0, 3), // Top 3 alternatives
|
|
193
|
+
reasoning,
|
|
194
|
+
allMatches: shapes,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
function buildRecommendationReasoning(shape, params) {
|
|
198
|
+
const parts = [];
|
|
199
|
+
parts.push(`Recommended: ${shape.name} (${shape.shapeFamily})`);
|
|
200
|
+
parts.push(`- ${shape.gpuCount}x ${shape.gpuModel} with ${shape.gpuMemoryGB}GB memory per GPU`);
|
|
201
|
+
parts.push(`- Total GPU memory: ${shape.gpuCount * shape.gpuMemoryGB}GB`);
|
|
202
|
+
parts.push(`- Price: $${shape.pricePerHour.toFixed(2)}/hr ($${(shape.pricePerHour * 730).toFixed(2)}/month)`);
|
|
203
|
+
switch (params.workloadType) {
|
|
204
|
+
case 'inference':
|
|
205
|
+
parts.push(`- Best for inference due to balanced performance-to-cost ratio`);
|
|
206
|
+
break;
|
|
207
|
+
case 'training':
|
|
208
|
+
parts.push(`- Best for training with high memory bandwidth and tensor cores`);
|
|
209
|
+
break;
|
|
210
|
+
case 'fine-tuning':
|
|
211
|
+
parts.push(`- Good balance of memory and cost for fine-tuning workloads`);
|
|
212
|
+
break;
|
|
213
|
+
case 'data-science':
|
|
214
|
+
parts.push(`- Versatile option for data science experimentation`);
|
|
215
|
+
break;
|
|
216
|
+
}
|
|
217
|
+
if (shape.notes) {
|
|
218
|
+
parts.push(`- Note: ${shape.notes}`);
|
|
219
|
+
}
|
|
220
|
+
return parts.join('\n');
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=gpu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpu.js","sourceRoot":"","sources":["../../src/tools/gpu.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -5,6 +5,26 @@
|
|
|
5
5
|
export type CloudProvider = 'aws' | 'azure' | 'gcp' | 'oci';
|
|
6
6
|
export type ComputeCategory = 'general' | 'compute' | 'memory' | 'storage' | 'gpu' | 'arm';
|
|
7
7
|
export type StorageTier = 'hot' | 'cool' | 'cold' | 'archive';
|
|
8
|
+
export type GPUType = 'nvidia-a10' | 'nvidia-a100' | 'nvidia-h100' | 'nvidia-h200' | 'nvidia-l40s' | 'nvidia-b200' | 'amd-mi300x';
|
|
9
|
+
export type GPUUseCase = 'inference' | 'training' | 'graphics' | 'general';
|
|
10
|
+
export interface GPUPricing {
|
|
11
|
+
service: 'gpu';
|
|
12
|
+
shapeFamily: string;
|
|
13
|
+
type: GPUType;
|
|
14
|
+
name: string;
|
|
15
|
+
description: string;
|
|
16
|
+
gpuCount: number;
|
|
17
|
+
gpuModel: string;
|
|
18
|
+
gpuMemoryGB: number;
|
|
19
|
+
ocpus: number;
|
|
20
|
+
memoryGB: number;
|
|
21
|
+
pricePerHour: number;
|
|
22
|
+
currency: 'USD';
|
|
23
|
+
useCase: GPUUseCase;
|
|
24
|
+
partNumber?: string;
|
|
25
|
+
notes?: string;
|
|
26
|
+
}
|
|
27
|
+
export type WorkloadPresetType = 'small-web-app' | 'medium-api-server' | 'large-database' | 'ml-training' | 'kubernetes-cluster' | 'data-lake' | 'high-egress-cdn' | 'gpu-inference' | 'gpu-training-small' | 'gpu-training-large' | 'high-traffic-web';
|
|
8
28
|
export interface PricingMetadata {
|
|
9
29
|
provider: CloudProvider;
|
|
10
30
|
lastUpdated: string;
|
|
@@ -116,6 +136,7 @@ export interface ProviderPricingData {
|
|
|
116
136
|
egress: EgressPricing;
|
|
117
137
|
kubernetes?: KubernetesPricing;
|
|
118
138
|
database?: DatabasePricing[];
|
|
139
|
+
gpu?: GPUPricing[];
|
|
119
140
|
}
|
|
120
141
|
export interface AllCloudPricing {
|
|
121
142
|
aws: ProviderPricingData;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|