Cloudprice

io.github.Albaker-Group由 GitHub 帳號 Albaker-Group 發布v0.29.0更新於 Nov 7, 2026

Multi-cloud + LLM pricing for AI agents: AWS/Azure/GCP/OCI, RI break-even, TCO, price history.

概覽

AI 產生的概覽

在本機執行的 MCP 伺服器,讓助理查詢 AWS、Azure、GCP、OCI 的多雲與 LLM 定價,並分析你自己的帳單。

可以做什麼
  • 查詢並比較四朵雲的虛擬機器、區塊與物件儲存、託管 PostgreSQL、對外流量、GPU 與現貨執行個體價格
  • 依工作負載或搬遷規模試算承諾折扣損益兩平、三年 TCO、對外流量套利與碳排放
  • 比較各供應商的 LLM token 價格、估算代理執行成本、比較代理託管平台,並追蹤模型退役與價格變動
  • 查詢每週封存的價格歷史並標記價格異常
  • 分析本機 FOCUS CSV 帳單匯出:成本結構、承諾缺口、支出異常、標籤分攤、預測、單位成本與 AI 支出
  • 審查 AgentCore 的 Terraform 計畫,列出安全與成本問題,並可匯出為 FOCUS 資料列
適用情境
適合回答雲端資源或 LLM 容量要花多少錢、某種規格哪家最便宜、搬遷或承諾可省多少,且不需要雲端帳號。也適合以本機匯出的帳單檔案進行 FinOps 分析。
執行需求
以 Python 套件形式透過 stdio 在本機執行(需 Python 3.10+),通常以 uvx 啟動或 pip 安裝。不需雲端帳號、API 金鑰或環境變數,價格來自每週更新的內建目錄。帳單與 Terraform 分析工具需提供本機檔案路徑。
安裝前請注意
價格是人工整理的定價目錄而非即時報價,README 建議重大決策前以各家官方試算工具複核。帳單與 Terraform 檔案在本機讀取,只有摘要回傳給助理,但 Terraform 計畫 JSON 可能含機密,應避免提交到 git 並於用後刪除。結果屬參考性估算。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Cloudprice,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

cloudprice-mcp

[PyPI version] [Python versions] [License: MIT] [Albaker-Group/cloudprice-mcp MCP server]

Ask your AI assistant what the cloud will cost — and get real list prices back.

cloudprice-mcp gives Claude, Cursor, GitHub Copilot and any other MCP client pricing and FinOps tools across AWS, Azure, GCP and OCI, plus LLM token prices for ~2,300 model/provider combinations. No cloud account, no API keys: it works from a catalogue refreshed every week from the providers' public pricing APIs.

  • Four clouds in one answer, including OCI and its 10 TB free egress — which most tools leave out.
  • Cloud and AI costs side by side: price a VM, a GPU and the LLM calls running on it in the same conversation.
  • Price history: every weekly catalogue is archived, so you can ask what changed, not just what it costs today.
  • Decisions, not just lookups: RI / Savings Plan break-even, 3-year TCO, migration payback, egress arbitrage, carbon (kg CO2e), FOCUS 1.3 export.

[demo]

Quick start

Add this to your MCP client's config (Claude Desktop, Cursor, VS Code, …). uvx downloads and runs it — nothing to install first:

json
{
  "mcpServers": {
    "cloudprice": { "command": "uvx", "args": ["cloudprice-mcp"] }
  }
}

Claude Code: claude mcp add cloudprice -- uvx cloudprice-mcp

Or install with pip and let it configure every client it finds (asks before writing each one):

bash
pip install cloudprice-mcp
cloudprice-mcp setup

Restart the client and the 39 tools appear. Problems? cloudprice-mcp doctor says what is wrong; INSTALL.md has per-client steps for Windows, macOS and Linux. Python 3.10+.

What's new in each release: CHANGELOG.md.

Things to ask

"I run 6× t3.2xlarge on AWS. On-demand vs 1-year Savings Plan vs 3-year RI — what's the break-even month?" → optimize_commitment

"At 50 TB/month internet egress, which cloud is cheapest, and what would moving save over 3 years?" → compare_egress, find_egress_arbitrage (OCI ≈ $340/mo vs ≈ $4,000/mo on the hyperscalers)

"Size this 3-tier app on all four clouds: 8 web (4 vCPU/16 GB), 12 app (8/32), 4 DB (16/64), 5 TB SSD, 10 TB/month egress, multi-AZ." → compare_workload, compare_total_cost_of_ownership

"Cheapest way to run 50M input / 10M output tokens a month — and is Claude Sonnet the same price on Bedrock and Vertex?" → compare_token_pricing

"Which H100 instance is cheapest per GPU-hour across the four clouds?" → compare_gpu_workload

"We send 2B input / 500M output tokens a month to an API. Would renting 8×H100 and serving Llama ourselves be cheaper, and at what volume?" → compare_llm_vs_selfhost

"My support agent averages 8 steps with a 2k system prompt and 3k of tool definitions. What does 50,000 runs a month cost on Sonnet vs Haiku, and how much does prompt caching save — and hosted on AgentCore or Lambda?" → estimate_agent_cost (tokens + AgentCore Runtime/Gateway/Memory vs Lambda)

"We'll run this agent 50,000 times a month, 30 seconds a run, on Claude Sonnet. AgentCore, Azure Foundry or Vertex Agent Engine, or just Lambda?" → compare_agent_platforms (hosting, tools, memory and tokens on each)

"What changed in LLM pricing this week — anything cheaper on Bedrock or Groq?" → llm_price_changes (weekly archive of ~3,600 model/provider prices)

"Which models on Bedrock and Azure OpenAI retire in the next six months, and what replaces them?" → model_retirements (also flagged automatically by analyze_ai_spend and review_agentcore)

"How has OCI E5.Flex pricing moved since May?" → get_price_history

"Here's our FOCUS export (~/Downloads/focus-2026-10.csv). Where is the money going, what jumped last month, and how much of our usage do Savings Plans cover?" → analyze_bill — reads the file on your machine; nothing is sent anywhere, and hosted deployments cannot call it.

