Rack Rates
dev.rackrates/ledgerVersion 0.1.0Published list prices of compute (VPS, GPU hours, LLM tokens, media), archived daily. Read-only.
Status
Responds807 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:27 UTC
- Latency
- 807 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- EU hosting detected (detected, not a legal statement)
- Registry data as of
- Nov 14, 2026, 21:12 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://rackrates.dev/mcpResponds807 msNo sign-in
Claude Code
claude mcp add --transport http ledger https://rackrates.dev/mcpClaude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: ledger
Remote MCP server URL: https://rackrates.dev/mcpCursor
{
"mcpServers": {
"ledger": {
"url": "https://rackrates.dev/mcp"
}
}
}VS Code
code --add-mcp '{"name":"ledger","type":"http","url":"https://rackrates.dev/mcp"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
11 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
changes_sinceEverything recorded since a date, for a model whose knowledge ends at a cutoff: price changes, new items, removals and retirements, newest first, each with its UTC date, the previous good snapshot, the source URL and a permanent link to the item. counts are for the whole period (not just the page); gaps names the sources that are stopped now, with the day they stopped (never filled in; outages that recovered are not recorded); record_begins says how far back the record goes. summary=true returns the largest percent moves per category (at most 40 entries) in one answer, ordered by size of the move, not by price. Paging: pass next_cursor back as cursor. Entries carry recorded values only, never a current price. Returns an error object for a bad date or filter. Same data as GET /v1/changes-since. Use this one to page through every entry or to filter by category and kind (price_change, new_item, removed_or_stopped, retirement); for a first look at what changed since your cutoff, with counts, scope llm/gpu/vps and the gaps, call what_changed_since instead. | No | Yes | Yes | No |
cheapest_for_specCheapest active SKUs meeting a minimum spec, ranked by list price only (no sponsorship, no affiliate weighting), excl. VAT (VAT-inclusive plans are ranked after removing their stated VAT rate; rank.vat_basis says so). gpu and vps default to commitment=on-demand: spot, reserved, committed, dynamic and community-cloud prices are left out unless commitment says otherwise. category vps|gpu|llm; vcpu, ram_gb, disk_gb minimums; gpu model substring (e.g. H100; with a memory size such as A100-80GB the card must state exactly that memory); region 'eu' for EU-deployable; currency USD|EUR for the ranking. Each row carries verified_at, stale and source_url. coverage_gaps names the providers not read yet (for vps: those still named in the answer), so a floor is never mistaken for the whole market. | No | Yes | Yes | No |
estimate_costItemised cost of a usage profile at the SKU's current list price: tokens (input/output/cached) for LLM SKUs, hours/months for instances. Returns line items with the rates used, native, USD and EUR totals, verified_at and source_url. Pure arithmetic on stored prices; excl. VAT unless the result says otherwise. | No | Yes | Yes | No |
get_historyPrice change points of a SKU over the last N days (default 90): each row is when a price started to hold, with USD/EUR and the FX rate used. Rows are change points, not daily samples. Returns an error object for an unknown id. | No | Yes | Yes | No |
get_indexA named daily index series (e.g. eu-vps-floor-2c4g, h100-list-median, frontier-input-floor) with its latest value, the number of constituents and the constituents themselves, so the value can be recomputed. Omit series to list all series with their latest values. | No | Yes | Yes | No |
get_priceCurrent list price of one SKU (id like vps/ovhcloud/vps-2027-model2 or llm/official/anthropic/claude-sonnet-5-5) with all secondary prices, USD/EUR equivalents, spec, source URL, verified_at, a stale flag that is true when the source's latest fetch failed (the price shown is then the last verified one), other listings of the same model, and headline_commit where the provider headlines a commitment price (a labelled secondary price; the primary price has no commitment). Returns an error object for an unknown id. | No | Yes | Yes | No |
list_changesDated price changes, new SKUs, delistings and spec changes, newest first. Each row says when the change was first seen and the previous good snapshot it is measured against, plus the source id. Filter by since (ISO date), kind, category and provider. | No | Yes | Yes | No |
search_skusFind VPS plans, GPU instances or LLM models by name/id substring, category (vps|gpu|llm) and provider. Active SKUs on the provider's public price page or product API by default (listing filter). Returns each match's current list price, listing_status, unit and currency, verified_at, stale flag and source_url. Read-only; reads the ledger's own daily archive, nothing is fetched live. | No | Yes | Yes | No |
stack_quoteOne call, the best current answer for a whole stack: a list of items (kind vps: vcpu, ram_gb, disk_gb, region, term, currency, count; kind gpu: gpu, count, hours_per_month, region, gpus_per_instance; kind llm or inference: model, input_mtok, output_mtok, count). Per item the 5 cheapest offers with a verified price (the free ordering: price only, nothing for money), the monthly cost for your count and usage (a stated unit price times your quantities, nothing estimated), verified_at, source_url and a scope line; an item with no fresh match says so. Totals per currency, never converted. Same answer as POST /v1/quote. Free: 3 quotes a day per address; beyond that 1 credit per quote on an API key (see /pricing). Reads prices, and records the free quote or credit it uses (so it is not read-only). Pass an idempotency_key to retry without a second charge. Returns an error object (HTTP 402 body) when out of credits. | No | No | No | No |
vps_plansVPS plans as /prices/vps/plans and GET /v1/vps/plans return them: the very same function, so the answers cannot differ for the same filters. Every row is a plan with its verified list price a month (excl. VAT) for the chosen contract term, all price points the provider states, buying facts (IPv4, traffic, disk and vCPU type; null = not stated), region (region_stated=false when the source names none), verified_at and source_url. Only plans with a price verified in the last 3 days carry a price; the others are listed apart in not_verified without one. Sorted by price (or per GB RAM, per vCPU); nothing is ranked for money. Each plan has a detail_url with its facts sheet. Answer pages for common searches: /prices/vps/cheapest. | No | Yes | Yes | No |
what_changed_sinceCall this when a user asks about current prices, models or retirements and your knowledge may be out of date: give the date your knowledge ends (YYYY-MM-DD) and get everything recorded since, grouped: new models and plans, price changes (old to new, percent, date first seen, source URL), retirements a provider's own lifecycle page dates (effective, and scheduled ones still ahead), and removed plans. kind=llm (LLM API models and inference hosts), gpu, vps or all. counts are for the whole period; each group lists at most `limit` entries and, when cut, says so and links the full CSV; summary is a one-line answer. gaps names the days with no data and the sources that are stopped now (never filled in); record_begins and notice say how far back the record goes. Entries carry recorded values only, never a current price: use search_skus or get_price for today's price. Returns an error object for a bad or future date. Retirements come from Azure VM and AWS Bedrock lifecycle pages only (other providers are not parsed). Same answer as GET /v1/since and the page /prices/since/<date>. To page through every entry or filter by category use changes_since. Robots.txt changes of AI crawlers are a separate dataset (related.robots_txt_policy_changes, tool crawlers_changes). | No | Yes | Yes | No |
Details
- Registry status
- Active
- Published
- Oct 23, 2026
- Updated
- Oct 23, 2026
- Repository
- Not given
- Categories (suggested)
- Invoicing and accountingE-commerceSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared