Skip to main content
Glama

Lantern Works GPU Prices: daily GPU rental price comparison

compare_gpu_prices

Read-only

Compare tracked GPU rental prices for one model (e.g. 'H100', 'A100 SXM', 'RTX 4090', 'L40S'), cheapest first. If a result looks wrong, give the user its report_issue_url.

Same data as https://thelanternworks.com/api/v1/gpu-prices.json. Sorted by hourly_usd ascending; each result has source_url and checked_at. 'Cheapest' means cheapest among tracked providers, not the whole market. limit 1-25. Unknown model returns not_found listing tracked models. Each result has tier_class: on-demand | community | marketplace | interruptible (spot/preemptible) | reserved | dedicated-monthly. Reserved (reservation/commitment 'starting from') rates are left out unless include_reserved=true, and even then they are never reported as cheapest. The cheapest overall can be spot or community capacity; on_demand_only=true keeps only on-demand rates, and the summary names the cheapest on-demand rate when the overall cheapest isn't. include_history=true adds each result's price_history (daily-snapshot change points) and history.recent_changes (price changes for this model among tracked providers, last 30 days) from /api/v1/gpu-prices/history.json. Each result has data_age_hours (hours since its price was last verified), degraded (> 48 h) and stale (> 7 days). max_data_age_hours (optional) drops older rates; excluded_too_old reports how many were dropped.

Input Schema

NameRequiredDescriptionDefault
gpuYes
modeNofull
limitNo
on_demand_onlyNo
include_historyNo
include_reservedNo
max_data_age_hoursNo

Output Schema

NameRequiredDescriptionDefault
okYes
modeNo
errorNo
resultsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / results / items / properties / report_issue_url
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed3 schema fields changed
    • changedOutput schema / properties / error / properties / code / enum
      Previous value: -[
      -  "invalid_argument",
      -  "invalid_cursor",
      -  "not_found",
      -  "feed_unavailable",
      -  "feed_invalid",
      -  "upstream_unavailable",
      -  "internal_error"
      -]New value: +[
      +  "invalid_argument",
      +  "invalid_cursor",
      +  "cursor_expired",
      +  "not_found",
      +  "feed_unavailable",
      +  "feed_invalid",
      +  "upstream_unavailable",
      +  "internal_error"
      +]
    • addedOutput schema / properties / results / items / properties
      Added value: +{
      +  "rate_id": {
      +    "pattern": "^r_[0-9a-f]{12}$",
      +    "type": "string"
      +  }
      +}
    • changedOutput schema / properties / results / items / required
      Previous value: -[
      -  "advertiser",
      -  "gpu",
      -  "hourly_usd",
      -  "source_url",
      -  "rank"
      -]New value: +[
      +  "advertiser",
      +  "gpu",
      +  "hourly_usd",
      +  "source_url",
      +  "rank",
      +  "rate_id"
      +]
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly/openWorld, and the description adds substantial non-obvious behavior: reserved rates are excluded by default and never reported as cheapest, spot/community can be the headline cheapest, unknown model returns not_found, and results carry data_age_hours with degraded/stale thresholds. It also discloses the underlying JSON endpoint and history source.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and sort order, and nearly every sentence adds a distinct operational fact. It drifts into long compound sentences and a mid-text URL/tier taxonomy dump, so it is dense but not maximally tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description needn't spell out return fields, yet it usefully explains error behavior, freshness semantics and filtering side effects. The only meaningful omission is the undocumented 'mode' parameter, which an agent cannot infer from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage the description must carry all parameter meaning, and it covers six of seven: gpu (model examples plus not_found behavior), limit (1-25 range), on_demand_only, include_reserved, include_history (with what it adds), and max_data_age_hours (with excluded_too_old). The 'mode' parameter (default 'full') is never mentioned anywhere, leaving one real gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Compare tracked GPU rental prices for one model'), the sort order ('cheapest first'), and scopes the data source. It is clearly distinguishable from siblings like get_price_changes, search_deals and estimate_job_cost.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives strong usage context: cheapest-means-tracked-providers caveat, include_reserved and on_demand_only behaviors, and the report_issue_url escape hatch when a result looks wrong. It never explicitly routes against a named sibling tool (e.g. get_price_changes or estimate_job_cost), so the when-to-use-vs-alternative guidance is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.