"Using the same export: are we under-committed, what spiked last week, and how much of our spend is missing a team tag?" → find_commitment_gaps, detect_bill_anomalies, analyze_cost_allocation

"What will this month's bill be, and what's our cost per customer? We had 41,000 customers in September and 44,500 in October." → forecast_spend, calculate_unit_cost

"What would the compute on this bill cost on Azure, GCP or OCI?" → reprice_bill: the vCPU and memory you actually used, priced on all four clouds, next to what you paid

"What are we spending on Bedrock and Azure OpenAI, are we paying list price, and would prompt caching help?" → analyze_ai_spend

"Review our AgentCore deployment: is it secure, what does the agent cost, and what should we fix first?" → review_agentcore on terraform show -json output, plus the bill

Every answer carries the catalogue date and an honest_gaps list of what the tool does not model, so the AI can tell you where the number stops being exact.

Use it on your own bill and deployment

Nine tools read files on your machine: your cloud bill (a FOCUS export) and your AgentCore deployment (Terraform JSON). The file never leaves your machine; only the tool's summary goes back to your AI assistant. Hosted deployments of this server cannot call these tools at all.

1. Download your bill as a FOCUS CSV. Every major cloud exports it:

CloudWhereGuide
AWSBilling and Cost Management → Data Exports → Create → a FOCUS export, CSV → download from the S3 bucketAWS
AzureCost Management → Exports → Create → Cost and usage details (FOCUS), CSV → download from the storage account. Big exports arrive in parts; analyse one part or join them firstAzure
GCPBilling → FOCUS export to BigQuery → query the month you want → save the result as CSVGCP
OCIBilling → Cost and Usage Reports → FOCUS reports → DownloadOCI

.csv and .csv.gz up to 500 MB are read.

2. Ask, with the file path in the question:

"Here's our bill: ~/Downloads/focus-2026-10.csv. Where is the money going, what would it cost on the other clouds, and what are we spending on AI?"

QuestionTool
Where does the money go?analyze_bill
Are we under-committed? What are idle commitments costing?find_commitment_gaps
What spiked, and since when?detect_bill_anomalies
How much spend is missing our team tag?analyze_cost_allocation
What will this month cost? Cost per customer?forecast_spend, calculate_unit_cost
What would our compute cost on the other clouds?reprice_bill
What do our AI models cost, and are we paying list price?analyze_ai_spend

3. Review an AgentCore deployment (Terraform):

bash
terraform plan -out=tfplan
terraform show -json tfplan > plan.json

"Review our AgentCore deployment in ~/plan.json. Our bill is ~/Downloads/focus.csv and the agent is tagged agent=support."

You get findings ranked by severity: public network, unauthenticated gateways, model permissions, secrets in environment variables, idle-session cost, missing alarms and tags, and with the bill, what the agent costs and what caching would save. Each one names the resource, the Terraform fix and the AWS page behind the rule. To accept a finding on purpose, say so: "skip S1 on aws_bedrockagentcore_agent_runtime.demo, it is a public demo". It is then listed as skipped, with your reason.

plan.json holds every value Terraform knows, secrets included. The review never repeats them, but keep the file out of git and delete it when you are done.

Tools

39 tools, grouped by job. Full descriptions and arguments: docs/TOOLS.md (generated from the server, so it is always current).

JobTools
Look up one priceget_aws_price, get_azure_price, get_gcp_price, compare_clouds
Price a workloadcompare_compute_inventory, compare_storage_inventory, compare_workload, compare_object_storage, compare_postgres_database, compare_egress
FinOps decisionsassess_migration, optimize_commitment, compare_total_cost_of_ownership, find_egress_arbitrage, generate_decision_report
Spot, GPU, carboncompare_spot, compare_gpu_workload, compare_carbon_footprint
Price historyget_price_history, list_tracked_skus, detect_price_anomalies, watch_workload
AI / LLM costsestimate_agent_cost, compare_agent_platforms, compare_llm_vs_selfhost, compare_token_pricing, lookup_extended_model_pricing, llm_price_changes, model_retirements
Your actual bill (local only)analyze_bill, find_commitment_gaps, detect_bill_anomalies, analyze_cost_allocation, forecast_spend, calculate_unit_cost, reprice_bill, analyze_ai_spend
Review a deployment (local only)review_agentcore
Exportexport_focus

FinOps Framework coverage

How the tools map to the FinOps Foundation capabilities. "Your bill" tools read a FOCUS export locally; the rest work from list prices and the weekly price archive.

CapabilityTools
Data ingestionanalyze_bill (FOCUS in), export_focus (FOCUS out)
Reporting & analyticsanalyze_bill
Allocationanalyze_cost_allocation
Anomaly managementdetect_bill_anomalies (your spend), detect_price_anomalies, watch_workload (list prices)
Rate optimizationfind_commitment_gaps (your spend), optimize_commitment, compare_spot
Workload optimizationcompare_compute_inventory, compare_gpu_workload, compare_llm_vs_selfhost
Planning & estimatingcompare_workload, compare_total_cost_of_ownership, assess_migration, estimate_agent_cost, compare_agent_platforms
Architecting for cloudreprice_bill (your spend), review_agentcore (your config), find_egress_arbitrage, assess_migration
Benchmarkingreprice_bill (your spend), compare_clouds, compare_token_pricing, llm_price_changes
Cloud sustainabilitycompare_carbon_footprint
Forecastingforecast_spend
Unit economicscalculate_unit_cost
FinOps for AIanalyze_ai_spend (your spend), review_agentcore (your agent), model_retirements, estimate_agent_cost, compare_agent_platforms, compare_token_pricing, llm_price_changes

Example: compare_workload input

json
{
  "compute": [
    { "name": "web", "vcpus": 4,  "memory_gb": 16, "quantity": 8,  "os_disk_gb": 100, "os_disk_type": "ssd" },
    { "name": "app", "vcpus": 8,  "memory_gb": 32, "quantity": 12, "os_disk_gb": 200, "os_disk_type": "ssd" },
    { "name": "db",  "vcpus": 16, "memory_gb": 64, "quantity": 4,  "os_disk_gb": 500, "os_disk_type": "ssd" }
  ],
  "storage": [
    { "name": "shared-fast", "capacity_gb": 5000,  "disk_type": "ssd" },
    { "name": "shared-bulk", "capacity_gb": 50000, "disk_type": "hdd" }
  ],
  "commitment": "1yr_no_upfront",
  "multi_az": true
}

