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.
Files changed (2) hide show
  1. package/README.md +247 -101
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,153 +1,299 @@
1
- # MCP Registry
1
+ # OCI Pricing MCP Server
2
2
 
3
- The MCP registry provides MCP clients with a list of MCP servers, like an app store for MCP servers.
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
- [**πŸ“€ Publish my MCP server**](docs/modelcontextprotocol-io/quickstart.mdx) | [**⚑️ Live API docs**](https://registry.modelcontextprotocol.io/docs) | [**πŸ‘€ Ecosystem vision**](docs/design/ecosystem-vision.md) | πŸ“– **[Full documentation](./docs)**
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
- ## Development Status
7
+ ## Why This Exists
8
8
 
9
- **2025-10-24 update**: The Registry API has entered an **API freeze (v0.1)** πŸŽ‰. For the next month or more, the API will remain stable with no breaking changes, allowing integrators to confidently implement support. This freeze applies to v0.1 while development continues on v0. We'll use this period to validate the API in real-world integrations and gather feedback to shape v1 for general availability. Thank you to everyone for your contributions and patienceβ€”your involvement has been key to getting us here!
9
+ AWS, Azure, and GCP all have pricing MCP servers. OCI did not - until now.
10
10
 
11
- **2025-09-08 update**: The registry has launched in preview πŸŽ‰ ([announcement blog post](https://blog.modelcontextprotocol.io/posts/2025-09-08-mcp-registry-preview/)). While the system is now more stable, this is still a preview release and breaking changes or data resets may occur. A general availability (GA) release will follow later. We'd love your feedback in [GitHub discussions](https://github.com/modelcontextprotocol/registry/discussions/new?category=ideas) or in the [#registry-dev Discord](https://discord.com/channels/1358869848138059966/1369487942862504016) ([joining details here](https://modelcontextprotocol.io/community/communication)).
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
- Current key maintainers:
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
- ## Contributing
20
+ **You ask Claude:**
21
+ > What's the monthly cost for a VM with 4 OCPUs and 32GB RAM on OCI?
20
22
 
21
- We use multiple channels for collaboration - see [modelcontextprotocol.io/community/communication](https://modelcontextprotocol.io/community/communication).
23
+ **Claude responds (using this MCP):**
24
+ ```
25
+ For a VM.Standard.E5.Flex with 4 OCPUs and 32GB RAM:
22
26
 
23
- Often (but not always) ideas flow through this pipeline:
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
- - **[Discord](https://modelcontextprotocol.io/community/communication)** - Real-time community discussions
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
- ### Quick start:
33
+ For comparison, the Arm-based A1 shape would be significantly cheaper:
31
34
 
32
- #### Pre-requisites
35
+ A1 total: 4 Γ— $0.01 + 32 Γ— $0.0015 = $0.088/hr
36
+ Monthly: $64.24 (52% savings)
37
+ ```
33
38
 
34
- - **Docker**
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
- #### Running the server
41
+ **You ask Claude:**
42
+ > How much would I save on OCI vs AWS for 5TB of monthly data egress?
40
43
 
41
- ```bash
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
- This starts the registry at [`localhost:8080`](http://localhost:8080) with PostgreSQL. The database uses ephemeral storage and is reset each time you restart the containers, ensuring a clean state for development and testing.
48
+ OCI:
49
+ First 10 TB free β†’ $0.00
47
50
 
48
- **Note:** The registry uses [ko](https://ko.build) to build container images. The `make dev-compose` command automatically builds the registry image with ko and loads it into your local Docker daemon before starting the services.
51
+ AWS:
52
+ First 10 GB: free
53
+ Next 9.99 TB @ $0.09/GB β†’ ~$450/month
49
54
 
50
- By default, the registry seeds from the production API with a filtered subset of servers (to keep startup fast). This ensures your local environment mirrors production behavior and all seed data passes validation. For offline development you can seed from a file without validation with `MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose`.
55
+ Monthly savings with OCI: $450 (100% savings)
51
56
 
52
- The setup can be configured with environment variables in [docker-compose.yml](./docker-compose.yml) - see [.env.example](./.env.example) for a reference.
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
- <details>
55
- <summary>Alternative: Running a pre-built Docker image</summary>
61
+ ## Installation
56
62
 
57
- Pre-built Docker images are automatically published to GitHub Container Registry:
63
+ ### Quick Install (Recommended)
58
64
 
59
65
  ```bash
60
- # Run latest stable release
61
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
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
- # Run specific release version
67
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
69
+ ### From Source
68
70
 
69
- # Run development build from main branch
70
- docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
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
- **Available tags:**
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
- </details>
81
+ ### Core Tools
79
82
 
80
- #### Publishing a server
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
- To publish a server, we've built a simple CLI. You can use it with:
92
+ ### Compute Tools
83
93
 
84
- ```bash
85
- # Build the latest CLI
86
- make publisher
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
- # Use it!
89
- ./bin/mcp-publisher --help
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
- See [the publisher guide](./docs/modelcontextprotocol-io/quickstart.mdx) for more details.
162
+ ```
163
+ How much would I save using OCI vs AWS for 5TB of monthly data egress?
164
+ ```
93
165
 
94
- #### Other commands
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
- There are also a few more helpful commands for development. Run `make help` to learn more, or look in [Makefile](./Makefile).
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
- ## Architecture
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
- ### Project Structure
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
- β”œβ”€β”€ cmd/ # Application entry points
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
- ### Authentication
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
- Publishing supports multiple authentication methods:
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
- The registry validates namespace ownership when publishing. E.g. to publish...:
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
- ## Community Projects
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
- Check out [community projects](docs/community-projects.md) to explore notable registry-related work created by the community.
253
+ ### What's NOT included in the pricing data?
150
254
 
151
- ## More documentation
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
- See the [documentation](./docs) for more details if your question has not been answered here!
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.2",
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",