Skip to content

Releases: Albaker-Group/cloudprice-mcp

v0.6.0 — FinOps decision suite (4 new tools)

Choose a tag to compare

@alialbaker alialbaker released this 09 May 13:17

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 --force

What'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 → canonical WorkloadInventory dataclass with strong typing and validation
  • export.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_migration to 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 --live flag 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 finops subcommand 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

v0.5.3 — Reframe: The FinOps MCP server

Choose a tag to compare

@alialbaker alialbaker released this 09 May 09:34

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:
    1. Reserved Instance break-even on 6× t3.2xlarge — what does the AI call, what payback period comes back
    2. 5 TB cold-storage migration with exit-egress + payback period
    3. 50 TB/month egress arbitrage — OCI's 12× moat
    4. Full 3-tier SaaS workload — chains 4 tools (compare_workload + compare_egress + multi-AZ + commitment)
  • PyPI metadata:
    • description now leads with FinOps decision-making
    • keywords expanded 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

v0.5.2 — Optional Windows PATH repair (cloudprice-mcp fix-path)

Choose a tag to compare

@alialbaker alialbaker released this 08 May 19:34

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's Scripts/ 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 doctor reports shell-shim status as a hint, not a failure. New section tells you whether the bare cloudprice-mcp command 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)

  1. Detects the current Python's Scripts folder via sysconfig.get_path('scripts').
  2. Reads HKCU\Environment\Path (the user-persistent PATH on Windows).
  3. Appends the Scripts folder if not already present (preserves the existing PATH).
  4. Broadcasts WM_SETTINGCHANGE so 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-mcp

If 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 doctor

Stats

  • 8 files changed (+541 / −8 lines)
  • 124 tests passing (21 new for path_fix module + 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 + ctypes only)

Links

v0.5.1 — Multi-client setup (Claude / Copilot / Cursor / Windsurf / Cline / Continue / Zed)

Choose a tag to compare

@alialbaker alialbaker released this 08 May 11:48

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 setup

Works 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 setup is 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 doctor is 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: mcpServers root key
  • GitHub Copilot: servers root + type: "stdio" per-entry
  • Zed: context_servers root 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, --force semantics)
  • Same 10 MCP tools as v0.5.0 — this is a distribution-focused release, not a new feature release

Links

v0.5.0 — Egress + Multi-AZ + realistic snapshots

Choose a tag to compare

@alialbaker alialbaker released this 06 May 09:20

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

Choose a tag to compare

@alialbaker alialbaker released this 06 May 08:26

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

Choose a tag to compare

@alialbaker alialbaker released this 05 May 19:49

Big release — adds OCI as the 4th cloud + 2 new comparison tools

What's new

OCI added as 4th cloud (compute + block storage)

  • Cloud Literal type expanded to aws | 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.py
  • tests/test_v0_3_object_storage.py

Install

pip install --upgrade cloudprice-mcp

Verify

```bash
python -c "from cloudprice_mcp import version; print(version)"

0.3.0

```

v0.2.2 — Official MCP Registry listing

Choose a tag to compare

@alialbaker alialbaker released this 28 Apr 10:19

Adds the registry verification marker to README and server.json for the Official MCP Registry. No code changes vs v0.2.1.

Published to:

v0.2.1 — Snapshots + RI/SP estimator

Choose a tag to compare

@alialbaker alialbaker released this 26 Apr 23:47

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

Choose a tag to compare

@alialbaker alialbaker released this 26 Apr 13:03

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.