Modelling notes. Commitments apply a conservative compute discount (1-year ≈ 30%, 3-year ≈ 50%); storage is not discounted. Snapshots are priced as full copies by default — set snapshot_incremental_factor (e.g. 0.3) for real-world incremental snapshots. multi_az doubles compute, not storage.

Pricing data

Prices are bundled as a curated dataset of common SKUs across 4 clouds:

  • Compute (~50 VM SKUs across AWS / Azure / GCP / OCI, including OCI A1 Always Free + A2 Arm Ampere + E5 Flex)
  • Block storage (SSD + HDD per cloud)
  • Object storage (Hot / Cool / Archive tiers per cloud, including OCI Always Free 20 GB)
  • Managed PostgreSQL (RDS / Azure DB / Cloud SQL / OCI Database with PostgreSQL)

Auto-refreshed weekly

The bundled catalog is refreshed every Sunday by a GitHub Action that hits each cloud's public pricing API:

  • AWS — Pricing API (via boto3, OIDC-authenticated)
  • Azure — Retail Prices API (public, no auth)
  • OCI — Public pricing API (public, no auth)
  • GCP — Cloud Billing Catalog API (via API key — GCP_API_KEY env var). Added in v0.8.0
  • Bedrock LLM token prices — AWS Pricing API AmazonBedrock service code (via boto3, same OIDC role). Added in v0.15.0 — refreshes input/output token rates for every Bedrock-hosted model we track (Claude 4 Opus/Sonnet, Claude 3/3.5 Haiku, Llama 3.1/3.3, Mistral Large 2, DeepSeek R1)
  • Extended LLM catalog — LiteLLM's model_prices_and_context_window.json (MIT-licensed, community-maintained, unauthenticated). Added in v0.16.0 — ingests ~2000 (model, provider) combinations covering Together AI, Fireworks, Groq, Replicate, Perplexity, regional Bedrock/Azure variants, older model versions. Powers the lookup_extended_model_pricing tool. Curated hand-vetted prices (compare_token_pricing) and extended (lookup_extended_model_pricing) are deliberately separate so users always know which catalog they're hitting.

Each refresh writes a dated snapshot to src/cloudprice_mcp/data/prices/YYYY-MM-DD.json and src/cloudprice_mcp/data/token_prices/YYYY-MM-DD.json — every JSON ever published lives in the repo. The history archive is MIT-licensed and grows with every release.

Every tool result includes the catalog's as_of field so you know exactly which prices were used.

Public price history dataset

cloudprice-mcp is the only FinOps tool we know of that preserves every weekly snapshot. You can query "what did m5.xlarge cost in May?" — neither AWS Calculator nor GCP Estimator can answer that because their pages always show today.

Query the history from the CLI:

bash
cloudprice-mcp history --cloud oci --sku VM.Standard.E5.Flex.4OCPU
# oci/VM.Standard.E5.Flex.4OCPU (us-ashburn-1) — 2 data point(s)
#
# AS_OF          HOURLY USD
# --------------------------
# 2026-04-26   $    0.67600
# 2026-05-12   $    0.18400
#
# Change: -72.78% ($-0.49200/h)

The -72.78% drop is the v0.7.0 auto-refresh fixing a hand-curated inaccuracy in the prior OCI catalog — proof that the auto-refresh story works.

Query the history from AI assistants via two new MCP tools:

  • get_price_history(cloud, sku, since?) — full timeseries + change stats
  • list_tracked_skus(cloud?, since?) — every (cloud, sku) pair we have history for

Real questions this unlocks:

"Has AWS m5.xlarge changed price in the last quarter?" → AI calls get_price_history, returns timeseries with start/end prices and % change.

"Show me every multi-cloud price mover since January." → AI calls list_tracked_skus(since="2026-01-01"), returns every SKU + its latest price + change.

Cross-provider LLM token pricing

Token costs are the fastest-growing FinOps line item in 2026 — and nobody compares them cross-provider openly. The same model is often available on multiple providers at different prices (Claude on Anthropic / Bedrock / Vertex; GPT on OpenAI / Azure OpenAI; Llama on Bedrock).

python
from cloudprice_mcp.finops.tokens import compare_token_pricing

# Cheapest model overall for a 50M-in / 10M-out monthly workload
r = compare_token_pricing(
    monthly_input_tokens=50_000_000,
    monthly_output_tokens=10_000_000,
)
# gemini-1.5-flash on google is cheapest at $6.75/mo for 50M in / 10M out tokens.
#   gemini-1.5-flash       on google        $   6.75/mo
#   gemini-1.5-flash       on vertex        $   6.75/mo
#   gemini-2.0-flash       on google        $   9.00/mo
#   llama-3.1-8b           on bedrock       $  13.20/mo
#   gpt-4o-mini            on openai        $  13.50/mo
#   deepseek-v3            on deepseek      $  24.50/mo
python
# Same model across all hosts — proves Claude 4 Sonnet provider parity
# (and surfaces that only Anthropic API publishes the 90%-off cache_read rate)
r = compare_token_pricing(model_id="claude-4-sonnet")
#   anthropic   in=$3/1M  out=$15/1M  cache_read=$0.30/1M  cache_write=$3.75/1M
#   bedrock     in=$3/1M  out=$15/1M
#   vertex      in=$3/1M  out=$15/1M

Covers 19 models across 8 providers: Claude (4 Opus / 4 Sonnet / 3.5 Haiku / 3 Haiku), GPT (5, 5 mini, 4o, 4o-mini, o1), Gemini (2.0 Flash, 1.5 Pro/Flash), Llama (3.1 8B/70B/405B, 3.3 70B), Mistral Large 2, DeepSeek V3/R1.

Real questions this unlocks:

"Cheapest model that handles 200K context for output-heavy chat at 10M/mo output volume?" → AI calls compare_token_pricing with the volume + an optional model_family filter, returns ranked monthly cost across every viable model+provider combo.

