SuperAPI AI 工具集

cloudcostsmcp

OpenCloudCosts(cloudcostsmcp)是一个开源 MCP 服务器,为 AI 助手提供 AWS、GCP 和 Azure 的实时云定价数据。它通过 16 个 MCP 工具(其中 14 个完全可用,2 个为兼容性占位)让 AI 助手直接调用实时定价 API,而非依赖训练数据猜测。支持公有列表价格和企业协商折扣价(预留实例、节省计划、CUD、EDP),可跨三大云同时比较工作负载成本、查找最便宜区域、计算单位经济性等。项目使用 Go 编写,提供 pip、Homebrew、二进制、Docker 和源码构建等多种安装方式,并支持与 Claude Code 等 MCP 客户端集成。

访问官网

工具介绍

用途

OpenCloudCosts 是一个开源 MCP(Model Context Protocol)服务器,旨在为 AI 助手提供 AWS、GCP 和 Azure 的实时、结构化云定价数据。它解决的核心问题是:大语言模型的云定价知识在训练截止时就被冻结,而云定价持续变化——实例类型不断新增和淘汰、同一实例类型在不同区域价格差异可达 20–40%、现货市场波动、承诺折扣因账户而异。模型无法知道你的协商 EDP 费率,甚至难以可靠回忆去年的列表价格。OpenCloudCosts 通过让模型调用工具获取精确答案,而非凭空猜测数字。

主要能力

覆盖范围:三大云,16 个工具

其中 14 个工具完全可用。两个条目为兼容性占位:search_pricing(v0.8.x 的已弃用重定向,保留用于向后兼容)和 get_spot_history(已在 Go 服务器中注册但未实现,返回结构化的“不可用”响应)。

按提供商划分的凭证要求

  • AWS:公有定价无需凭证;有效定价需要 AWS 凭证并设置 OCC_AWS_ENABLE_COST_EXPLORER=true。
  • GCP:公有定价需要免费的 GCP API 密钥(OCC_GCP_API_KEY);合同/有效定价需要 ADC 凭证和 billing.billingAccountPrice.get IAM 权限。
  • Azure:完全公开,无需凭证、API 密钥或订阅。Azure 预留 VM 定价(1 年和 3 年期限)可通过公有 Retail Prices API 获取,无需凭证。

性能与可靠性

  • 并发:find_cheapest_region 和 find_available_regions 使用 errgroup + 信号量,最多 32 个 goroutine 并行查询所有可用区域,结果按最便宜优先排序;compare_bom 同时发起 8 个跨 AWS、GCP、Azure 的并发提供商调用;compare_prices 使用 10 个并发区域调用的信号量;get_prices_batch 在区域内跨实例类型并行化。
  • 速率限制与超时:HTTP 传输层令牌桶速率限制为 200 req/s(OCC_RATE_LIMIT);每请求截止时间 60s(OCC_REQUEST_TIMEOUT);每提供商 API 调用 30s(OCC_PROVIDER_TIMEOUT);优雅 SIGTERM 排空 15s(OCC_SHUTDOWN_TIMEOUT)。
  • 缓存:价格存储在并发内存缓存中(使用 sync.RWMutex 读优化),原子 JSON 持久化于 ~/.cache/opencloudcosts/cache.json。TTL:公有价格 24 小时(OCC_CACHE_TTL_HOURS),区域/实例元数据 7 天(OCC_METADATA_TTL_DAYS),有效/合同费率 1 小时(OCC_EFFECTIVE_PRICE_TTL_HOURS)。缓存可在二进制更新后保留。计费 API 的 401/403 响应从不缓存,因此凭证轮换立即生效。
  • AWS 定价:EC2/EBS/RDS 公有定价使用定向 SKU API 路径,而非下载完整的多 GB 批量定价文件,保持启动快速并避免大网络负载。
  • 错误隔离:原始异常文本从不进入 LLM 上下文。所有工具边界发出结构化错误信封;完整回溯仅记录在服务器端。GCP 合同定价在认证失败时回退到公有列表价格,而非将错误暴露到对话中。

验证

OpenCloudCosts v1.0.0 在 LLM 接地测试集上达到 234/234(100%),全套件零 XML 幻觉。测试集覆盖三大云的 234 个真实定价问题:实例抽查、跨区域比较、BOM 估算、多云比较、单位经济性、AI 模型定价、数据库定价、存储定价、折扣摘要、出口定价、可用性查询和网络定价。主要验证模型为通过 llama-swap 本地运行的 qwen3.6-35b-128k。测试集进展:109/123(Python v0.8.x)→ 169/169(v0.9.0)→ 199/199(v0.9.2)→ 234/234(v1.0.0)。此外还有 643 个 Go 单元测试跨所有提供商和工具验证行为正确性和跨提供商 API 一致性。

