GPU Economy - cloud GPU prices

Hourly cloud GPU prices from 60+ providers: find, compare, cost and track GPUs.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
93%
Naming quality
85%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (1)

  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,446Tokens (tool definitions)
~2.2 KBTypical response size
Significant attention impact (3.47% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "gpu-prices": {
      "url": "https://gpueconomy.com/mcp"
    }
  }
}

Remote endpoints

https://gpueconomy.com/mcpstreamable-http

What it can do

Tool inventory

Tools (16)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢list_gpus

Every GPU model tracked, with its id, VRAM, how many providers list it and the median on-demand rate card in USD per GPU-hour.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "count": {},
    "gpus": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢gpu_prices(gpu, market, region, limit)

Current listed rental prices for one GPU model across providers, cheapest first, in USD per GPU-hour, each with the time it was read and the GPU Economy page that links its source. Live quotes only.

Input Schema

{
  "type": "object",
  "properties": {
    "gpu": {
      "type": "string",
      "description": "GPU id (h100-sxm, h200, b200, rtx-4090) or a name (\"H100 SXM\", \"RTX 4090\")."
    },
    "market": {
      "type": "string",
      "enum": [
        "any",
        "on_demand",
        "spot",
        "community",
        "shared",
        "serverless",
        "reserved",
        "reserved_1y",
        "reserved_3y"
      ],
      "description": "Market to keep; default on_demand. \"any\" keeps spot, community, serverless and reserved too."
    },
    "region": {
      "type": "string",
      "enum": [
        "any",
        "US",
        "EU"
      ],
      "description": "Rates listed in US or EU regions, plus rates that name no region (a provider's rate everywhere); default any."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Rows to return, cheapest first; default 10."
    }
  },
  "required": [
    "gpu"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "gpu": {},
    "gpu_id": {},
    "market": {},
    "region": {},
    "quotes": {},
    "prices": {},
    "page": {},
    "note": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢provider_prices(provider)

Every current listed rental price at one provider (runpod, lambda, aws, vast-ai, ...), in USD per GPU-hour, each with its read time and the GPU Economy page that links its source. Live quotes only.

Input Schema

{
  "type": "object",
  "properties": {
    "provider": {
      "type": "string",
      "description": "Provider id (runpod, lambda, coreweave, aws, azure, gcp, vast-ai) or its name."
    }
  },
  "required": [
    "provider"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "provider": {},
    "provider_id": {},
    "quotes": {},
    "prices": {},
    "page": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢price_index(window)

The Cloud GPU Price Index: median listed on-demand H100 SXM rate across providers, this week and the last eight weeks, with the base-100 index and the receipts; also the newest hourly point and the monthly averages over a fixed panel.

Input Schema

{
  "type": "object",
  "properties": {
    "window": {
      "type": "string",
      "enum": [
        "week",
        "hour",
        "month"
      ],
      "description": "Which window leads the answer; default week. Every answer carries the newest value of each."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "name": {},
    "method": {},
    "window": {},
    "current": {},
    "series": {},
    "hour": {},
    "months": {},
    "receipts": {},
    "page": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢recent_price_changes(gpu, provider, limit, include_marketplaces)

Listed prices that changed in the last 30 days, one row per quote, newest change first: the figure before its first change in the window, the figure now, and how many times it changed. A quote back at its starting figure is left out, and so are marketplace floors unless asked for. Optionally for one GPU or one provider.

Input Schema

{
  "type": "object",
  "properties": {
    "gpu": {
      "type": "string",
      "description": "Optional GPU id or name."
    },
    "provider": {
      "type": "string",
      "description": "Optional provider id or name."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Rows; default 20."
    },
    "include_marketplaces": {
      "type": "boolean",
      "description": "Also list marketplace floors (Vast.ai), which move with every read; default false."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "window": {},
    "quotes_changed": {},
    "changes_in_window": {},
    "marketplaces": {},
    "changes": {},
    "page": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢find_gpus(min_vram_gb, max_usd_per_gpu_hour, vendor, market, region, ...)

GPU models that meet a memory and price requirement, cheapest first: for each card its cheapest live on-demand rate card (provider, read time, page), its median rate card and panel size, VRAM and price per GB of VRAM. Community capacity and marketplace floors are out unless the market is set.

Input Schema

{
  "type": "object",
  "properties": {
    "min_vram_gb": {
      "type": "number",
      "minimum": 0,
      "description": "Least memory per GPU, in GB (24, 48, 80, 141...). Default 0."
    },
    "max_usd_per_gpu_hour": {
      "type": "number",
      "minimum": 0,
      "description": "Highest acceptable rate per GPU-hour, compared with each card's cheapest rate. Optional."
    },
    "vendor": {
      "type": "string",
      "enum": [
        "any",
        "nvidia",
        "amd"
      ],
      "description": "Default any."
    },
    "market": {
      "type": "string",
      "enum": [
        "on_demand",
        "spot",
        "community",
        "shared",
        "serverless",
        "reserved",
        "reserved_1y",
        "reserved_3y"
      ],
      "description": "Market of the cheapest rate; default on_demand."
    },
    "region": {
      "type": "string",
      "enum": [
        "any",
        "US",
        "EU"
      ],
      "description": "Rates listed in US or EU regions, plus rates that name no region (a provider's rate everywhere); default any."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Cards to return; default 10."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "requirement": {},
    "cards_matching": {},
    "gpus": {},
    "note": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢compare_gpus(a, b)

Two GPU models side by side: VRAM, median rate card and panel size, cheapest on-demand rate, price per GB of VRAM, retail median where one exists, and every provider that lists both on-demand with the signed difference. Live quotes only.

Input Schema

{
  "type": "object",
  "properties": {
    "a": {
      "type": "string",
      "description": "First GPU id or name (h100-sxm, \"H200\")."
    },
    "b": {
      "type": "string",
      "description": "Second GPU id or name."
    }
  },
  "required": [
    "a",
    "b"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "a": {},
    "b": {},
    "difference_is": {},
    "providers_listing_both": {},
    "both": {},
    "note": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢compare_providers(a, b)

Two providers on every GPU both list on-demand today: each side's cheapest on-demand rate card, the difference and which is lower, and the count. Community capacity and marketplace floors are left out of the comparison. Live quotes only.

Input Schema

{
  "type": "object",
  "properties": {
    "a": {
      "type": "string",
      "description": "First provider id or name (runpod, lambda, \"Google Cloud\")."
    },
    "b": {
      "type": "string",
      "description": "Second provider id or name."
    }
  },
  "required": [
    "a",
    "b"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "a": {},
    "b": {},
    "gpus_compared": {},
    "lower_on": {},
    "gpus": {},
    "page": {},
    "note": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢estimate_cost(gpu, gpus, hours, market, region, ...)

What N GPUs of one model cost for a number of hours at listed rates: at each of the cheapest rate cards and at the median rate card, with the arithmetic. Rental fee only - storage, network egress, taxes and idle time are not counted - and listed rates, not availability.

Input Schema

{
  "type": "object",
  "properties": {
    "gpu": {
      "type": "string",
      "description": "GPU id or name."
    },
    "gpus": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100000,
      "description": "How many GPUs; default 1."
    },
    "hours": {
      "type": "number",
      "minimum": 1,
      "maximum": 100000,
      "description": "Hours of use; default 730 (a month around the clock)."
    },
    "market": {
      "type": "string",
      "enum": [
        "on_demand",
        "spot",
        "community",
        "shared",
        "serverless",
        "reserved",
        "reserved_1y",
        "reserved_3y"
      ],
      "description": "Market; default on_demand."
    },
    "region": {
      "type": "string",
      "enum": [
        "any",
        "US",
        "EU"
      ],
      "description": "Rates listed in US or EU regions, plus rates that name no region (a provider's rate everywhere); default any."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 20,
      "description": "Cheapest rate cards to price; default 5."
    }
  },
  "required": [
    "gpu"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "gpu": {},
    "gpu_id": {},
    "gpus": {},
    "hours": {},
    "market": {},
    "region": {},
    "arithmetic": {},
    "at_cheapest": {},
    "at_median": {},
    "not_counted": {},
    "buy_instead": {},
    "page": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢price_history(gpu, weeks)

Weekly median and cheapest listed on-demand rate for one GPU model, newest week first, from two sources kept apart: our own hourly reads, and a series reconstructed from a public price catalog (second-hand). Each week carries its panel size; read a median against it.

Input Schema

{
  "type": "object",
  "properties": {
    "gpu": {
      "type": "string",
      "description": "GPU id or name."
    },
    "weeks": {
      "type": "integer",
      "minimum": 1,
      "maximum": 120,
      "description": "Weeks per source, newest first; default 12."
    }
  },
  "required": [
    "gpu"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "gpu": {},
    "gpu_id": {},
    "series": {},
    "page": {},
    "note": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢commitment_savings(gpu, term, limit)

Committed and spot rates for one GPU (or every GPU) set against the same provider's own on-demand rate for the same card, region and price scope - the pairs behind the site's typical discount - with the median per term across every card. A commitment is paid whether the GPU runs or not.

Input Schema

{
  "type": "object",
  "properties": {
    "gpu": {
      "type": "string",
      "description": "Optional GPU id or name; without it, every card."
    },
    "term": {
      "type": "string",
      "enum": [
        "any",
        "reserved_1y",
        "reserved_3y",
        "spot"
      ],
      "description": "Which market to pair; default any (1-year, 3-year and spot)."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Pairs to return, largest saving first; default 15."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "gpu": {},
    "term": {},
    "method": {},
    "typical_by_term": {},
    "pairs_found": {},
    "pairs": {},
    "note": {},
    "page": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢provider_info(provider)

One provider: its type (hyperscaler, specialist GPU cloud or marketplace), the regions or tiers it names, how GPU Economy reads its prices (pricing page, API or rendered page), how many GPU models and live quotes it has, a one-line note for a reader, its cheapest on-demand rate per card, and what it bills beyond the GPU-hour where read (what the rate includes, data out, storage, stopped instances, billing step). Links its GPU Economy page.

Input Schema

{
  "type": "object",
  "properties": {
    "provider": {
      "type": "string",
      "description": "Provider id or name (runpod, \"Google Cloud\", vast-ai)."
    }
  },
  "required": [
    "provider"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "provider": {},
    "provider_id": {},
    "type": {},
    "read": {},
    "regions_or_tiers": {},
    "note": {},
    "gpu_models_live": {},
    "live_quotes": {},
    "markets": {},
    "cheapest_on_demand_by_gpu": {},
    "beyond_gpu_hour": {},
    "page": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢token_cost(gpu, model)

Modelled, not measured: a listed GPU-hour rate divided by the output throughput NVIDIA published for that card and model, per million output tokens, at the cheapest live on-demand rate card and at the median, with NVIDIA's run (model, framework, precision, sequence, concurrency, date). Cards are not comparable on it - NVIDIA runs each card differently - and an idle GPU costs the same and produces nothing: a floor, never a bill.

Input Schema

{
  "type": "object",
  "properties": {
    "gpu": {
      "type": "string",
      "description": "GPU id or name; NVIDIA publishes runs for B200, B300, H100 SXM, H200 and RTX PRO 6000."
    },
    "model": {
      "type": "string",
      "description": "Optional model name to keep (gpt-oss-120b, \"Qwen 3.5\"); default every model NVIDIA ran on the card."
    }
  },
  "required": [
    "gpu"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "gpu": {},
    "gpu_id": {},
    "modelled": {},
    "formula": {},
    "rates": {},
    "runs": {},
    "throughput_source": {},
    "caveat": {},
    "page": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢buy_vs_rent(gpu)

A card's new retail price (median of 3+ sellers) against its live on-demand rental rates: months of rental, at the cheapest rate card and at the median, that equal the purchase price, at 100%, 70%, 50% and 25% of a 730-hour month. Rental fee only - power, hosting, the server around the card and resale are not counted. Without gpu, every card that has a retail median.

Input Schema

{
  "type": "object",
  "properties": {
    "gpu": {
      "type": "string",
      "description": "GPU id or name, e.g. rtx-4090; omit for every card with a retail median."
    }
  },
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "data_updated_at": {
      "type": "string",
      "description": "Newest scrape behind the answer (ISO 8601)."
    },
    "attribution": {
      "type": "string"
    },
    "cite_as": {
      "type": "string",
      "description": "How to cite this answer: GPU Economy, the page, the data date."
    },
    "gpu": {},
    "gpu_id": {},
    "cards": {},
    "hours_per_month": {},
    "not_counted": {},
    "page": {}
  },
  "required": [
    "data_updated_at",
    "attribution",
    "cite_as"
  ]
}
🟢search(query)

Find GPU Economy pages for a query - a GPU, a provider, the price index, reserved rates, buy vs rent. Returns ids for fetch, with each page's title and URL.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "What to look for, e.g. \"H100 SXM\", \"runpod\", \"reserved H200\", \"price index\"."
    }
  },
  "required": [
    "query"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ]
      }
    }
  },
  "required": [
    "results"
  ]
}
🟢fetch(id)

The text of one GPU Economy page by an id from search (gpu:h100-sxm, provider:runpod, index:h100, reserved, buy-vs-rent): its live rates with read times, as plain text, with the page URL to cite.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "An id from search."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "metadata": {
      "type": "object"
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded16 tools
verifiedversion not recorded16 tools
verifiedversion not recorded5 tools