"Should I use Anthropic API or Bedrock for Claude?" → compare_token_pricing(model_id="claude-4-sonnet") shows price parity on per-token rates, but Anthropic API exposes a 10x cheaper cache_read rate that Bedrock doesn't publish. For caching-heavy workloads, Anthropic wins.

Multi-cloud GPU pricing

The fastest-growing cloud cost category — and nobody compares it cross-cloud openly.

python
from cloudprice_mcp.finops.gpu import compare_gpu_workload
from cloudprice_mcp.pricing import load_catalog

r = compare_gpu_workload(load_catalog(), gpu_type="H100", gpu_count=8)
# OCI BM.GPU.H100.8 is cheapest at $80.0000/h for 8x H100.
#   oci    BM.GPU.H100.8                  $ 80.0000/h  $10.0000/GPU/h
#   gcp    a3-highgpu-8g                  $ 84.4000/h  $10.5500/GPU/h
#   aws    p5.48xlarge                    $ 98.3200/h  $12.2900/GPU/h
#   azure  ND96isr_H100_v5                $ 98.3200/h  $12.2900/GPU/h

Covers NVIDIA T4, A10, A10G, L4, L40S, V100, A100, H100 across all 4 clouds. Returns:

  • Absolute hourly winner — the cheapest matching SKU per cloud
  • Per-GPU efficiency winner — sometimes a different cloud (e.g., OCI's BM.GPU4.8 is cheapest per GPU but only sold as 8x, so for gpu_count=1 Azure/GCP win the absolute ranking)
  • Over-provisioning flags — when the only matching SKU bundles more GPUs than asked for
  • GPU memory — differentiates A100 40GB vs 80GB (same gpu_type field)

The OCI H100 finding is real: at 8x H100 it's ~19% cheaper than AWS/Azure for identical hardware.

Cost Drift Sentinel

The shift from query tool to agent capability. Most FinOps tools answer "what does this cost?" — this one answers "is this still what it cost when I signed off on it?"

python
from cloudprice_mcp.finops.sentinel import watch_workload
from cloudprice_mcp.inventory import parse_dict
from cloudprice_mcp.pricing import load_catalog

# First call — captures a baseline. Persist the returned baseline JSON.
result = watch_workload(load_catalog(), parse_dict(workload_spec))
save(result["baseline"])

# Later — pass the baseline back to detect drift.
report = watch_workload(load_catalog(), parse_dict(workload_spec), baseline=load_baseline())
if report["alert_triggered"]:
    notify_humans(report["headline"])

Stateless by design — no server, no database. The baseline JSON lives wherever you want: a file in your IaC repo, S3, Slack DM, anywhere. Each call is a pure function of (catalog, workload, baseline).

Key properties:

  • Workload-hash protected — if you change the workload spec, the hash mismatches and you get a fresh baseline rather than a misleading drift report
  • SKU-level attribution — the drift report consults the price-history dataset and surfaces which SKUs moved the most between baseline and now
  • Configurable threshold — default 5%; pass alert_threshold_pct=N to tune

Plug-and-play GitHub Action template at examples/cloudprice-watch.yml — drop it in any IaC repo with a workload.json, get auto-opened GitHub issues when costs drift. Baseline is committed to your repo so the history is auditable.

Carbon-aware FinOps — kg CO2e per workload, alongside USD

The only FinOps MCP tool that returns both cost AND carbon footprint on the same query. AWS / Azure / GCP each publish their own customer dashboards (Customer Carbon Footprint Tool, Emissions Impact Dashboard, Carbon Footprint) — but none compare across providers. cloudprice does.

python
from cloudprice_mcp.finops.carbon import compare_carbon_footprint
from cloudprice_mcp.pricing import load_catalog

result = compare_carbon_footprint(load_catalog(), vcpus=8, memory_gb=32, quantity=6)
# Returns per-cloud SKU + cost + power class (x86/ARM) + monthly kWh +
# grid-based kg CO2e + market-based residual kg CO2e (after renewable matching),
# ranked cheapest-carbon-first.

What's modeled (and disclosed in every response):

  • PUE per cloud from each provider's public sustainability report
  • Grid carbon intensity per region from public emissions data (EPA eGRID for US, similar baselines elsewhere)
  • Renewable matching per provider (AWS/Azure 100%, GCP ~64% CFE, OCI unmatched outside EU)
  • ARM vs x86 power class — ARM SKUs (Graviton, Ampere, Axion) modeled at ~30% lower per-vCPU power
  • Two carbon numbers per cloud: location-based (grid) AND market-based (residual after renewable matching) — both surfaced so auditors can see both perspectives

What's NOT modeled (always disclosed via honest_gaps[]):

  • Embodied carbon (server manufacturing) — operational only
  • GPU / network / storage power — compute + memory only
  • Time-of-use grid variation — annual averages only
  • Real-time 24/7 CFE matching — GCP publishes annual CFE %; cloudprice uses that

Real questions this unlocks:

"What's the lowest-carbon cloud for 4 vCPU / 16 GB at 6 instances?" → AI calls compare_carbon_footprint, returns per-cloud kg CO2e/mo ranked.

"How much carbon do I save running on ARM vs x86?" → AI calls it twice with the same shape but different target SKUs.

What's NOT modeled (real-world TCO killers)

  • ✅ Egress / data transfer — modeled in v0.5 (compare_egress)
  • ✅ Multi-AZ / HA replicas — modeled in v0.5 (multi_az: true on compare_workload)
  • ✅ Snapshots upper-bound only — fixed in v0.5 (snapshot_incremental_factor)
  • Reserved/Savings Plan SKU detail (we apply a flat tier discount, not per-region/per-family detail) — roadmap
  • Multi-region pricing (currently us-east only; us-west / eu-west planned for v0.5.1) — roadmap
  • IOPS-based storage matching (capacity-only) — roadmap
  • Backup storage charges (some clouds free, others billed) — roadmap
  • Request costs (PUT/GET pricing for object storage) — roadmap
  • Retrieval costs for archive tiers (Glacier-style retrieval can be 10× the storage cost) — roadmap
  • VPC peering / interconnect costs — roadmap

These are tracked roadmap items. Use cloudprice-mcp for the on-demand list-price baseline; do final TCO analysis with each cloud's own calculator before relying on numbers for big decisions.

Live runtime pricing (not just weekly refresh) is being considered for v0.8 — would fetch prices directly at MCP tool invocation time instead of from the bundled catalog. Trade-offs: slower (network call per tool use), adds GCP auth requirement, breaks offline mode. The v0.7 weekly auto-refresh covers ~95% of the credibility win at zero runtime cost; live mode is opt-in territory.

Develop locally

bash
git clone https://github.com/Albaker-Group/cloudprice-mcp.git
cd cloudprice-mcp
uv sync                     # Python + dev tools at the versions in uv.lock (see mise.toml)
uv run pytest               # CI also runs: ruff check, ruff format --check, coverage floor
uv run python scripts/gen_tools_md.py   # after changing a tool's description

To point Claude Desktop at your dev copy, swap the command in the config:

json
{
  "mcpServers": {
    "cloudprice": {
      "command": "python",
      "args": ["-m", "cloudprice_mcp.server"]
    }
  }
}

License

MIT — see LICENSE.

Credits

Built by Ali Albaker, multi-cloud architect — runs a live three-cloud portfolio at ~$1.80/month across AWS, Azure, and GCP, with OCI joining as the 4th cloud in 2026.

來源:README.md,提交 451a352

工具

39

get_aws_price

Look up the on-demand Linux hourly + monthly price for an AWS EC2 instance type in us-east-1. Returns vCPUs, memory, hourly USD, and monthly USD (730 hours). For multi-cloud comparisons including OCI, Azure, and GCP, use compare_clouds instead.

輸入參數instance_type必填

get_azure_price

Look up the on-demand Linux hourly + monthly price for an Azure VM size in eastus. Returns vCPUs, memory, hourly USD, and monthly USD.

輸入參數vm_size必填

get_gcp_price

Look up the on-demand Linux hourly + monthly price for a GCP Compute Engine machine type in us-east1. Returns vCPUs, memory, hourly USD, and monthly USD.

輸入參數machine_type必填

compare_clouds

Find the cheapest equivalent VM across AWS, Azure, GCP, and OCI for a single target spec (vCPUs and memory). Returns the best-fit SKU per cloud sorted by monthly cost, plus the absolute and percent savings of the cheapest vs the most expensive option. OCI A1 Always Free is included — for specs that fit within 4 OCPU + 24 GB Arm, OCI returns $0/mo (real perpetual free tier, not a quirk).

輸入參數vcpus必填memory_gb必填

compare_compute_inventory

Bulk-compare a list of compute workloads across AWS, Azure, GCP, and OCI. Each row is independently sized to the cheapest VM that meets its vCPU/memory spec on each cloud, multiplied by quantity and hours_per_month. Optional os_disk_gb adds attached storage cost. Returns per-row matches, per-cloud totals, and the cheapest cloud overall. Useful for sizing-sheet style inputs.

輸入參數workloads必填

compare_storage_inventory

Bulk-compare a list of block-storage volumes across AWS, Azure, GCP, and OCI. Each row picks the cheapest SKU matching its disk_type (ssd or hdd) on each cloud, then prices it at capacity_gb × quantity. Returns per-row matches, per-cloud totals, and cheapest cloud. IOPS and throughput are accepted but not used for SKU matching. Snapshot pricing is upper-bound (real-world incremental snapshots cost less).

輸入參數volumes必填

compare_egress

Compare data-transfer costs across AWS, Azure, GCP, and OCI for a given monthly volume. Two directions supported: 'out_to_internet' (tiered pricing with free-tier credits — AWS/Azure 100 GB, OCI 10 TB free) and 'inter_region' (flat rate for cross-region transfer within the same cloud). At 50 TB/mo of internet egress OCI is ~12× cheaper than the hyperscalers — a real competitive moat for content/CDN workloads. VPC peering is NOT yet modeled.

輸入參數transfers必填

compare_object_storage

Compare object-storage pricing across AWS S3, Azure Blob, GCP Cloud Storage, and OCI Object Storage. Each request specifies capacity_gb and access tier (hot/cool/archive); the tool picks the cheapest SKU per cloud at that tier. OCI offers 20 GB Always Free in the 'hot' tier — surfaced when capacity fits. NOTE: egress, request, and retrieval costs are not modeled (often the actual hidden killer). Prices are hand-entered list prices (as of 2026-05-04), not part of the weekly refresh — verify against the provider's page before deciding.

輸入參數volumes必填

compare_postgres_database

Compare managed PostgreSQL pricing across AWS RDS, Azure Database for PostgreSQL, GCP Cloud SQL, and OCI Database with PostgreSQL. Each request specifies vCPUs, memory, and storage_gb; the tool picks the cheapest matching SKU per cloud and totals compute + storage. Prices are hand-entered estimates (as of 2026-05-04), not part of the weekly refresh — verify against the provider's page before deciding.

輸入參數databases必填

compare_workload

Combined compute + block-storage compare across AWS, Azure, GCP, and OCI. Pass a compute list and a storage list (either may be empty). Returns nested per-row breakdowns plus combined per-cloud totals and the overall cheapest cloud. Mirrors the structure of a two-sheet sizing workbook (compute BoM + storage BoM). Optional `commitment` parameter estimates 1-year or 3-year Reserved Instance / Savings Plan / Committed Use discount on compute (storage stays at on-demand). For object storage, use compare_object_storage. For managed databases, use compare_postgres_database.

輸入參數computestoragemulti_azcommitment

assess_migration

Project cross-cloud cost + payback for moving a workload away from its source cloud. Inputs: source_cloud + workload inventory (compute / storage / object_storage / databases / egress) + optional one_time data to migrate. Returns per-target monthly cost, savings %, exit egress cost, payback months, ranked recommendation by 3-year TCO, and triggered caveats (e.g., 'OCI A1.Flex is ARM — verify your AMIs'). The kind of FinOps decision that normally lives in a half-built spreadsheet — now one tool call.

輸入參數egresscomputestoragetargetsmulti_azone_timedatabasescommitmentsource_cloud必填object_storage

optimize_commitment

Compute per-scenario cost / savings / payback for compute commitment options (none, 1yr_no_upfront, 1yr_all_upfront, 3yr_no_upfront, 3yr_partial_upfront, 3yr_all_upfront). Returns each scenario's monthly cost, upfront, 3-year total, savings %, and payback months — plus the recommended scenario by lowest 3-year TCO. Compute-only (storage / database / object / egress are not discounted because most clouds don't offer meaningful commitments on these). Per-family RI tiers come in v0.6.x; v0.6.0 uses cloud-level conservative averages.