使用方式

安装

  • 选项 1 — pip(最简单,跨平台):PyPI 包封装了原生 Go 二进制,无需 Go 工具链。
  • 选项 2 — Homebrew(macOS / Linux)。
  • 选项 3 — 二进制下载:从最新 release 下载预构建二进制。
  • 选项 4 — Docker / 容器:镜像约 15 MB(distroless scratch 基础,静态二进制)。AWS 和 Azure 公有定价无需凭证。
  • 选项 5 — 从源码构建。

连接到 Claude Code

  • Stdio(本地进程 — 单用户推荐):添加到 ~/.claude/settings.json 或项目的 .mcp.json。
  • HTTP(共享/远程服务器 — 一个服务器,多个客户端):参见 deploy/kubernetes/ 获取清单。构建并推送自己的镜像,然后在 deployment.yaml 中引用。凭证通过环境变量或 Kubernetes Secrets 传递。

测试

使用 MCP Inspector 测试。

AWS 凭证

公有定价的最小 IAM 策略;有效定价需额外添加权限。

配置

所有设置通过环境变量(前缀 OCC_)或 .env 文件。

GCP 设置

与 AWS(有公有批量定价端点)不同,GCP 的定价 API 始终需要至少一个免费 API 密钥。无需信用卡或计费账户。

  • 选项 A — 免费 API 密钥(推荐,2 分钟设置):前往 console.cloud.google.com/apis/credentials,创建项目(免费),点击创建凭证 → API 密钥。或将 OCC_GCP_API_KEY=AIza... 添加到 .env 文件。
  • 选项 B — 应用程序默认凭证(如果已使用 gcloud)。

GCP 实例类型格式:{family}-{series}-{vcpus},例如 n2-standard-4、e2-highmem-8、c2-standard-16。

GCP 合同/有效定价

如果与 Google Cloud 有协商定价合同,可通过 Cloud Billing Pricing API v1beta 获取实际折扣费率(EDP、自定义定价)。需要:ADC 凭证(gcloud auth application-default login)、计费账户上的 billing.billingAccountPrice.get IAM 权限、计费账户 ID。配置后,GCP 计算的 get_price 响应将包含 effective_price 块,显示合同费率和折扣百分比。未配置时,返回公有列表价格。

Azure 设置

Azure 定价完全公开——无需凭证、API 密钥或订阅。Azure 实例类型格式:ARM SKU 名称,例如 Standard_D4s_v3、Standard_E8s_v3、Standard_B2ms。Azure 定价期限:on_demand(默认)、reserved_ 等。

适用场景

  1. 跨三大云同时定价同一工作负载:使用 compare_bom 同时发起 8 个并发提供商调用,返回按提供商、按期限的细分及节省分析。
  2. 查找长期计算工作负载最便宜的 AWS 区域:使用 find_cheapest_region 以 32 个 goroutine 扇出所有区域,返回最便宜的 5 个。
  3. 确定承诺后的有效 AWS 费率:使用 get_price 配合 AWS 凭证和 OCC_AWS_ENABLE_COST_EXPLORER=true,返回实际折扣后费率及公有列表价格。
  4. Azure 无服务器与常开模式的盈亏平衡分析:estimate_unit_economics 覆盖 Functions 路径,get_price 覆盖 VM。
  5. SaaS 产品的单位经济性:estimate_bom 定价完整堆栈,estimate_unit_economics 计算每用户和每请求成本。
  6. AI token 成本比较:Vertex AI vs. Azure OpenAI:使用 get_price 配合 domain: ai 覆盖两个提供商。

限制

  • 两个工具为兼容性占位,不提供实时数据:search_pricing(已弃用重定向)和 get_spot_history(未实现,返回结构化“不可用”响应)。
  • GCP 定价 API 始终需要至少一个免费 API 密钥,无法像 AWS 那样完全无凭证访问公有定价。
  • GCP 合同/有效定价需要 ADC 凭证和特定 IAM 权限,配置较复杂。
  • 有效定价(折扣后费率)需要相应云提供商的凭证和额外配置;未配置时仅返回公有列表价格。
  • 缓存 TTL 意味着价格数据可能最多滞后 24 小时(公有价格),需使用 refresh_cache 工具强制刷新。
  • 项目为开源 MCP 服务器,需自行部署和配置,不提供托管服务。