Lantern Works GPU Prices: daily GPU rental price comparison

io.github.connormatthewdouglas由 GitHub 帳號 connormatthewdouglas 發布v0.6.0更新於 Nov 3, 2026

每日核查GPU租用價格,提供價格歷史與變動推送;堆疊最佳化器;AI基礎設施優惠

AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。

原文描述

GPU rental prices checked daily, with price history and change feed; stack optimizer; AI-infra deals

發布方自己的服務:Lantern

已驗證Streamable HTTP可網頁執行雲端與基礎設施金融商業與電商

概覽

Lantern Works GPU Prices: daily GPU rental price comparison 的託管 MCP 服務(lantern-works-mcp.lantern-works.workers.dev);無需登入;Streamable HTTP。

暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。

端點
lantern-works-mcp.lantern-works.workers.dev
最近檢查

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Lantern Works GPU Prices: daily GPU rental price comparison,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.connormatthewdouglas%2Flantern-works-deals/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "lantern-works-gpu-prices-daily-gpu-renta": {
      "type": "http",
      "url": "https://lantern-works-mcp.lantern-works.workers.dev/mcp?ref=mcp-registry"
    }
  }
}

README

Lantern Works — GPU price comparison for agents, checked daily

Lantern Works compares GPU rental prices and estimates job costs for agents, with vendor source links, check times and quote receipts. Prices refresh daily; "cheapest" means among tracked providers. Referral links are labeled and never affect ranking.

Get your first quote — no installation or API key

Python 3.10+, standard library only. Read the example, then download and run it:

sh
curl --fail --location https://raw.githubusercontent.com/connormatthewdouglas/agent-work-stack-deals/main/examples/first_quote.py --output first_quote.pypython3 first_quote.py --gpu 'H100 SXM' --hours 100 --ref readme

This calls the public hosted MCP: three on-demand rates checked within 24 hours, then a 100-hour, one-GPU compute estimate with sources, assumptions, missing costs and a receipt. It creates no purchase or watch. Use --qa for internal tests.

Client setup · Quickstart · Agent manifest · Small per-model JSON feeds · Add this to your README or dataset

Contact: [email protected]

MCP server (v0.6.0, read-only, stdio)

Free, read-only, no API key. Package lantern-works-deals-mcp on PyPI; MCP Registry name io.github.connormatthewdouglas/lantern-works-deals. Built on the official Python MCP SDK.

Tools

Tool counts: 9 in the local package (stdio, below); 13 on the hosted endpoint (the same 9 plus create_watch_key, watch_price, list_watches, delete_watch).