輸入參數cloudegresscompute必填storagemulti_azone_timedatabasesscenariossource_cloudobject_storage

compare_total_cost_of_ownership

Project per-cloud per-year cost over a configurable horizon (default 3 years), with linear YoY growth assumptions for compute / storage / egress. Returns cumulative TCO per cloud, year-by-year breakdown by category, and sensitivity analysis identifying the most impactful growth variable. The kind of number that goes into board decks and budget conversations — now computed from a public catalog instead of a spreadsheet.

輸入參數egressgrowthcomputestoragetargetsmulti_azone_timedatabasescommitmenthorizon_yearsobject_storage

find_egress_arbitrage

Specialized assess_migration scoped to egress patterns. Useful when a team's largest cost line is data transfer (CDN workloads, video streaming, content distribution). Returns per-target egress cost, monthly + annual savings, payback months on any one-time exit cost, and recommendation. The OCI 12× moat is the headline finding: at 50 TB/month internet egress, OCI is roughly $340 vs $4,000+ on the hyperscalers because of OCI's 10 TB/month free tier + $0.0085/GB beyond.

輸入參數egress必填targetsone_timesource_cloud必填

get_price_history

Return the multi-cloud price history for a specific (cloud, sku). cloudprice-mcp persists every weekly auto-refresh as a dated snapshot, so this is the only FinOps tool that can answer 'what did m5.xlarge cost in May?' — neither AWS Calculator nor GCP Estimator preserves historical pricing. Returns the timeseries, total change %, and the earliest/latest data points. Useful for: validating commitment timing, spotting quiet price increases, citing audit-traceable historical numbers to a CFO.

