Releases: Albaker-Group/cloudprice-mcp
Release list
v0.6.0 — FinOps decision suite (4 new tools)
v0.6.0 — FinOps decision suite
Four named FinOps decision tools that turn cross-cloud pricing into real recommendations in one tool call instead of letting the AI chain three+ pricing tools and synthesize.
pip install --upgrade cloudprice-mcp
cloudprice-mcp setup --forceWhat's new
| Tool | What it does |
|---|---|
assess_migration |
"Should I move?" — projects per-target cloud cost, savings %, one-time exit egress cost, payback months. Returns a ranked recommendation by 3-year TCO with triggered caveats (e.g., "OCI A1.Flex is ARM — verify your AMIs"). |
optimize_commitment |
"When does my RI / SP / CUD pay back?" — six commitment scenarios (none / 1yr_no_upfront / 1yr_all_upfront / 3yr_no_upfront / 3yr_partial_upfront / 3yr_all_upfront) with per-scenario monthly cost, upfront, 3-year total, savings %, payback months. Recommends the lowest 3-year TCO option. |
compare_total_cost_of_ownership |
"What's my 3-year cost across clouds?" — multi-year projection with linear YoY growth assumptions for compute / storage / egress. Returns cumulative TCO per cloud, year-by-year breakdown, sensitivity analysis on the dominant variable. |
find_egress_arbitrage |
"Where do I save on data transfer?" — specialized assess_migration scoped to egress only. Surfaces the OCI 12× moat: at 50 TB/month internet egress, OCI is ~$340 vs $4,000+ on the hyperscalers. |
14 MCP tools total (was 10). All four new tools accept a structured workload inventory shape that mirrors a 4-section sizing sheet (compute / storage / object_storage / databases / egress) plus optional commitment, multi_az, and one_time.data_to_migrate_gb fields.
Foundation modules (used by all 4 tools)
inventory.py— YAML / dict parser → canonicalWorkloadInventorydataclass with strong typing and validationexport.py— markdown / json / text renderers (csv / html later if asked)caveats.py+data/caveats.json— small static rules library that flags known cross-cloud risks (block / warn / info severities)data/ri_tiers.json— per-cloud commitment discount tiers (conservative averages — per-family tiers come in v0.6.x)
Real-world example
Ask any MCP-compatible client (Claude / Copilot / Cursor / Windsurf / Cline / Continue / Zed):
"Use
assess_migrationto evaluate moving my AWS workload to the other 3 clouds. Workload: 6 instances at 8 vCPU / 32 GB each, 50 TB monthly internet egress, 10 TB hot-tier object storage. Include 5 TB of one-time data migration."
Get back: per-target monthly cost, savings %, exit cost ($441), payback months, ranked recommendation by 3-year TCO, and triggered caveats (e.g., "OCI A1.Flex is ARM — verify your AMIs"). One tool call.
Honest gaps (every result includes these)
Each FinOps tool surfaces an explicit honest_gaps list — what it does NOT model. Prevents over-trust:
- No workload discovery — relies on user-supplied inventory
- No license portability modeling (BYOL, SQL Server, RHEL)
- No CPU-utilization right-sizing
- Conservative flat commitment tiers (per-family RI rates land in v0.6.x)
- No NPV / discount-rate math (cumulative dollars, not present value)
- Single-region pricing only (live pricing + multi-region are roadmap items)
What's NOT in v0.6.0 (deferred)
- Live pricing mode — opt-in
--liveflag fetching real-time SKUs from each cloud's public API. Targeted for v0.7. - Per-family RI tiers — compute-optimized vs general-purpose vs memory-optimized rate differentiation. Targeted for v0.6.x patch.
- Multi-region pricing — per-region SKU expansion. Targeted for v0.7+.
- CSV / HTML inventory parsers — only YAML for v0.6.0. Add when external demand asks.
- CLI
finopssubcommand wrapper — for non-MCP CLI users. Add when external demand asks.
Stats
- 22 files changed (+4,628 / −2 lines)
- 283 / 283 tests passing (added 152 new for v0.6 modules)
- New modules:
inventory.py+export.py+caveats.py+finops/package (4 tools) - One new dependency:
pyyaml >= 6.0
Upgrade
pip install --upgrade cloudprice-mcp
cloudprice-mcp setup --force # refresh existing client configs
# Fully restart your MCP-compatible client (Claude Desktop / VS Code / Cursor / etc.)
# 14 tools should now appear (was 10)Links
- PyPI: https://pypi.org/project/cloudprice-mcp/0.6.0/
- Install guide: INSTALL.md
- v0.6.0 spec doc: docs/v0.6.0_finops_decision_suite_and_live_pricing.md
v0.5.3 — Reframe: The FinOps MCP server
v0.5.3 — Positioning: The FinOps MCP server
No code changes. Pure positioning + metadata update.
What changed
- README now leads with "The FinOps MCP server" instead of "MCP server that compares cloud pricing." Same product — sharper framing.
- Replaced the "Ask things like" examples with four concrete FinOps decision queries:
- Reserved Instance break-even on 6× t3.2xlarge — what does the AI call, what payback period comes back
- 5 TB cold-storage migration with exit-egress + payback period
- 50 TB/month egress arbitrage — OCI's 12× moat
- Full 3-tier SaaS workload — chains 4 tools (
compare_workload+compare_egress+ multi-AZ + commitment)
- PyPI metadata:
descriptionnow leads with FinOps decision-makingkeywordsexpanded from 7 generic terms to 14 targeted ones (finops,cost,tco,oci,reserved-instances,savings-plan,claude,copilot,cursor) — improves PyPI search ranking on FinOps-adjacent queries
Why this is its own release
Same code, but the PyPI listing is the first thing FinOps practitioners see when they search. Aligning the description + keywords with the audience matters for organic discovery via PyPI search — and it makes the Glama "Finance" categorization consistent across our owned channels.
Upgrade
No reason to upgrade if you're on v0.5.2 — there are no behavior changes. v0.5.3 is purely for new users discovering cloudprice-mcp through PyPI search.
pip install --upgrade cloudprice-mcp # picks up new description in `pip show`Background
The FinOps reframe was driven by real-world usage: two queries today through Claude / Copilot via the MCP layer produced (a) a Reserved Instance break-even analysis with month-by-month payback math, and (b) a "don't move this storage" recommendation with a 35-month payback that killed a bad migration before it started. That's FinOps work — not just price lookups. We're naming the product accordingly.
Coming in v0.6 as a follow-up: dedicated FinOps decision tools (assess_migration, optimize_commitment, compare_total_cost_of_ownership, find_egress_arbitrage) that bake the analysis primitives into single-call tools instead of leaving them to AI chaining.
Links
- PyPI: https://pypi.org/project/cloudprice-mcp/0.5.3/
- Glama: https://glama.ai/mcp/servers/alialbaker/cloudprice-mcp (auto-published v0.5.2; will pick up v0.5.3 on next build)
v0.5.2 — Optional Windows PATH repair (cloudprice-mcp fix-path)
v0.5.2 — Optional Windows PATH repair
A small follow-up to v0.5.1 for Windows users who want the bare cloudprice-mcp command to resolve in PowerShell or cmd. Default flow is unchanged.
What's new
cloudprice-mcp fix-path— opt-in command that adds Python'sScripts/folder to user PATH on Windows.--check— inspect without modifying (exit 1 if not on persistent PATH)--remove— undo a previous fix-path--yes— skip the confirmation prompt
cloudprice-mcp doctorreports shell-shim status as a hint, not a failure. New section tells you whether the barecloudprice-mcpcommand would resolve in your current shell, with a one-line suggestion (cloudprice-mcp fix-path) when it wouldn't.
Why this is opt-in
The default cloudprice-mcp setup flow doesn't need fix-path — it writes the absolute Python path into every MCP client's config, so Claude Desktop, Copilot, Cursor, etc. launch cloudprice fine regardless of your shell PATH.
fix-path is purely for your own shell ergonomics — if you'd rather type cloudprice-mcp doctor instead of python -m cloudprice_mcp.cli doctor.
How it works (Windows)
- Detects the current Python's Scripts folder via
sysconfig.get_path('scripts'). - Reads
HKCU\Environment\Path(the user-persistent PATH on Windows). - Appends the Scripts folder if not already present (preserves the existing PATH).
- Broadcasts
WM_SETTINGCHANGEso newly-spawned shells pick up the change.
Existing shells don't refresh PATH — that's a Windows limitation. Open a fresh PowerShell window after running fix-path.
macOS / Linux
fix-path is a no-op on non-Windows. The pip bin directory (~/.local/bin or /usr/local/bin) is typically already on PATH, and modifying shell rc files silently is too invasive.
Upgrade
pip install --upgrade cloudprice-mcpIf you previously hit cloudprice-mcp: command not recognized in PowerShell:
python -m cloudprice_mcp.cli fix-path
# Then open a fresh PowerShell window
cloudprice-mcp doctorStats
- 8 files changed (+541 / −8 lines)
- 124 tests passing (21 new for
path_fixmodule +fix_path_cmd; registry I/O is mocked so tests run identically on all OSes) - New modules:
path_fix.py,fix_path_cmd.py - No new dependencies (stdlib
winreg+ctypesonly)
Links
- PyPI: https://pypi.org/project/cloudprice-mcp/0.5.2/
- Install guide: INSTALL.md
v0.5.1 — Multi-client setup (Claude / Copilot / Cursor / Windsurf / Cline / Continue / Zed)
v0.5.1 — Multi-client setup
cloudprice-mcp now auto-configures every installed MCP-compatible AI client with one command:
pip install --upgrade cloudprice-mcp
cloudprice-mcp setupWorks with Claude Desktop, GitHub Copilot Agent Mode (VS Code), Cursor, Windsurf, Cline, Continue.dev, and Zed — whichever it detects on your machine.
What's new
cloudprice-mcp setupis now multi-client. Detects and configures all 7 supported clients in one pass. Existing Claude users see no behavior change unless they have other clients installed too — in which case it offers to configure those.- New flags:
--client copilot(repeatable:--client copilot --client cursor) — pick specific clients--all— configure every known client even if not detected--force— refresh existing entries (useful after upgrade or moving Python)--list-clients— detection table--print-config— emit per-client JSON to stdout
cloudprice-mcp doctoris multi-client aware — iterates each adapter and reports per-client status with refresh suggestions.- INSTALL.md has new per-client manual sections (Windows + Linux + macOS), expanded PATH/PowerShell troubleshooting, and a dev-checkout guide for editable installs.
Architecture
New clients.py introduces 7 adapter classes encapsulating per-OS path detection and per-schema merge logic. Each client has its own quirk:
- Claude Desktop / Cursor / Windsurf / Cline:
mcpServersroot key - GitHub Copilot:
serversroot +type: "stdio"per-entry - Zed:
context_serversroot key (no longer experimental) - Continue.dev: per-server JSON file in
~/.continue/mcpServers/
setup_cmd.py is now a thin orchestrator over the adapters.
Upgrade path
pip install --upgrade cloudprice-mcp
cloudprice-mcp setup --force--force refreshes existing entries to use the portable python -m cloudprice_mcp.server form, then offers to also configure any other clients found on your machine.
Stats
- 11 files changed (+1,590 / −463 lines)
- 103 tests passing (39 new for adapter detection, schema correctness, merge preservation,
--forcesemantics) - Same 10 MCP tools as v0.5.0 — this is a distribution-focused release, not a new feature release
Links
- PyPI: https://pypi.org/project/cloudprice-mcp/0.5.1/
- Install guide: INSTALL.md
v0.5.0 — Egress + Multi-AZ + realistic snapshots
The TCO depth release
v0.2-v0.4 modeled on-demand list pricing well. Real-world TCO needs egress (often the actual hidden killer), Multi-AZ (production usually doubles compute), and snapshots that don't blow up to upper-bound estimates. v0.5 lands all three.
10 MCP tools. 77/77 tests passing.
NEW: `compare_egress` — internet + inter-region transfer
Tiered pricing with free-tier credits across all 4 clouds.
| Cloud | Free tier | Beyond free |
|---|---|---|
| AWS | 100 GB/mo | $0.05–$0.09/GB tiered |
| Azure | 100 GB/mo | $0.05–$0.087/GB tiered |
| GCP | 0 | $0.08–$0.12/GB tiered |
| OCI | 10 TB/mo ⭐ | $0.0085/GB |
At 50 TB/month internet egress, OCI is ~12× cheaper than the hyperscalers ($340 vs $4,181-$4,310). At 200 TB/mo, it's still ~10× cheaper. Real moat for content/CDN workloads.
Inter-region transfer also modeled: hyperscalers ~$0.02/GB, OCI $0.0085/GB.
NEW: `multi_az` flag on `compare_workload`
Set to `true` to model Multi-AZ / HA deployments with sync replicas across two zones. Compute totals × 2 on every cloud. Storage stays at 1× (cross-AZ at base price already).
Combines correctly with `commitment`: e.g. `multi_az=true` + `3yr_partial_upfront` ≈ on-demand single-AZ totals (2× × 0.5 = 1.0×).
NEW: `snapshot_incremental_factor` on storage + OS-disk snapshots
Per-row field that scales the snapshot upper-bound estimate.
| Factor | Meaning |
|---|---|
| `1.0` (default) | Upper-bound — each snapshot is full capacity (backward compat with v0.2-0.4) |
| `0.3` | Typical real-world incremental dedup |
| `0.0` | Exclude snapshots from the total |
Smoke test on 50 TB SSD with 7 daily snapshots:
- Upper-bound: AWS $21,500/mo
- Realistic (0.3): AWS $9,250/mo (-57%)
Lint cleanup
- Extracted `DATA_PACKAGE` constant in `pricing.py` (deduplicated 3 string literals)
- Refactored `call_tool` from a 13-branch if-chain into a clean dispatch table
- Cognitive complexity in `call_tool` dropped from 16 to 3
- Float-equality checks in tests converted to tolerance pattern
Backward compatibility
- All v0.4 tools unchanged
- All schemas additive (new fields default to backward-compatible values)
- `cloudprice-mcp setup` and `cloudprice-mcp doctor` work identically
Roadmap (deferred to v0.5.1 / v0.6)
- us-west-2 / eu-west-1 multi-region SKUs (data-entry heavy, deserves its own release)
- Reserved Instance SKU detail beyond flat tier
- IOPS-based storage matching
- Backup storage charges
- VPC peering / interconnect costs
Install / upgrade
```bash
pip install --upgrade cloudprice-mcp
cloudprice-mcp setup --yes
```
(The `setup` command from v0.4 picks up the new version automatically.)
Tests
77/77 passing (was 66 in v0.4).
- 13 new egress tests covering free-tier behavior, tiered pricing, OCI 10 TB dominance at 50 TB/mo, inter-region rates
- 8 new multi-AZ + snapshot factor tests covering compute multiplier, storage stays 1×, flag propagation, combine-with-commitment math, factor at 1.0/0.3/0.0
v0.4.0 — One-command Claude Desktop setup
The big adoption-multiplier release
Before v0.4.0: getting cloudprice-mcp working in Claude Desktop required hand-editing JSON in obscure paths that vary by OS and install type, hitting platform-specific gotchas (Windows MS Store sandbox, macOS PATH issues, cached subprocess), and full-quitting Claude Desktop the right way for your platform. Real users hit 5+ friction points and bounced.
After v0.4.0:
```
pip install cloudprice-mcp
cloudprice-mcp setup
```
That's it. Restart Claude Desktop, 9 tools appear.
New commands
`cloudprice-mcp setup`
Auto-configures Claude Desktop on Windows / macOS / Linux:
- Detects MS Store sandbox vs direct .exe install on Windows
- Uses absolute Python path (required on macOS due to restrictive PATH)
- Reads existing config and preserves preferences + other MCP servers
- Shows the exact JSON before writing, asks Y/N
- Kills cached cloudprice-mcp subprocesses
- Prints platform-specific restart instructions
Trust spectrum (4 modes):
| Command | Use when |
|---|---|
| `cloudprice-mcp setup` | Default — interactive prompt |
| `cloudprice-mcp setup --yes` | Skip prompt (CI/scripts) |
| `cloudprice-mcp setup --dry-run` | Preview changes without writing |
| `cloudprice-mcp setup --print-config` | Output JSON only — for users who prefer manual paste |
`cloudprice-mcp doctor`
Diagnoses install problems:
- ✓ Python version (requires 3.10+)
- ✓ Package installed at expected version
- ✓ All 9 MCP tools register
- ✓ Claude Desktop config file exists + valid JSON
- ✓ Cloudprice entry present
- ✓ Command field is absolute path that exists
- ✓ Args field is sane
Backward compatibility
- Default `cloudprice-mcp` (no args) still runs the MCP server (same as v0.3.x)
- Existing Claude Desktop configs continue to work unchanged
- New `cloudprice-mcp serve` alias is available for explicit invocation
Docs
- New INSTALL.md: step-by-step Windows + macOS + Linux manual install + troubleshooting
- README rewritten around the auto-setup flow
Tests
56/56 passing (was 41 in v0.3). 15 new tests covering setup + doctor logic.
Install
```bash
pip install --upgrade cloudprice-mcp
cloudprice-mcp setup
```
v0.3.0 — 4 clouds + Postgres + Object Storage
Big release — adds OCI as the 4th cloud + 2 new comparison tools
What's new
OCI added as 4th cloud (compute + block storage)
CloudLiteral type expanded toaws | azure | gcp | oci- All compare functions auto-extend to 4-cloud comparisons
- OCI A1.Flex Always Free SKU surfaced explicitly — perpetual 4 OCPU + 24 GB Arm at $0/mo
- E5.Flex (current AMD x86) + A2.Flex (current paid Arm) included
- Pricing verified against Oracle's public pricing API
compare_postgres_database — managed Postgres compare
- Covers AWS RDS, Azure DB for PostgreSQL Flexible Server, GCP Cloud SQL, OCI Database with PostgreSQL
- Per-cloud cheapest match by vCPU/memory + separate storage cost
- 5-10 SKUs per cloud
compare_object_storage — bucket-tier compare
- Covers AWS S3, Azure Blob, GCP Cloud Storage, OCI Object Storage
- 3 access tiers: hot / cool / archive
- OCI Always Free 20 GB hot tier returns $0/mo when capacity fits
Tool count: 9 (was 7)
What's NOT modeled (intentional honesty)
- Egress / data transfer (often the actual hidden killer)
- Multi-AZ / HA replicas
- Reserved/Savings Plan SKU detail (we apply a flat tier discount)
- IOPS-based storage matching
- Backup storage charges
- Object storage request costs (PUT/GET)
- Archive retrieval costs
These are roadmap items. Use cloudprice-mcp for the on-demand list-price baseline; verify final TCO against each cloud's calculator.
Tests
41/41 passing (was 27 on v0.2.2). Added test files:
tests/test_v0_3_oci_and_postgres.pytests/test_v0_3_object_storage.py
Install
pip install --upgrade cloudprice-mcpVerify
```bash
python -c "from cloudprice_mcp import version; print(version)"
0.3.0
```
v0.2.2 — Official MCP Registry listing
Adds the registry verification marker to README and server.json for the Official MCP Registry. No code changes vs v0.2.1.
Published to:
- PyPI: https://pypi.org/project/cloudprice-mcp/0.2.2/
- Official MCP Registry:
io.github.alialbaker/cloudprice-mcp
v0.2.1 — Snapshots + RI/SP estimator
Snapshot pricing for storage volumes and compute OS disks. Reserved Instance / Savings Plan / Committed Use estimator on compare_workload (commitment param: none/1yr_no_upfront/3yr_partial_upfront). Annual savings line in every summary. 27/27 tests passing.
v0.2.0 — Bulk compute + storage compare
Three new MCP tools for structured BoM-style input: compare_compute_inventory, compare_storage_inventory, compare_workload. Adds block-storage SKUs (SSD+HDD) per cloud. 21/21 tests passing.