oci-pricing-mcp 1.3.2 β 1.3.3
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 +247 -101
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,153 +1,299 @@
|
|
|
1
|
-
# MCP
|
|
1
|
+
# OCI Pricing MCP Server
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server that provides Oracle Cloud Infrastructure pricing data to AI assistants like Claude.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> **Important Note:** This server provides pricing data from Oracle's public pricing API and bundled data. We cannot guarantee that AI assistants will always interpret pricing correctly or identify the absolute cheapest options. Always verify pricing on [Oracle's official price list](https://www.oracle.com/cloud/price-list/) before making decisions. All API calls are free of charge (no authentication required).
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Why This Exists
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
AWS, Azure, and GCP all have pricing MCP servers. OCI did not - until now.
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
| Provider | Pricing MCP | Type |
|
|
12
|
+
|----------|-------------|------|
|
|
13
|
+
| AWS | [aws-pricing-mcp-server](https://awslabs.github.io/mcp/servers/aws-pricing-mcp-server) | Official |
|
|
14
|
+
| Azure | [azure-pricing-mcp](https://github.com/charris-msft/azure-pricing-mcp) | Community |
|
|
15
|
+
| GCP | [gcp-cost-mcp-server](https://github.com/nozomi-koborinai/gcp-cost-mcp-server) | Community |
|
|
16
|
+
| OCI | **oci-pricing-mcp** | Community |
|
|
12
17
|
|
|
13
|
-
|
|
14
|
-
- **Adam Jones** (Anthropic) [@domdomegg](https://github.com/domdomegg)
|
|
15
|
-
- **Tadas Antanavicius** (PulseMCP) [@tadasant](https://github.com/tadasant)
|
|
16
|
-
- **Toby Padilla** (GitHub) [@toby](https://github.com/toby)
|
|
17
|
-
- **Radoslav (Rado) Dimitrov** (Stacklok) [@rdimitrov](https://github.com/rdimitrov)
|
|
18
|
+
### Example: "How much does a 4 OCPU, 32GB VM cost on OCI?"
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
**You ask Claude:**
|
|
21
|
+
> What's the monthly cost for a VM with 4 OCPUs and 32GB RAM on OCI?
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
**Claude responds (using this MCP):**
|
|
24
|
+
```
|
|
25
|
+
For a VM.Standard.E5.Flex with 4 OCPUs and 32GB RAM:
|
|
22
26
|
|
|
23
|
-
|
|
27
|
+
OCPU cost: 4 OCPUs Γ $0.03/hr = $0.12/hr
|
|
28
|
+
Memory cost: 32 GB Γ $0.002/hr = $0.064/hr
|
|
29
|
+
Total hourly: $0.184/hr
|
|
24
30
|
|
|
25
|
-
|
|
26
|
-
- **[Discussions](https://github.com/modelcontextprotocol/registry/discussions)** - Propose and discuss product/technical requirements
|
|
27
|
-
- **[Issues](https://github.com/modelcontextprotocol/registry/issues)** - Track well-scoped technical work
|
|
28
|
-
- **[Pull Requests](https://github.com/modelcontextprotocol/registry/pulls)** - Contribute work towards issues
|
|
31
|
+
Monthly cost (730 hrs): $134.32
|
|
29
32
|
|
|
30
|
-
|
|
33
|
+
For comparison, the Arm-based A1 shape would be significantly cheaper:
|
|
31
34
|
|
|
32
|
-
|
|
35
|
+
A1 total: 4 Γ $0.01 + 32 Γ $0.0015 = $0.088/hr
|
|
36
|
+
Monthly: $64.24 (52% savings)
|
|
37
|
+
```
|
|
33
38
|
|
|
34
|
-
|
|
35
|
-
- **Go 1.24.x**
|
|
36
|
-
- **ko** - Container image builder for Go ([installation instructions](https://ko.build/install/))
|
|
37
|
-
- **golangci-lint v2.4.0**
|
|
39
|
+
### Example: "Compare OCI vs AWS for data egress"
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
**You ask Claude:**
|
|
42
|
+
> How much would I save on OCI vs AWS for 5TB of monthly data egress?
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
# Start full development environment
|
|
43
|
-
make dev-compose
|
|
44
|
+
**Claude responds (using this MCP):**
|
|
44
45
|
```
|
|
46
|
+
Data Egress Cost Comparison (5 TB/month):
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
OCI:
|
|
49
|
+
First 10 TB free β $0.00
|
|
47
50
|
|
|
48
|
-
|
|
51
|
+
AWS:
|
|
52
|
+
First 10 GB: free
|
|
53
|
+
Next 9.99 TB @ $0.09/GB β ~$450/month
|
|
49
54
|
|
|
50
|
-
|
|
55
|
+
Monthly savings with OCI: $450 (100% savings)
|
|
51
56
|
|
|
52
|
-
|
|
57
|
+
OCI includes 10 TB of free outbound data transfer monthly,
|
|
58
|
+
making it significantly more cost-effective for data-heavy workloads.
|
|
59
|
+
```
|
|
53
60
|
|
|
54
|
-
|
|
55
|
-
<summary>Alternative: Running a pre-built Docker image</summary>
|
|
61
|
+
## Installation
|
|
56
62
|
|
|
57
|
-
|
|
63
|
+
### Quick Install (Recommended)
|
|
58
64
|
|
|
59
65
|
```bash
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
# Run latest from main branch (continuous deployment)
|
|
64
|
-
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
|
|
66
|
+
claude mcp add oci-pricing -- npx oci-pricing-mcp
|
|
67
|
+
```
|
|
65
68
|
|
|
66
|
-
|
|
67
|
-
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
|
|
69
|
+
### From Source
|
|
68
70
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
+
```bash
|
|
72
|
+
git clone https://github.com/jasonwilbur/oci-pricing-mcp.git
|
|
73
|
+
cd oci-pricing-mcp
|
|
74
|
+
npm install
|
|
75
|
+
npm run build
|
|
76
|
+
claude mcp add oci-pricing -- node /path/to/oci-pricing-mcp/dist/index.js
|
|
71
77
|
```
|
|
72
78
|
|
|
73
|
-
|
|
74
|
-
- **Releases**: `latest`, `v1.0.0`, `v1.1.0`, etc.
|
|
75
|
-
- **Continuous**: `main` (latest main branch build)
|
|
76
|
-
- **Development**: `main-<date>-<sha>` (specific commit builds)
|
|
79
|
+
## Available Tools
|
|
77
80
|
|
|
78
|
-
|
|
81
|
+
### Core Tools
|
|
79
82
|
|
|
80
|
-
|
|
83
|
+
| Tool | Description |
|
|
84
|
+
|------|-------------|
|
|
85
|
+
| `get_pricing` | Get pricing for any OCI resource by service/type |
|
|
86
|
+
| `list_services` | List all OCI services with pricing categories |
|
|
87
|
+
| `compare_regions` | Compare pricing across regions (OCI has consistent global pricing) |
|
|
88
|
+
| `list_regions` | List all available OCI regions |
|
|
89
|
+
| `calculate_monthly_cost` | Estimate monthly spend for a configuration |
|
|
90
|
+
| `quick_estimate` | Get cost estimates for common deployment presets |
|
|
81
91
|
|
|
82
|
-
|
|
92
|
+
### Compute Tools
|
|
83
93
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
94
|
+
| Tool | Description |
|
|
95
|
+
|------|-------------|
|
|
96
|
+
| `list_compute_shapes` | List VM shapes (E4, E5, A1, GPU, etc.) with pricing |
|
|
97
|
+
| `get_compute_shape_details` | Get detailed info for a specific shape |
|
|
98
|
+
| `compare_compute_shapes` | Compare pricing between shapes |
|
|
99
|
+
|
|
100
|
+
### Storage Tools
|
|
101
|
+
|
|
102
|
+
| Tool | Description |
|
|
103
|
+
|------|-------------|
|
|
104
|
+
| `list_storage_options` | Block, object, file, archive storage pricing |
|
|
105
|
+
| `calculate_storage_cost` | Calculate cost for specific storage config |
|
|
106
|
+
| `compare_storage_tiers` | Compare all tiers for a given size |
|
|
107
|
+
|
|
108
|
+
### Database Tools
|
|
109
|
+
|
|
110
|
+
| Tool | Description |
|
|
111
|
+
|------|-------------|
|
|
112
|
+
| `list_database_options` | Autonomous DB, MySQL, PostgreSQL pricing |
|
|
113
|
+
| `calculate_database_cost` | Calculate database cost |
|
|
114
|
+
| `compare_database_options` | Compare options for workload type |
|
|
115
|
+
|
|
116
|
+
### Networking Tools
|
|
117
|
+
|
|
118
|
+
| Tool | Description |
|
|
119
|
+
|------|-------------|
|
|
120
|
+
| `list_networking_options` | Load balancers, FastConnect, VPN, egress |
|
|
121
|
+
| `calculate_networking_cost` | Calculate networking cost with free tier |
|
|
122
|
+
| `compare_data_egress` | Compare OCI egress vs AWS/Azure/GCP |
|
|
123
|
+
|
|
124
|
+
### Kubernetes Tools
|
|
125
|
+
|
|
126
|
+
| Tool | Description |
|
|
127
|
+
|------|-------------|
|
|
128
|
+
| `list_kubernetes_options` | OKE cluster options (Basic is FREE) |
|
|
129
|
+
| `calculate_kubernetes_cost` | Calculate cluster cost |
|
|
130
|
+
| `compare_kubernetes_providers` | Compare OKE vs EKS/AKS/GKE |
|
|
131
|
+
|
|
132
|
+
### Utility Tools
|
|
133
|
+
|
|
134
|
+
| Tool | Description |
|
|
135
|
+
|------|-------------|
|
|
136
|
+
| `get_free_tier` | OCI Always Free tier details |
|
|
137
|
+
| `get_pricing_info` | Pricing data metadata |
|
|
87
138
|
|
|
88
|
-
|
|
89
|
-
|
|
139
|
+
### Real-Time Pricing Tools
|
|
140
|
+
|
|
141
|
+
| Tool | Description |
|
|
142
|
+
|------|-------------|
|
|
143
|
+
| `fetch_realtime_pricing` | Fetch live pricing from Oracle's API (600+ products) |
|
|
144
|
+
| `list_realtime_categories` | List all 109 service categories from the API |
|
|
145
|
+
|
|
146
|
+
## Usage Examples
|
|
147
|
+
|
|
148
|
+
### Ask Claude about OCI pricing
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
What's the cost of running a VM.Standard.E5.Flex with 4 OCPUs and 32GB RAM?
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
Compare OCI block storage tiers for 1TB of data
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
Estimate monthly cost for a Kubernetes cluster with 3 nodes
|
|
90
160
|
```
|
|
91
161
|
|
|
92
|
-
|
|
162
|
+
```
|
|
163
|
+
How much would I save using OCI vs AWS for 5TB of monthly data egress?
|
|
164
|
+
```
|
|
93
165
|
|
|
94
|
-
|
|
166
|
+
### Quick Estimates
|
|
95
167
|
|
|
96
|
-
```bash
|
|
97
|
-
# Run lint, unit tests and integration tests
|
|
98
|
-
make check
|
|
99
168
|
```
|
|
169
|
+
Give me a quick estimate for a small web app on OCI
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Available presets:
|
|
173
|
+
- `small-web-app` - 1 OCPU, 8GB, 100GB storage, LB
|
|
174
|
+
- `medium-api-server` - 4 OCPU, 32GB, 500GB storage
|
|
175
|
+
- `large-database` - 8 OCPU, 128GB, Autonomous DB
|
|
176
|
+
- `ml-training` - 8x A100 GPUs (part-time)
|
|
177
|
+
- `kubernetes-cluster` - 3 nodes, 4 OCPU each
|
|
178
|
+
|
|
179
|
+
## OCI Pricing Highlights
|
|
180
|
+
|
|
181
|
+
### Key Differentiators
|
|
100
182
|
|
|
101
|
-
|
|
183
|
+
- **Consistent Global Pricing**: Unlike AWS/Azure/GCP, OCI prices are the same across all commercial regions
|
|
184
|
+
- **10 TB Free Egress**: First 10 TB of outbound data transfer is free monthly
|
|
185
|
+
- **Free Kubernetes Control Plane**: OKE Basic clusters have no management fee
|
|
186
|
+
- **Network Load Balancer**: Completely free (no hourly or data charges)
|
|
187
|
+
- **Always Free Tier**: Never expires - 4 Arm OCPUs, 24GB RAM, 200GB storage, 2 Autonomous DBs
|
|
102
188
|
|
|
103
|
-
|
|
104
|
-
For Claude and other AI tools: Always prefer make targets over custom commands where possible.
|
|
105
|
-
-->
|
|
189
|
+
### Cost-Effective Shapes
|
|
106
190
|
|
|
107
|
-
|
|
191
|
+
| Shape | OCPU Price | Best For |
|
|
192
|
+
|-------|------------|----------|
|
|
193
|
+
| VM.Standard.A1.Flex (Arm) | $0.01/hr | Best value, Arm workloads |
|
|
194
|
+
| VM.Standard.E5.Flex | $0.03/hr | New x86 deployments |
|
|
195
|
+
| VM.Standard.E4.Flex | $0.025/hr | Previous gen, still good |
|
|
108
196
|
|
|
109
|
-
###
|
|
197
|
+
### OCPU vs vCPU
|
|
198
|
+
|
|
199
|
+
1 OCPU = 2 vCPUs for x86 architectures. OCPUs represent physical cores, so OCI's $0.03/OCPU/hr is equivalent to $0.015/vCPU/hr.
|
|
200
|
+
|
|
201
|
+
## Data Sources
|
|
202
|
+
|
|
203
|
+
This MCP server supports two data modes:
|
|
204
|
+
|
|
205
|
+
### Bundled Data (Default)
|
|
206
|
+
|
|
207
|
+
Pricing data is synced from Oracle's public pricing API and bundled with the server. This provides fast, offline access to the complete OCI pricing catalog.
|
|
208
|
+
|
|
209
|
+
- **Products**: 602 SKUs (full API dataset)
|
|
210
|
+
- **Categories**: 109 service categories
|
|
211
|
+
- **Detailed compute shapes**: 15 curated shapes with OCPU/memory breakdowns
|
|
212
|
+
- **Timestamps**: `apiLastUpdated` and `bundledDataGenerated` for verification
|
|
213
|
+
|
|
214
|
+
### Real-Time API
|
|
215
|
+
|
|
216
|
+
For the most current pricing between releases, use `fetch_realtime_pricing` which queries Oracle's API directly:
|
|
110
217
|
|
|
111
218
|
```
|
|
112
|
-
|
|
113
|
-
β βββ publisher/ # Server publishing tool
|
|
114
|
-
βββ data/ # Seed data
|
|
115
|
-
βββ deploy/ # Deployment configuration (Pulumi)
|
|
116
|
-
βββ docs/ # Documentation
|
|
117
|
-
βββ internal/ # Private application code
|
|
118
|
-
β βββ api/ # HTTP handlers and routing
|
|
119
|
-
β βββ auth/ # Authentication (GitHub OAuth, JWT, namespace blocking)
|
|
120
|
-
β βββ config/ # Configuration management
|
|
121
|
-
β βββ database/ # Data persistence (PostgreSQL)
|
|
122
|
-
β βββ service/ # Business logic
|
|
123
|
-
β βββ telemetry/ # Metrics and monitoring
|
|
124
|
-
β βββ validators/ # Input validation
|
|
125
|
-
βββ pkg/ # Public packages
|
|
126
|
-
β βββ api/ # API types and structures
|
|
127
|
-
β β βββ v0/ # Version 0 API types
|
|
128
|
-
β βββ model/ # Data models for server.json
|
|
129
|
-
βββ scripts/ # Development and testing scripts
|
|
130
|
-
βββ tests/ # Integration tests
|
|
131
|
-
βββ tools/ # CLI tools and utilities
|
|
132
|
-
βββ validate-*.sh # Schema validation tools
|
|
219
|
+
https://apexapps.oracle.com/pls/apex/cetools/api/v1/products/
|
|
133
220
|
```
|
|
134
221
|
|
|
135
|
-
|
|
222
|
+
- **Authentication**: None required (public API)
|
|
223
|
+
- **Multi-currency**: USD, EUR, GBP, JPY, AUD, CAD, and more
|
|
224
|
+
- **Updates**: Oracle updates pricing data periodically
|
|
225
|
+
|
|
226
|
+
## FAQ
|
|
227
|
+
|
|
228
|
+
### Does OCI have a pricing API?
|
|
229
|
+
|
|
230
|
+
Yes! Oracle provides a public pricing API at `https://apexapps.oracle.com/pls/apex/cetools/api/v1/products/` that returns all OCI product pricing in JSON format. No authentication is required. This MCP server uses this API for the `fetch_realtime_pricing` tool.
|
|
231
|
+
|
|
232
|
+
### Where does the pricing data come from?
|
|
233
|
+
|
|
234
|
+
- **Bundled data**: Full dataset synced from Oracle's public pricing API and included in the npm package
|
|
235
|
+
- **Real-time data**: Fetched directly from Oracle's public pricing API on-demand
|
|
236
|
+
|
|
237
|
+
### How often is the bundled data updated?
|
|
238
|
+
|
|
239
|
+
The bundled pricing data is synced from Oracle's API with each npm release. Check `metadata.bundledDataGenerated` for the sync date. Use `fetch_realtime_pricing` between releases to check for updates.
|
|
240
|
+
|
|
241
|
+
### Why are prices the same across all regions?
|
|
242
|
+
|
|
243
|
+
Unlike AWS, Azure, and GCP, Oracle Cloud Infrastructure maintains **consistent global pricing** across all commercial regions. This simplifies cost planning and means you can deploy anywhere without price variations.
|
|
244
|
+
|
|
245
|
+
### What's the difference between OCPU and vCPU?
|
|
136
246
|
|
|
137
|
-
|
|
138
|
-
- **GitHub OAuth** - For publishing by logging into GitHub
|
|
139
|
-
- **GitHub OIDC** - For publishing from GitHub Actions
|
|
140
|
-
- **DNS verification** - For proving ownership of a domain and its subdomains
|
|
141
|
-
- **HTTP verification** - For proving ownership of a domain
|
|
247
|
+
1 OCPU = 2 vCPUs for x86 architectures. OCPUs represent physical cores with hyper-threading, so OCI's $0.03/OCPU/hr is equivalent to $0.015/vCPU/hr when comparing to AWS/Azure/GCP.
|
|
142
248
|
|
|
143
|
-
|
|
144
|
-
- `io.github.domdomegg/my-cool-mcp` you must login to GitHub as `domdomegg`, or be in a GitHub Action on domdomegg's repos
|
|
145
|
-
- `me.adamjones/my-cool-mcp` you must prove ownership of `adamjones.me` via DNS or HTTP challenge
|
|
249
|
+
### Can I query my actual OCI spend?
|
|
146
250
|
|
|
147
|
-
|
|
251
|
+
This MCP server provides pricing data, not account spend. For actual usage and spend tracking, you would need to use the OCI Cost Management APIs with proper authentication. This could be added as a future enhancement.
|
|
148
252
|
|
|
149
|
-
|
|
253
|
+
### What's NOT included in the pricing data?
|
|
150
254
|
|
|
151
|
-
|
|
255
|
+
The bundled data includes all 602 products from Oracle's public pricing API. However, some pricing is not available through this API:
|
|
256
|
+
|
|
257
|
+
- **Committed use discounts** - Only Pay-As-You-Go pricing is shown; annual/3-year commits require Oracle sales
|
|
258
|
+
- **Government/sovereign cloud** - Dedicated government regions have separate pricing
|
|
259
|
+
- **Oracle SaaS products** - Fusion Apps, NetSuite, etc. are separate from OCI IaaS
|
|
260
|
+
- **Custom/negotiated pricing** - Enterprise agreements with volume discounts
|
|
261
|
+
- **Support costs** - Premier Support pricing is separate
|
|
262
|
+
|
|
263
|
+
For these, contact [Oracle Sales](https://www.oracle.com/cloud/contact/) or check the [Oracle Cloud Price List](https://www.oracle.com/cloud/price-list/) directly.
|
|
264
|
+
|
|
265
|
+
### How do I verify the pricing is accurate?
|
|
266
|
+
|
|
267
|
+
Each bundled data release includes timestamps:
|
|
268
|
+
- `apiLastUpdated`: When Oracle last updated their pricing API
|
|
269
|
+
- `bundledDataGenerated`: When this package synced the data
|
|
270
|
+
|
|
271
|
+
You can verify prices against [Oracle's official price list](https://www.oracle.com/cloud/price-list/) or use the `fetch_realtime_pricing` tool to get live data.
|
|
272
|
+
|
|
273
|
+
## Development
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
# Install dependencies
|
|
277
|
+
npm install
|
|
278
|
+
|
|
279
|
+
# Build
|
|
280
|
+
npm run build
|
|
281
|
+
|
|
282
|
+
# Run locally
|
|
283
|
+
node dist/index.js
|
|
284
|
+
|
|
285
|
+
# Watch mode
|
|
286
|
+
npm run dev
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
## Author
|
|
290
|
+
|
|
291
|
+
**Jason Wilbur** - [jasonwilbur.com](https://jasonwilbur.com)
|
|
292
|
+
|
|
293
|
+
## License
|
|
294
|
+
|
|
295
|
+
Apache 2.0
|
|
296
|
+
|
|
297
|
+
## Contributing
|
|
152
298
|
|
|
153
|
-
|
|
299
|
+
Issues and pull requests welcome at [GitHub](https://github.com/jasonwilbur/oci-pricing-mcp).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "oci-pricing-mcp",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.3",
|
|
4
4
|
"mcpName": "io.github.jasonwilbur/oci-pricing-mcp",
|
|
5
5
|
"description": "OCI Pricing MCP Server - Model Context Protocol server for Oracle Cloud Infrastructure pricing information",
|
|
6
6
|
"type": "module",
|