輸入參數sku必填cloud必填since

list_tracked_skus

List every (cloud, sku) pair present in the bundled price-history dataset, with how many weekly snapshots exist for each. Use this to discover which SKUs you can call get_price_history on, or to find the biggest-mover SKUs since a given date. Filter by cloud to scope.

輸入參數cloudsince

generate_decision_report

Generate a CFO-grade FinOps decision report in markdown. Combines assess_migration + compare_carbon_footprint into a single structured artifact the user can paste into a wiki / PR / Slack / email. Sections: executive summary, per-cloud cost table, carbon comparison (optional), the workload spec, aggregated honest_gaps, and an audit trail (package version, catalog as_of, requester, reproduce command). The 'trust' angle commercial FinOps tools can't easily replicate because their reports live in their UI; this one is markdown the user owns. Use when the question is 'we need a decision artifact a CFO can sign off on'.

輸入參數egresscomputestoragetargetsmulti_azone_timedatabasesrequestercommitmentsource_cloud必填include_carbonobject_storage

detect_price_anomalies

Statistical anomaly detection over the bundled price-history dataset. Compounds the v0.7.1 history archive: as snapshots accumulate weekly, this tool auto-flags unusual price moves without you having to manually inspect every SKU. Two methods, auto-selected by dataset density: percent_change (for <5 snapshots) and z_score (>=5). Sensitivities: strict (10% / z>=2.5), moderate (5% / z>=2.0, default), permissive (2% / z>=1.5). Use for 'what changed this week?' and 'anything weird across any cloud since {date}?' queries. Excellent source for weekly LinkedIn / blog content auto-generation.

輸入參數cloudlimitsincemethodsensitivity

compare_token_pricing

Cross-provider LLM token pricing comparison — the only FinOps tool that returns per-1M input/output rates AND monthly cost for the same model on each provider that hosts it (Claude on Anthropic vs Bedrock vs Vertex; GPT on OpenAI vs Azure OpenAI; Llama on Bedrock; Gemini on Google vs Vertex; Mistral / DeepSeek direct). Filter by model_family ('claude', 'gpt', 'gemini', 'llama', 'mistral', 'deepseek'), exact model_id, or provider list. If monthly_input_tokens + monthly_output_tokens are provided, ranks by total monthly USD. Otherwise ranks by per-1M output cost (output tokens dominate most workloads). Surfaces cache_read / cache_write rates when published — most workloads see 30-90% input cost reduction with proper prompt caching.

輸入參數model_idprovidersmodel_familymonthly_input_tokensmonthly_output_tokens

analyze_bill

Analyse the user's actual cloud bill from a FOCUS 1.x CSV export (AWS Data Exports, Azure Cost Management, GCP BigQuery FOCUS view, OCI). Read from local disk only; nothing is sent anywhere. Returns total cost, top cost drivers grouped by service / category / provider / region / SKU / resource, cost by month, the biggest month-over-month movers, list vs effective cost (what discounts saved), and commitment coverage of usage when the export carries commitment columns. Use for: 'where is our cloud money going', 'what jumped last month', 'how much of our usage is covered by RIs / Savings Plans'. Ask the user for the path to their export file.

輸入參數top_ngroup_byfile_path必填

find_commitment_gaps

FinOps rate optimisation on the user's actual bill (a local FOCUS 1.x CSV export; nothing is sent anywhere). Returns commitment coverage of eligible compute and database usage, utilisation of existing Savings Plans / RIs / CUDs (and what unused commitment cost), and per cloud the steady on-demand spend that could be committed, with the $/hour commitment and annual saving for 1-year and 3-year no-upfront terms. Use for: 'are we under-committed', 'how much would a Savings Plan save us', 'are our reservations being used'.

輸入參數file_path必填

detect_bill_anomalies

FinOps anomaly management on the user's actual bill (a local FOCUS 1.x CSV export; nothing is sent anywhere). Compares each service's daily (or monthly) cost with its own recent normal and reports spikes, drops and new spend as events, ranked by excess cost, flagging events still going in the latest period. Use for: 'what blew up our bill', 'did anything unusual happen last week', 'what new spend appeared'.

輸入參數limitgroup_byfile_path必填min_impactsensitivity

analyze_cost_allocation

FinOps allocation on the user's actual bill (a local FOCUS 1.x CSV export; nothing is sent anywhere). Measures how much allocatable cost carries the tags used for showback / chargeback, coverage per required tag, cost by the values of one tag (e.g. team), cost by sub-account, and the biggest untagged services and resources. Use for: 'how much of our spend is tagged', 'cost per team', 'what is missing a cost-center tag'.

輸入參數top_ntag_keyfile_path必填required_tags

forecast_spend

FinOps forecasting on the user's actual bill (a local FOCUS 1.x CSV export; nothing is sent anywhere). Projects month-end spend and the next months from the trend in recurring spend, each with a 95% range, and lists the services whose spend is growing fastest. Daily exports (28+ days) give a daily trend and a month-end estimate. Use for: 'what will this month's bill be', 'where is spend heading next quarter', 'what is driving growth'.

輸入參數file_path必填horizon_months

calculate_unit_cost

FinOps unit economics on the user's actual bill (a local FOCUS 1.x CSV export; nothing is sent anywhere). Divides monthly recurring spend by business volumes the user supplies (customers, requests, orders) to give cost per unit by month, and whether spend is growing faster or slower than the business. Optionally scoped to one product or team by tag. Use for: 'cost per customer', 'are we scaling efficiently'. Ask the user for the monthly volumes.

輸入參數units必填tag_keyfile_path必填tag_valueunit_name

reprice_bill

FinOps benchmarking on the user's actual bill (a local FOCUS 1.x CSV export; nothing is sent anywhere). Works out the vCPU-hours and memory the bill's compute actually used and prices that same capacity at list price on AWS, Azure, GCP and OCI, per instance type and in total, next to what the user really paid. Reports what it could not reprice (GPUs, licensed OS, unknown types) with its cost. Use for: 'what would our bill cost on another cloud', 'are we on the cheapest cloud for this compute', 'is a migration worth looking at'.

輸入參數top_nfile_path必填

analyze_ai_spend

FinOps for AI on the user's actual bill (a local FOCUS 1.x CSV export; nothing is sent anywhere). Finds the generative-AI lines (Amazon Bedrock, Azure OpenAI / AI Foundry, Vertex AI, OCI Generative AI) and gives spend per model split into input, output, cache-read and cache-write tokens; what was paid against list price; the same model's cost on other providers for the same tokens; how much input comes from prompt cache and what more would save; and list price changes for those models from the weekly LLM price archive. Use for: 'what is our LLM spend', 'are we overpaying for this model', 'would caching help'.

輸入參數top_nfile_path必填

review_agentcore

Well-Architected review of an Amazon Bedrock AgentCore deployment, run locally on `terraform show -json` output (a saved plan or state; nothing is sent anywhere, no AWS credentials). Coded rules check every Runtime, Harness and Gateway and the IAM, logs and alarms around them: public network, unauthenticated or debug gateways, InvokeModel on every model, secrets in environment variables, idle and lifetime settings, harness caps, log retention, alarms and cost tags. Each finding has severity, pillar, resource address, a Terraform fix and the AWS doc it rests on. Given a FOCUS bill (and a tag such as agent=genie) it adds what the agent costs by component and the prompt-caching and over-list-price savings. Use for: 'review our AgentCore setup', 'is this agent production-ready', 'what does this agent cost and what should we fix'.

輸入參數tagskipsbill_pathplan_path必填

compare_llm_vs_selfhost

Pay per token or rent GPUs and serve the model yourself? Prices a monthly token volume on an LLM API, then the GPU servers needed to serve the same volume on AWS, Azure, GCP and OCI, and the break-even volume. Needs the measured generation throughput of one server (output tokens/second, e.g. from a vLLM benchmark): it decides the answer and is never guessed. Use for: 'should we self-host Llama 3.3 70B instead of paying Together', 'at what volume do H100s beat the DeepSeek API', 'cheapest cloud to serve our open model'. Self-host cost is GPU rental only; see honest_gaps.

輸入參數model必填targetsgpu_type必填gpu_countutilizationapi_providerprefill_speedupmonthly_input_tokensmonthly_output_tokensoutput_tokens_per_second必填

compare_agent_platforms

Where to host an AI agent, and what a month of it costs: the same agent priced on Amazon Bedrock AgentCore Runtime, Azure AI Foundry Agent Service (prompt agents and hosted agents), Google Vertex AI Agent Engine, and plain serverless (AWS Lambda, Azure Container Apps). Each platform is split into hosting, tools, memory and model tokens, with the model priced on that cloud's own model service (or marked unavailable), and the busy share of a run below which AgentCore costs less than each alternative. Use for: 'AgentCore vs Foundry vs Vertex for our agent', 'should this agent run on Lambda or AgentCore', 'what will hosting 50,000 agent runs a month cost'. For token counts per run, use estimate_agent_cost first.

輸入參數vcpumodelmemory_gbrun_secondsruns_per_monthactive_cpu_sharetool_calls_per_runinput_tokens_per_runoutput_tokens_per_runmemory_retrievals_per_run

estimate_agent_cost

Estimate what one run of an AI agent costs, and a month of runs. Models what per-call math misses: each agent step re-sends the whole conversation (system prompt, tool definitions, earlier outputs and tool results), so input tokens grow every step. Returns cost per run and per month, the per-step token breakdown, how much of the input is context growth, what prompt caching saves, and the same run priced on other current models (Claude, GPT, Gemini, DeepSeek by default). Use for: 'what will my agent cost at 50k runs a month', 'is Sonnet or Haiku cheaper for this agent', 'how much does caching save', 'budget for an AgentCore / LangGraph / Agents SDK agent'. Defaults describe a typical 8-step tool-using agent; pass measured token counts for a real figure.