ToolWhat it does
compare_gpu_pricesHourly rental prices for a GPU model (e.g. H100, A100 SXM, RTX 4090) across tracked providers, cheapest first, each with source_url and checked_at. "Cheapest" means cheapest among tracked providers, not the whole market. include_history=true adds each rate's price history and recent price changes (daily snapshots since 2026-10-27). Each rate has tier_class (on-demand, community, marketplace, interruptible, reserved, dedicated-monthly; also in the public JSON feed); on_demand_only=true keeps on-demand rates only. reserved = reservation/commitment "starting from" prices (e.g. Hyperstack reservations): they need a term contract, so they are left out of results and never called "cheapest" unless you pass include_reserved=true (even then they sort after pay-as-you-go rates). Each result carries report_issue_url, a prefilled "wrong price" issue link. Returns mode="brief" by default since 0.5.0; pass mode="full" for every field.
get_price_changesGPU price moves among tracked providers, newest first: old and new hourly price, change_pct, direction and the vendor source_url. since (YYYY-MM-DD) returns every move on or after that date; without it, the latest day's moves. Optional gpu and kinds filters. Each change has a stable event_id (dedupe key) and rate_id; pass cursor=next_cursor to page every change after it, oldest first, until has_more is false.
optimize_stackGiven monthly usage (pages scraped, proxy GB, emails, search queries, GPU hours/model), pick the cheapest tracked plan per line and total the monthly cost, with the calculation, sources and alternatives; unpublished prices are reported as unknown.
optimize_agent_stackDescribe the agent in plain text (e.g. "scrapes 20k JS pages via 5 GB proxies, 3k searches, summarizes with an LLM, budget $300/mo"); a deterministic keyword parse (no LLM) maps it to components and returns the cheapest cited option per component with the math, source_url, verified_at and a referral disclosure where applicable. Components with no cited price say "no sourced price tracked".
estimate_job_costCost of one GPU job (not per hour) among tracked providers, cheapest first. You give job_hours, or work_units plus your own throughput_units_per_gpu_hour; for inference workloads with no throughput given, a cited closed-division MLPerf Inference figure for the exact GPU is used (throughput_basis="published_benchmark", with source and caveats), and training returns "missing: throughput". Whole-instance billing; reserved and held rates never ranked; spot only with allow_interruptible. Returns per-rate rate_id, source_url, verified_at, assumptions, missing_costs and a quote_id.
rebuild_quoteReopen a past quote: pass the receipt from optimize_stack, optimize_agent_stack or estimate_job_cost. Returns receipt_intact, reproduced (true only when each line's arithmetic recomputes AND its rate_id and price match the pinned feed revision or that date's published daily snapshot; "arithmetic_only" with provenance_verified: false when that can't be confirmed), per-line provenance, and revalidation against today's feed (unchanged, price_changed, evidence_changed, held_today, not_in_feed_today). Nothing is re-ranked; no server key.
search_dealsSearch the deals feed by text, category, offer_type, max_price and tags; paginated summaries (limit 1-25, cursor).
compare_dealsCompare 2-5 deals by id side by side, best customer value first.
get_dealReturn the full public record for one deal id.

Note on rebuild_quote: a receipt issued from an earlier feed generation on a day whose daily snapshot was later re-cut can come back reproduced: "arithmetic_only" (price_mismatch) even though its price was genuine at the time. That is a safe false negative; it never verifies a forged price.

Install

bash
uvx lantern-works-deals-mcp

Quickstart: ask for compare_gpu_prices(gpu="H100"), then the next day call get_price_changes(since="<data_checked_at date>") to see what moved. Prices refresh daily at about 10:23 UTC; compare_gpu_prices and optimize_agent_stack return data_checked_at and next_refresh_utc.

Claude Code:

bash
claude mcp add lantern-works-deals -- uvx lantern-works-deals-mcp

Cursor (.cursor/mcp.json) and Cline (cline_mcp_settings.json, via MCP Servers → Configure) use the same entry:

json
{ "mcpServers": { "lantern-works-deals": { "command": "uvx", "args": ["lantern-works-deals-mcp"] } } }

Docker: docker build -t lantern-works-deals-mcp . && docker run -i --rm lantern-works-deals-mcp (the root Dockerfile installs the pinned PyPI release and runs the stdio server). Without uv: pip install lantern-works-deals-mcp, then use "command": "lantern-works-deals-mcp". Other clients: https://thelanternworks.com/install/?ref=readme · Skill: npx skills add connormatthewdouglas/agent-work-stack-deals.

Telemetry is off by default. LANTERN_TELEMETRY=1 opts in to an anonymous daily count of tool calls: tool name, version, day and count only. No arguments, IDs or IPs are sent or stored. See PRIVACY.md.

[Terminal demo: cheapest H100 for 100 hours via compare_gpu_prices]

Demo (live data, 2026-10-28): the MCP server answers "cheapest H100 for 100 hours?". It shows 100-hour totals for the cheapest, next and most expensive tracked rates, each with its source and check time, and labels referral links. Recording: docs/demo/cheapest-h100-100h.cast · script: docs/demo/demo.py.

Framework examples: LangGraph (cheapest H100), CrewAI and OpenAI Agents SDK (cheapest GPU for a described job), Stack optimizer (describe your agent, get the cheapest cited stack via optimize_agent_stack), GPU price watcher (what moved since a date via get_price_changes, cron-ready), GPU price monitor (price-drop alerts from the history API). All examples: examples/. Some tool results include referral links (affiliate: true).

Arguments, errors, data sources and tests: mcp_server/README.md.

Hosted endpoint (no install)

Streamable HTTP, same read-only tools: https://lantern-works-mcp.lantern-works.workers.dev/mcp?ref=readme (claude mcp add --transport http lantern-works-deals https://lantern-works-mcp.lantern-works.workers.dev/mcp?ref=readme). Free Cloudflare Worker; it stores only anonymous call counts per tool per day (no IPs, user agents or arguments), public at https://lantern-works-mcp.lantern-works.workers.dev/stats. ?ref= only tags which link was used.

Alert delivery (hosted watches)

  • At-least-once. An alert counts as delivered on any 2xx. Dedupe on x-lantern-event-id + x-lantern-watch-id.
  • 408, 425, 429, 5xx and network errors retry with backoff: 15 min, then x4 each time, capped at 24 h. Retry-After is honoured up to 24 h. At most 6 attempts, and none after 72 h from the first; then the alert is expired.
  • Any other status (3xx are not followed, 4xx) is rejected and not retried.
  • Fair continuation: never-tried alerts go first, then the least recently tried; at most 10 POSTs per receiver host per run, and a host that fails is skipped for the rest of that run. Work left over is backlog, sent on the next push.
  • stats.delivery shows last_push_at, last_success_at, pending_retries and the last outcome counts. The push job fails when any delivery fails or D1 cannot record results.
  • Local alternative: examples/gpu-price-watcher/watch_prices.py --state FILE pages every event after a saved cursor and saves it atomically after each page, so a crash or missed day re-reads and never skips.

Eligibility (region, memory, tier, stock)

compare_gpu_prices, estimate_job_cost, hosted price watches and the calculator share one contract (core/eligibility.py). Each result carries eligibility {eligible, applied, unmet, unknown}.

  • gpu="A100 80GB" (or vram_gb=80) never matches a 40GB row; tiers=["on-demand"] never matches spot.
  • region="US" (country/area: US, CA, EU, APAC, ...) matches every zone in it: 'US-MD-1 (United States)', 'us-east-1'. A zone (region="us-ne-1") matches exactly, any case, ignoring the '(...)' suffix. Published rows carry available_regions_normalized ({label, zone, country, group}) beside the original labels. The summary starts with what the region filter found, and names a cheapest "regardless of region" when no confirmed row leads.
  • GPU names fold form-factor generations: 'A100 SXM4' = 'A100 SXM', 'H100 PCIe5' = 'H100 PCIe'. A form no tracked rate has is not_found in compare, estimate and watches.
  • region="US" drops rows whose unexpired published regions exclude it. Rows with no region evidence are kept, marked unresolved and ranked last; a watch never alerts on them.
  • Unknown stock is not confirmed availability. A row confirmed sold out never alerts.

Stale prices

By default no tool or page ranks a GPU price older than 168 hours (7 days) or names it cheapest. Such rows are listed separately as "stale price (N days old)" in stale_prices. If every matching price is stale, no current cheapest is named and the summary says so. Pass max_data_age_hours to set a different limit (for example 1000 to rank older quotes anyway; confirm them on the vendor page).

Published GPU throughput data (T20 Phase B, data only)

data/gpu_throughput.json (schema lantern-works-gpu-throughput/1) holds published throughput and peak-spec figures for H100 (SXM, PCIe 80GB, NVL), A100 (40/80GB, SXM vs PCIe), L40S and RTX 4090, from NVIDIA spec sheets and MLPerf Inference results (closed division, Offline). Each figure carries gpu, variant, workload, metric, unit, value, conditions (precision, sparsity, scenario, batch, gpu_count, per_gpu), source_url, source_title, publication_date, retrieved_at (UTC) and a verbatim quote.

Rules: values are copied from the quote, never estimated or derived. Multi-GPU MLPerf results are whole-system numbers (per_gpu: false) and are not divided per GPU. Vendor TFLOPS are theoretical peaks, not job throughput. Missing combinations are listed in gaps with gap: true and a reason. tests/test_gpu_throughput.py enforces this. estimate_job_cost reads it (since 0.3.21): for inference workloads with no user throughput it uses a directly applicable cited figure and reports throughput_basis="published_benchmark" with the source; training and uncovered GPU/model pairs still need a user-supplied throughput.

Report a wrong price

See a price that doesn't match the vendor's page, or an offer you can't rent? Open a wrong-price report. Agents can prefill it from a feed row; see docs/REPORT-WRONG-PRICE.md.

Feed contract, validation and deploy gate

  • Schema: schema.json (JSON Schema 2020-12). deals.json carries schema_version; prices are nullable (null = unknown, 0 = free tier), with explicit currency, unit, billing_period, verified_at, updated_at.
  • Stable feed: https://thelanternworks.com/api/v1/deals.json is byte-identical to /deals.json (both written by scripts/generate_seo_pages.py). The gist is a byte-identical mirror.
  • Private data: commission, payout and compliance data live only in a private file outside this repo (path set by LANTERN_PRIVATE_FIELDS). The generator reads it only for local sanity checks and leak detection and fails the build if any private key or commission-like text reaches public output.
  • Validation: pip install jsonschema && python3 scripts/validate_feed.py --gist --links checks schema, private-leak scan, api/v1 parity, sitemap host, old-host hardcodes, gist parity and redeem URLs (403/429/timeouts warn; 404/410/DNS/persistent 5xx fail, exit 1).
  • Deploy gate: GitHub Actions runs schema validation, the test suite, a clean PyPI install check and a Docker build/stdio check; Pages deploys only after they pass, then live checks run.
  • Migration test: python3 scripts/test_url_migration.py checks old GitHub Pages project URLs 301 to the new domain, key pages return 200, and the feeds match.
  • Compliance gate: when the private registry (path set by LANTERN_COMPLIANCE_REGISTRY) is present, the generator publishes only deals whose status is approved; others move to a private held file and come back automatically once approved. Absent registry (CI) = feed published as-is.
  • For agents: https://thelanternworks.com/for-agents/?ref=readme documents endpoints, schema and offer types.

License

  • Code: MIT, see LICENSE.
  • Field reference for canonical_model and form_factor in gpu-prices.json: docs/GPU-PRICES-FIELDS.md.
  • Price and deal data (deals.json, api/v1/*.json including gpu-prices.json, the price history and change feed, data/gpu_pricing/): CC BY 4.0, see LICENSE-DATA. Attribution: "Lantern Works" with a link to https://thelanternworks.com. Every JSON feed carries these terms in its license field.

來源:README.md,提交 12fc321

工具

0
SourceWeft 尚未讀取此伺服器的工具。

版本歷史

6
  1. v0.6.0最新Nov 3, 2026
  2. v0.3.52Oct 31, 2026
  3. v0.3.46Oct 30, 2026
  4. v0.3.34Oct 30, 2026
  5. v0.3.32Oct 30, 2026
  6. v0.3.24Oct 29, 2026

評分

已滿足適用檢查項的 85%

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

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Lantern 整合