oci-pricing-mcp 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.
Files changed (49) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +24 -0
  3. package/README.md +299 -0
  4. package/dist/data/cache.d.ts +50 -0
  5. package/dist/data/cache.d.ts.map +1 -0
  6. package/dist/data/cache.js +90 -0
  7. package/dist/data/cache.js.map +1 -0
  8. package/dist/data/fetcher.d.ts +96 -0
  9. package/dist/data/fetcher.d.ts.map +1 -0
  10. package/dist/data/fetcher.js +232 -0
  11. package/dist/data/fetcher.js.map +1 -0
  12. package/dist/data/pricing-data.json +6162 -0
  13. package/dist/index.d.ts +21 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +582 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/tools/calculator.d.ts +17 -0
  18. package/dist/tools/calculator.d.ts.map +1 -0
  19. package/dist/tools/calculator.js +318 -0
  20. package/dist/tools/calculator.js.map +1 -0
  21. package/dist/tools/compute.d.ts +58 -0
  22. package/dist/tools/compute.d.ts.map +1 -0
  23. package/dist/tools/compute.js +172 -0
  24. package/dist/tools/compute.js.map +1 -0
  25. package/dist/tools/core.d.ts +70 -0
  26. package/dist/tools/core.d.ts.map +1 -0
  27. package/dist/tools/core.js +113 -0
  28. package/dist/tools/core.js.map +1 -0
  29. package/dist/tools/database.d.ts +66 -0
  30. package/dist/tools/database.d.ts.map +1 -0
  31. package/dist/tools/database.js +212 -0
  32. package/dist/tools/database.js.map +1 -0
  33. package/dist/tools/kubernetes.d.ts +65 -0
  34. package/dist/tools/kubernetes.d.ts.map +1 -0
  35. package/dist/tools/kubernetes.js +226 -0
  36. package/dist/tools/kubernetes.js.map +1 -0
  37. package/dist/tools/networking.d.ts +63 -0
  38. package/dist/tools/networking.d.ts.map +1 -0
  39. package/dist/tools/networking.js +248 -0
  40. package/dist/tools/networking.js.map +1 -0
  41. package/dist/tools/storage.d.ts +64 -0
  42. package/dist/tools/storage.d.ts.map +1 -0
  43. package/dist/tools/storage.js +175 -0
  44. package/dist/tools/storage.js.map +1 -0
  45. package/dist/types.d.ts +162 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +5 -0
  48. package/dist/types.js.map +1 -0
  49. package/package.json +53 -0
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * OCI Pricing MCP Server
4
+ * Provides Oracle Cloud Infrastructure pricing data to AI assistants via MCP protocol
5
+ *
6
+ * Copyright 2026 Jason Wilbur
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */
20
+ export {};
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;GAiBG"}
package/dist/index.js ADDED
@@ -0,0 +1,582 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * OCI Pricing MCP Server
4
+ * Provides Oracle Cloud Infrastructure pricing data to AI assistants via MCP protocol
5
+ *
6
+ * Copyright 2026 Jason Wilbur
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */
20
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
21
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
22
+ import { CallToolRequestSchema, ListToolsRequestSchema, ErrorCode, McpError, } from '@modelcontextprotocol/sdk/types.js';
23
+ // Import tools
24
+ import { getPricing, listServices, compareRegions, listRegions } from './tools/core.js';
25
+ import { calculateMonthlyCost, quickEstimate } from './tools/calculator.js';
26
+ import { listComputeShapes, getComputeShapeDetails, compareComputeShapes } from './tools/compute.js';
27
+ import { listStorageOptions, calculateStorageCost, compareStorageTiers } from './tools/storage.js';
28
+ import { listDatabaseOptions, calculateDatabaseCost, compareDatabaseOptions } from './tools/database.js';
29
+ import { listNetworkingOptions, calculateNetworkingCost, compareDataEgress } from './tools/networking.js';
30
+ import { listKubernetesOptions, calculateKubernetesCost, compareKubernetesProviders } from './tools/kubernetes.js';
31
+ import { getLastUpdated, getFreeTier, fetchRealTimePricing, getRealTimeCategories } from './data/fetcher.js';
32
+ // Create server instance
33
+ const server = new Server({
34
+ name: 'oci-pricing-mcp',
35
+ version: '1.0.0',
36
+ }, {
37
+ capabilities: {
38
+ tools: {},
39
+ },
40
+ });
41
+ // Define available tools
42
+ const TOOLS = [
43
+ // Core tools
44
+ {
45
+ name: 'get_pricing',
46
+ description: 'Get pricing for any OCI resource by service and type. Services: compute, storage, database, networking, kubernetes.',
47
+ inputSchema: {
48
+ type: 'object',
49
+ properties: {
50
+ service: {
51
+ type: 'string',
52
+ enum: ['compute', 'storage', 'database', 'networking', 'kubernetes'],
53
+ description: 'OCI service category',
54
+ },
55
+ type: {
56
+ type: 'string',
57
+ description: 'Optional filter for specific resource type (e.g., "E5", "block", "autonomous")',
58
+ },
59
+ region: {
60
+ type: 'string',
61
+ description: 'Optional region (OCI has consistent pricing across commercial regions)',
62
+ },
63
+ },
64
+ required: ['service'],
65
+ },
66
+ },
67
+ {
68
+ name: 'list_services',
69
+ description: 'List all OCI services with pricing categories. Filter by category: compute, storage, database, networking, kubernetes, ai-ml, observability, etc.',
70
+ inputSchema: {
71
+ type: 'object',
72
+ properties: {
73
+ category: {
74
+ type: 'string',
75
+ description: 'Filter by service category',
76
+ },
77
+ },
78
+ },
79
+ },
80
+ {
81
+ name: 'compare_regions',
82
+ description: 'Compare pricing for a resource across OCI regions. Note: OCI maintains consistent pricing across all commercial regions.',
83
+ inputSchema: {
84
+ type: 'object',
85
+ properties: {
86
+ service: {
87
+ type: 'string',
88
+ enum: ['compute', 'storage', 'database', 'networking', 'kubernetes'],
89
+ description: 'OCI service category',
90
+ },
91
+ type: {
92
+ type: 'string',
93
+ description: 'Resource type to compare',
94
+ },
95
+ },
96
+ required: ['service', 'type'],
97
+ },
98
+ },
99
+ {
100
+ name: 'list_regions',
101
+ description: 'List all available OCI regions with their locations.',
102
+ inputSchema: {
103
+ type: 'object',
104
+ properties: {},
105
+ },
106
+ },
107
+ {
108
+ name: 'calculate_monthly_cost',
109
+ description: 'Calculate estimated monthly cost for an OCI configuration with compute, storage, database, and networking.',
110
+ inputSchema: {
111
+ type: 'object',
112
+ properties: {
113
+ compute: {
114
+ type: 'object',
115
+ properties: {
116
+ shape: { type: 'string', description: 'Compute shape (e.g., VM.Standard.E5.Flex)' },
117
+ ocpus: { type: 'number', description: 'Number of OCPUs' },
118
+ memoryGB: { type: 'number', description: 'Memory in GB' },
119
+ hoursPerMonth: { type: 'number', description: 'Hours per month (default: 730 for 24/7)' },
120
+ },
121
+ required: ['shape', 'ocpus', 'memoryGB'],
122
+ },
123
+ storage: {
124
+ type: 'object',
125
+ properties: {
126
+ blockVolumeGB: { type: 'number' },
127
+ objectStorageGB: { type: 'number' },
128
+ archiveStorageGB: { type: 'number' },
129
+ fileStorageGB: { type: 'number' },
130
+ },
131
+ },
132
+ database: {
133
+ type: 'object',
134
+ properties: {
135
+ type: { type: 'string', description: 'Database type (e.g., autonomous-transaction-processing)' },
136
+ ecpus: { type: 'number' },
137
+ storageGB: { type: 'number' },
138
+ licenseIncluded: { type: 'boolean' },
139
+ },
140
+ required: ['type'],
141
+ },
142
+ networking: {
143
+ type: 'object',
144
+ properties: {
145
+ loadBalancerBandwidthMbps: { type: 'number' },
146
+ outboundDataGB: { type: 'number' },
147
+ },
148
+ },
149
+ region: { type: 'string', description: 'OCI region (default: us-ashburn-1)' },
150
+ },
151
+ },
152
+ },
153
+ {
154
+ name: 'quick_estimate',
155
+ description: 'Get a quick cost estimate for common deployment presets: small-web-app, medium-api-server, large-database, ml-training, kubernetes-cluster.',
156
+ inputSchema: {
157
+ type: 'object',
158
+ properties: {
159
+ preset: {
160
+ type: 'string',
161
+ enum: ['small-web-app', 'medium-api-server', 'large-database', 'ml-training', 'kubernetes-cluster'],
162
+ description: 'Deployment preset',
163
+ },
164
+ region: { type: 'string', description: 'OCI region' },
165
+ },
166
+ required: ['preset'],
167
+ },
168
+ },
169
+ // Compute tools
170
+ {
171
+ name: 'list_compute_shapes',
172
+ description: 'List all OCI compute shapes (VMs, bare metal, GPU) with OCPU and memory pricing.',
173
+ inputSchema: {
174
+ type: 'object',
175
+ properties: {
176
+ family: { type: 'string', description: 'Filter by shape family (e.g., E4, E5, A1, GPU)' },
177
+ type: { type: 'string', description: 'Filter by type (e.g., flexible-vm, bare-metal, gpu)' },
178
+ maxOcpuPrice: { type: 'number', description: 'Maximum OCPU price per hour' },
179
+ },
180
+ },
181
+ },
182
+ {
183
+ name: 'get_compute_shape_details',
184
+ description: 'Get detailed pricing and configuration options for a specific compute shape.',
185
+ inputSchema: {
186
+ type: 'object',
187
+ properties: {
188
+ shapeFamily: { type: 'string', description: 'Shape family (e.g., VM.Standard.E5.Flex)' },
189
+ },
190
+ required: ['shapeFamily'],
191
+ },
192
+ },
193
+ {
194
+ name: 'compare_compute_shapes',
195
+ description: 'Compare pricing between multiple compute shapes.',
196
+ inputSchema: {
197
+ type: 'object',
198
+ properties: {
199
+ shapes: {
200
+ type: 'array',
201
+ items: { type: 'string' },
202
+ description: 'Array of shape families to compare',
203
+ },
204
+ },
205
+ required: ['shapes'],
206
+ },
207
+ },
208
+ // Storage tools
209
+ {
210
+ name: 'list_storage_options',
211
+ description: 'List all OCI storage options (block, object, file, archive) with pricing.',
212
+ inputSchema: {
213
+ type: 'object',
214
+ properties: {
215
+ type: {
216
+ type: 'string',
217
+ enum: ['block', 'object', 'file', 'archive'],
218
+ description: 'Filter by storage type',
219
+ },
220
+ },
221
+ },
222
+ },
223
+ {
224
+ name: 'calculate_storage_cost',
225
+ description: 'Calculate storage cost for a specific configuration.',
226
+ inputSchema: {
227
+ type: 'object',
228
+ properties: {
229
+ blockVolumeGB: { type: 'number' },
230
+ blockPerformanceTier: { type: 'string', enum: ['basic', 'balanced', 'high', 'ultra'] },
231
+ objectStorageGB: { type: 'number' },
232
+ objectStorageTier: { type: 'string', enum: ['standard', 'infrequent', 'archive'] },
233
+ fileStorageGB: { type: 'number' },
234
+ },
235
+ },
236
+ },
237
+ {
238
+ name: 'compare_storage_tiers',
239
+ description: 'Compare all storage tier pricing for a given size.',
240
+ inputSchema: {
241
+ type: 'object',
242
+ properties: {
243
+ sizeGB: { type: 'number', description: 'Storage size in GB' },
244
+ },
245
+ required: ['sizeGB'],
246
+ },
247
+ },
248
+ // Database tools
249
+ {
250
+ name: 'list_database_options',
251
+ description: 'List all OCI database options (Autonomous, MySQL, PostgreSQL, NoSQL) with pricing.',
252
+ inputSchema: {
253
+ type: 'object',
254
+ properties: {
255
+ type: {
256
+ type: 'string',
257
+ enum: ['autonomous', 'mysql', 'postgresql', 'nosql', 'base-db', 'exadata'],
258
+ description: 'Filter by database type',
259
+ },
260
+ licenseType: {
261
+ type: 'string',
262
+ enum: ['included', 'byol'],
263
+ description: 'Filter by license type',
264
+ },
265
+ },
266
+ },
267
+ },
268
+ {
269
+ name: 'calculate_database_cost',
270
+ description: 'Calculate database cost for a specific configuration.',
271
+ inputSchema: {
272
+ type: 'object',
273
+ properties: {
274
+ type: {
275
+ type: 'string',
276
+ enum: ['autonomous-transaction-processing', 'autonomous-data-warehouse', 'autonomous-json', 'mysql-heatwave', 'postgresql', 'nosql', 'base-database-vm'],
277
+ description: 'Database type',
278
+ },
279
+ computeUnits: { type: 'number', description: 'ECPUs or OCPUs' },
280
+ storageGB: { type: 'number' },
281
+ licenseType: { type: 'string', enum: ['included', 'byol'] },
282
+ hoursPerMonth: { type: 'number' },
283
+ },
284
+ required: ['type', 'computeUnits', 'storageGB'],
285
+ },
286
+ },
287
+ {
288
+ name: 'compare_database_options',
289
+ description: 'Compare database options for a specific workload type.',
290
+ inputSchema: {
291
+ type: 'object',
292
+ properties: {
293
+ workloadType: {
294
+ type: 'string',
295
+ enum: ['oltp', 'analytics', 'document', 'general'],
296
+ description: 'Workload type',
297
+ },
298
+ },
299
+ required: ['workloadType'],
300
+ },
301
+ },
302
+ // Networking tools
303
+ {
304
+ name: 'list_networking_options',
305
+ description: 'List all OCI networking options (load balancers, FastConnect, VPN, egress) with pricing. Many networking services are FREE.',
306
+ inputSchema: {
307
+ type: 'object',
308
+ properties: {
309
+ type: {
310
+ type: 'string',
311
+ enum: ['load-balancer', 'fastconnect', 'vpn', 'egress', 'gateway'],
312
+ description: 'Filter by networking type',
313
+ },
314
+ },
315
+ },
316
+ },
317
+ {
318
+ name: 'calculate_networking_cost',
319
+ description: 'Calculate networking cost for a specific configuration, including free tier credits.',
320
+ inputSchema: {
321
+ type: 'object',
322
+ properties: {
323
+ flexibleLoadBalancers: { type: 'number' },
324
+ loadBalancerBandwidthMbps: { type: 'number' },
325
+ networkLoadBalancers: { type: 'number' },
326
+ outboundDataGB: { type: 'number' },
327
+ fastConnectGbps: { type: 'number', enum: [1, 10, 100] },
328
+ vpnConnections: { type: 'number' },
329
+ natGateways: { type: 'number' },
330
+ },
331
+ },
332
+ },
333
+ {
334
+ name: 'compare_data_egress',
335
+ description: 'Compare OCI data egress pricing with AWS/Azure/GCP.',
336
+ inputSchema: {
337
+ type: 'object',
338
+ properties: {
339
+ monthlyGB: { type: 'number', description: 'Monthly outbound data in GB' },
340
+ },
341
+ required: ['monthlyGB'],
342
+ },
343
+ },
344
+ // Kubernetes tools
345
+ {
346
+ name: 'list_kubernetes_options',
347
+ description: 'List OKE (Kubernetes) cluster options and pricing. Basic clusters are FREE.',
348
+ inputSchema: {
349
+ type: 'object',
350
+ properties: {
351
+ clusterType: {
352
+ type: 'string',
353
+ enum: ['basic', 'enhanced', 'virtual-nodes'],
354
+ description: 'Filter by cluster type',
355
+ },
356
+ },
357
+ },
358
+ },
359
+ {
360
+ name: 'calculate_kubernetes_cost',
361
+ description: 'Calculate OKE cluster cost including control plane and worker nodes.',
362
+ inputSchema: {
363
+ type: 'object',
364
+ properties: {
365
+ clusterType: { type: 'string', enum: ['basic', 'enhanced'] },
366
+ nodeCount: { type: 'number' },
367
+ nodeShape: { type: 'string', description: 'Worker node shape (e.g., VM.Standard.E5.Flex)' },
368
+ nodeOcpus: { type: 'number' },
369
+ nodeMemoryGB: { type: 'number' },
370
+ virtualNodes: {
371
+ type: 'object',
372
+ properties: {
373
+ podOcpus: { type: 'number' },
374
+ podMemoryGB: { type: 'number' },
375
+ hoursPerMonth: { type: 'number' },
376
+ },
377
+ },
378
+ },
379
+ required: ['clusterType', 'nodeCount', 'nodeShape', 'nodeOcpus', 'nodeMemoryGB'],
380
+ },
381
+ },
382
+ {
383
+ name: 'compare_kubernetes_providers',
384
+ description: 'Compare OKE pricing with AWS EKS, Azure AKS, and GCP GKE.',
385
+ inputSchema: {
386
+ type: 'object',
387
+ properties: {
388
+ nodeCount: { type: 'number' },
389
+ nodeOcpus: { type: 'number' },
390
+ nodeMemoryGB: { type: 'number' },
391
+ },
392
+ required: ['nodeCount', 'nodeOcpus', 'nodeMemoryGB'],
393
+ },
394
+ },
395
+ // Utility tools
396
+ {
397
+ name: 'get_free_tier',
398
+ description: 'Get details about OCI Always Free tier resources.',
399
+ inputSchema: {
400
+ type: 'object',
401
+ properties: {},
402
+ },
403
+ },
404
+ {
405
+ name: 'get_pricing_info',
406
+ description: 'Get metadata about the pricing data (last updated, source, etc.).',
407
+ inputSchema: {
408
+ type: 'object',
409
+ properties: {},
410
+ },
411
+ },
412
+ // Real-time API tools
413
+ {
414
+ name: 'fetch_realtime_pricing',
415
+ description: 'Fetch real-time pricing from Oracle\'s public API. Returns 600+ products with current prices. No authentication required.',
416
+ inputSchema: {
417
+ type: 'object',
418
+ properties: {
419
+ currency: {
420
+ type: 'string',
421
+ description: 'Currency code (default: USD). Supports: USD, EUR, GBP, JPY, AUD, CAD, etc.',
422
+ },
423
+ category: {
424
+ type: 'string',
425
+ description: 'Filter by service category (e.g., "Compute", "Storage", "Database")',
426
+ },
427
+ search: {
428
+ type: 'string',
429
+ description: 'Search term to filter products by name or SKU',
430
+ },
431
+ },
432
+ },
433
+ },
434
+ {
435
+ name: 'list_realtime_categories',
436
+ description: 'List all service categories available from Oracle\'s real-time pricing API.',
437
+ inputSchema: {
438
+ type: 'object',
439
+ properties: {},
440
+ },
441
+ },
442
+ ];
443
+ // Handle list tools request
444
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
445
+ return { tools: TOOLS };
446
+ });
447
+ // Handle tool calls
448
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
449
+ const { name, arguments: args } = request.params;
450
+ try {
451
+ let result;
452
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
453
+ const typedArgs = args;
454
+ switch (name) {
455
+ // Core tools
456
+ case 'get_pricing':
457
+ result = getPricing(typedArgs);
458
+ break;
459
+ case 'list_services':
460
+ result = listServices(typedArgs);
461
+ break;
462
+ case 'compare_regions':
463
+ result = compareRegions(typedArgs);
464
+ break;
465
+ case 'list_regions':
466
+ result = listRegions();
467
+ break;
468
+ case 'calculate_monthly_cost':
469
+ result = calculateMonthlyCost(typedArgs);
470
+ break;
471
+ case 'quick_estimate':
472
+ result = quickEstimate(typedArgs);
473
+ break;
474
+ // Compute tools
475
+ case 'list_compute_shapes':
476
+ result = listComputeShapes(typedArgs);
477
+ break;
478
+ case 'get_compute_shape_details':
479
+ result = getComputeShapeDetails(typedArgs.shapeFamily);
480
+ break;
481
+ case 'compare_compute_shapes':
482
+ result = compareComputeShapes(typedArgs.shapes);
483
+ break;
484
+ // Storage tools
485
+ case 'list_storage_options':
486
+ result = listStorageOptions(typedArgs);
487
+ break;
488
+ case 'calculate_storage_cost':
489
+ result = calculateStorageCost(typedArgs);
490
+ break;
491
+ case 'compare_storage_tiers':
492
+ result = compareStorageTiers(typedArgs.sizeGB);
493
+ break;
494
+ // Database tools
495
+ case 'list_database_options':
496
+ result = listDatabaseOptions(typedArgs);
497
+ break;
498
+ case 'calculate_database_cost':
499
+ result = calculateDatabaseCost(typedArgs);
500
+ break;
501
+ case 'compare_database_options':
502
+ result = compareDatabaseOptions(typedArgs.workloadType);
503
+ break;
504
+ // Networking tools
505
+ case 'list_networking_options':
506
+ result = listNetworkingOptions(typedArgs);
507
+ break;
508
+ case 'calculate_networking_cost':
509
+ result = calculateNetworkingCost(typedArgs);
510
+ break;
511
+ case 'compare_data_egress':
512
+ result = compareDataEgress(typedArgs.monthlyGB);
513
+ break;
514
+ // Kubernetes tools
515
+ case 'list_kubernetes_options':
516
+ result = listKubernetesOptions(typedArgs);
517
+ break;
518
+ case 'calculate_kubernetes_cost':
519
+ result = calculateKubernetesCost(typedArgs);
520
+ break;
521
+ case 'compare_kubernetes_providers':
522
+ result = compareKubernetesProviders(typedArgs.nodeCount, typedArgs.nodeOcpus, typedArgs.nodeMemoryGB);
523
+ break;
524
+ // Utility tools
525
+ case 'get_free_tier':
526
+ result = getFreeTier();
527
+ break;
528
+ case 'get_pricing_info':
529
+ result = {
530
+ lastUpdated: getLastUpdated(),
531
+ source: 'https://www.oracle.com/cloud/price-list/',
532
+ realtimeApi: 'https://apexapps.oracle.com/pls/apex/cetools/api/v1/products/',
533
+ note: 'OCI maintains consistent pricing across all commercial regions globally.',
534
+ version: '1.0.0',
535
+ dataMode: 'bundled (use fetch_realtime_pricing for live API data)',
536
+ };
537
+ break;
538
+ // Real-time API tools
539
+ case 'fetch_realtime_pricing':
540
+ result = await fetchRealTimePricing({
541
+ currency: typedArgs.currency,
542
+ category: typedArgs.category,
543
+ search: typedArgs.search,
544
+ });
545
+ break;
546
+ case 'list_realtime_categories':
547
+ result = {
548
+ categories: await getRealTimeCategories(),
549
+ note: 'Categories from Oracle\'s real-time pricing API',
550
+ };
551
+ break;
552
+ default:
553
+ throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
554
+ }
555
+ return {
556
+ content: [
557
+ {
558
+ type: 'text',
559
+ text: JSON.stringify(result, null, 2),
560
+ },
561
+ ],
562
+ };
563
+ }
564
+ catch (error) {
565
+ if (error instanceof McpError) {
566
+ throw error;
567
+ }
568
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
569
+ throw new McpError(ErrorCode.InternalError, errorMessage);
570
+ }
571
+ });
572
+ // Start the server
573
+ async function main() {
574
+ const transport = new StdioServerTransport();
575
+ await server.connect(transport);
576
+ console.error('OCI Pricing MCP Server running on stdio');
577
+ }
578
+ main().catch((error) => {
579
+ console.error('Fatal error:', error);
580
+ process.exit(1);
581
+ });
582
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * OCI Monthly Cost Calculator
3
+ */
4
+ import type { CostEstimateInput, CostEstimateResult, OCIRegion } from '../types.js';
5
+ /**
6
+ * Calculate monthly cost for a given configuration
7
+ */
8
+ export declare function calculateMonthlyCost(input: CostEstimateInput): CostEstimateResult;
9
+ /**
10
+ * Quick estimate for common configurations
11
+ */
12
+ export interface QuickEstimateParams {
13
+ preset: 'small-web-app' | 'medium-api-server' | 'large-database' | 'ml-training' | 'kubernetes-cluster';
14
+ region?: OCIRegion;
15
+ }
16
+ export declare function quickEstimate(params: QuickEstimateParams): CostEstimateResult;
17
+ //# sourceMappingURL=calculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculator.d.ts","sourceRoot":"","sources":["../../src/tools/calculator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAuB,MAAM,aAAa,CAAC;AAIzG;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CAkQjF;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EACF,eAAe,GACf,mBAAmB,GACnB,gBAAgB,GAChB,aAAa,GACb,oBAAoB,CAAC;IACzB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,mBAAmB,GAAG,kBAAkB,CA0F7E"}