輸入參數model必填stepshostingprovidercompare_modelsruns_per_monthuser_input_tokenssystem_prompt_tokensoutput_tokens_per_steptool_definition_tokenstool_result_tokens_per_step

model_retirements

Which LLMs providers are retiring: models whose retirement date (from LiteLLM's feed, refreshed weekly) falls within the window, across Bedrock, Azure OpenAI / AI Foundry, Vertex AI, OpenAI, Anthropic and others, plus those retired in the last 90 days. For each: the date, days left, and the newest same-family model on the same provider that is not retiring, with its list price change. Use for: 'which of our models are being retired', 'is Claude 3.5 Sonnet on Bedrock going away', 'what replaces gpt-4o on Azure'. analyze_ai_spend and review_agentcore flag retiring models on your bill and in your deployment automatically.

輸入參數modeltop_nproviderwithin_days

llm_price_changes

What changed in LLM token pricing between two weeks: models that were repriced (with old and new $/1M input and output, and % move), models added, and models removed, across ~3,600 model/provider rows from LiteLLM (direct provider prices) and OpenRouter (routed prices). Backed by a weekly archive kept since 2026-05-23. Use for: 'what got cheaper this week', 'did Anthropic or Bedrock change prices since October', 'new models on Groq this month', 'has Mistral Large's price moved'. Defaults to the latest week vs the week before.

輸入參數limitquerysinceuntilsourceprovider

export_focus

Emit FOCUS 1.3-shaped rows from any pricing query, ready to import into Vantage Custom Providers / Microsoft Cost Mgmt / OpenCost / Apptio / any FinOps tool that consumes the FinOps Foundation's open billing schema (ratified Dec 2025). The rows populate the list-price columns (ListCost, ListUnitPrice, PricingQuantity, etc.) and leave billed/contracted/effective columns NULL since cloudprice produces projections, not real bills — that's explicitly documented in the result's notes field. Use this when the user says 'export my comparison to FOCUS', 'send this to Vantage', 'plug this into our FinOps stack'. Supports query_kind: compute_workload (calls assess_migration), token_pricing (compare_token_pricing), extended_model_lookup (lookup_extended_model_pricing). Format is 'json' (default) or 'csv'.

輸入參數modequeryegressformatsourcecomputestoragetargetsmodel_idmulti_azproviderdatabases另有 9 個

lookup_extended_model_pricing

Search the extended LLM catalog (~2300 model/provider combinations auto-ingested weekly from two upstreams: LiteLLM's public JSON (direct-provider retail prices for Together AI, Fireworks, Replicate, Groq, Cerebras, Perplexity, regional Bedrock/Azure variants, etc.) and OpenRouter's /api/v1/models (routed prices including OpenRouter's margin). Every row tagged source='litellm' or source='openrouter' so callers can compare direct vs routed pricing for the same model. Complements compare_token_pricing (hand-curated, 19 vetted models). Use this when the user asks about: (a) a model or provider compare_token_pricing doesn't know — 'cheapest place to host Llama 3.1 405B', 'Together AI pricing', 'what Groq charges for Mixtral' — or (b) whether OpenRouter routing is cheaper or more expensive than going direct to Bedrock/Anthropic/OpenAI ('does OpenRouter add margin for Claude 3 Haiku?').

輸入參數modelimitquerysourceprovidermax_context_tokensmonthly_input_tokensmonthly_output_tokens

compare_gpu_workload

Cross-cloud GPU pricing comparison — finds the cheapest matching SKU per cloud for a (gpu_type, gpu_count) request. Supports NVIDIA T4 / A10 / A10G / L4 / L40S / V100 / A100 / H100 across AWS / Azure / GCP / OCI. Returns absolute hourly cost AND $/GPU/h so users can see both the absolute winner and the per-GPU packaging-efficiency winner (they're often different clouds). Surfaces over-provisioning when the only matching SKU has more GPUs than requested (e.g., asking for 1 H100 but only bare-metal 8x SKUs are available). Use for AI/ML workload pricing decisions — training, inference, fine-tuning.

輸入參數targetsgpu_type必填gpu_count

compare_carbon_footprint

Multi-cloud carbon footprint comparison — the only FinOps tool that returns both USD cost AND kg CO2e/month side-by-side. For a given vCPU + memory shape (and optional quantity), returns per-cloud best-matching SKU + monthly cost + grid-based kg CO2e + market-based residual kg CO2e (after the cloud's published renewable matching) + power class (x86 vs ARM). Ranked cheapest-carbon-first. Surfaces tradeoffs (AWS/Azure 100% renewable matched, GCP ~64% CFE, OCI unmatched outside EU). Use when the user cares about sustainability, Green FinOps, or carbon-cost dual optimization.

輸入參數vcpus必填targetsquantitymemory_gb必填

watch_workload

Cost Drift Sentinel — turns cloudprice from query tool into agent capability. First call (no baseline): captures the current per-cloud monthly cost for the workload as a baseline JSON the caller persists. Subsequent calls (with the saved baseline): compute today's cost, compare to baseline, return a structured drift report with per-cloud delta + SKU-level attribution from the price-history dataset. Stateless — no database, no server-side storage. Drop the baseline JSON into a git repo or any durable location. Designed for scheduled agents (GitHub Actions cron, Claude Code's autonomous mode, etc.) to detect 'has this cost moved since I signed off?' between runs.

輸入參數egresscomputestoragebaselinemulti_azone_timedatabasescommitmentsource_cloud必填object_storagealert_threshold_pct

compare_spot

Compare spot / preemptible pricing for a vCPU + memory shape across AWS, Azure, GCP, and OCI. Returns per-cloud best-matching SKU + on-demand cost + spot cost + savings + eviction characteristics, ranked cheapest-first. The only multi-cloud spot comparison anyone publishes openly — AWS Spot vs Azure Spot vs GCP Spot VMs vs OCI Preemptible all use different pricing + eviction models, and this tool surfaces every one of them with their tradeoffs.

輸入參數vcpus必填targetsmemory_gb必填

版本歷史

4
  1. v0.29.0最新Nov 5, 2026
  2. v0.27.0Nov 5, 2026
  3. v0.24.0Nov 4, 2026
  4. v0.19.0Nov 4, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分