DEV Community

chovy
chovy

Posted on Originally published at dev.profullstack.com

r4ck.dev is live: one search over 1,601 server offers, and the same query runs from a browser, a curl, the CLI or an MCP tool

r4ck.dev is live: one search over 1,601 server offers, and the same query runs from a browser, a curl, the CLI or an MCP tool

Finding a server means opening a dozen pricing pages and building a spreadsheet. An agent doing the same job scrapes those pages and builds a worse spreadsheet. r4ck.dev replaces both with one search over every VPS, cloud instance, bare metal box, GPU node, PaaS and shared plan for sale: 1,601 offers from 206 providers in 27 countries as of today.

Type a sentence. "2 vcpu 4gb under $10 in germany" comes back as nine rows, the cheapest an OVHcloud VPS at about $5.16 a month. The reply also says how it read the sentence (under $10, 2 vcpu, 4gb, in germany), so an agent that got an odd answer can correct one field instead of rephrasing the whole thing.

Where the rows come from

The data is the hosting collection on nichedb.dev: the catalogues Vultr, Linode, Scaleway and OVHcloud publish, plans read from WHMCS storefronts, the FindHost register of web hosts, and LowEndBox deals. r4ck mirrors it into its own Postgres, pulls the recent changes every 15 minutes, walks the whole collection once a day, and writes a price point every time a plan's price moves. Every offer has a history.

Prices are stored as billed and as an estimated USD a month from daily ECB rates, and the estimate is labelled as one. A plan with no billing term gets no estimate and sorts last. It never sorts as free. A null spec means the provider did not say, not zero.

One vocabulary, four surfaces

The page, the JSON API, the CLI and the MCP tools take the same parameters: q, kind, provider, country, min_vcpu, max_price, gpu_model, sort and the rest. A URL copied from the address bar runs as a curl. Every result page carries an "as data" panel with the same query as JSON, CSV, curl, r4ck search flags and an MCP tools/call, so whatever a person is looking at can be handed to an agent as is.

npm i -g @profullstack/r4ck
r4ck search "8 cores 32gb nvme in eu under $60" --json
curl -s 'https://r4ck.dev/api/v1/cheapest?min_vcpu=2&min_ram=4'
claude mcp add r4ck -- r4ck mcp
Enter fullscreen mode Exit fullscreen mode

Facet counts are computed under the current filters. Each count is how many rows remain if you pick that value next, which makes the page a drill-down rather than a form. Providers carry their automation too. has=api,cli keeps the 61 a deploy step can drive without a browser, and has=mcp keeps the 12 that already run an MCP server.

Access

Anonymous reads get 300 API requests an hour and 50 rows a page. A free key, made after signing in with an emailed link or a passkey, gets 6,000 an hour, 200 rows, CSV export and saved searches. Past that, an x402 pass costs one dollar a day and is not metered at all while it lasts. Going over an allowance answers 402 with the offer in the body, not a bare 429, because the caller has just shown it wants more. Training crawlers pay the same pass on every page. Search and retrieval crawlers read free.

Everything else

It is an installable PWA, a documented API (docs, llms.txt), an MCP server at r4ck.dev/mcp with a descriptor at /.well-known/openmcp.json, a zero-dependency CLI on npm, and a skill.md that tells an agent how to use the site well. Source is on GitHub under MIT. Provider descriptions from the FindHost register, findhost.app, are CC BY 4.0.

Try it at r4ck.dev.

Top comments (0)