All Cloudflare · serverless · zero-ops

Every VPS price,
in one table

vpsradar continuously collects specs and prices from mainstream and budget VPS providers, normalizes them to one schema, ranks by value, and hands them to your AI agent as MCP tools. Ask once, get the best deal.

Connect to Claude vpsradar.openkits.dev/mcp[ Copy ]
vps.search$ by value · live
Provider / PlanvCPURAMTrafficPrice (USD)Value
linode Nanode 1GBbest
gb-lon
11 GB1 TB$5▰▰▰▰▱
digitalocean s-1vcpu-1gb
ams3
11 GB1 TB$6▰▰▰▱▱
digitalocean s-1vcpu-2gb
ams3
12 GB2 TB$12▰▰▰▱▱
linode Linode 2GB
gb-lon
12 GB2 TB$12▰▰▰▱▱
digitalocean s-2vcpu-4gb
ams3
24 GB4 TB$24▰▰▰▱▱
linode Linode 4GB
gb-lon
24 GB4 TB$24▰▰▰▱▱
Why picking a VPS is painful

Plenty of choices — no way to compare them.

01

Specs don't line up

Dedicated vs shared vCPU, traffic quota vs burst, price with or without VAT — every provider words it differently, impossible to compare by eye.

02

Providers are scattered

Big providers have APIs; the budget LET scene is all WHMCS sites. The tier most worth deal-hunting is exactly the hardest to get structured data from.

03

No price-change alerts

Roundup articles are stale snapshots; a provider's price hike you'll only notice on the renewal bill.

Three-step pipeline

Collect → Normalize → Hand to your agent

No long-running process. A Cron trigger fires a Workflow; durable orchestration with per-source isolation and retry.

STEP 01 · COLLECT

Scheduled collection

A Cron trigger starts a Workflow, one step per provider: tier-1 hits official pricing APIs, the budget tier reads manual YAML — fully isolated.

Cron TriggersWorkflows
STEP 02 · NORMALIZE

Normalize & store

Convert to USD/month, keep original currency and tax basis, idempotent upserts into D1; append a row only on price change — an event stream.

D1 (SQLite)KV FXR2 archive
STEP 03 · SERVE

Expose over MCP

A standalone remote MCP on Workers, Streamable HTTP, clients like Claude connect directly. Search, compare, score, alerts — all tool calls.

createMcpHandlerHono
Capabilities

One radar, five jobs.

$

Live price collection

Tier-1 official APIs (Hetzner / DO / Vultr / Linode…) refreshed every 6–12h, with data-freshness stamps.

Cross-provider comparison

Aligns vCPU, RAM, traffic, disk type and taxed price to one schema; same-spec plans flattened in one shot.

Value scoring

Benchmark/$, RAM/$, traffic/$ weighted, weights adjustable, with explainable reasoning.

!

Hike & deal alerts

Price changes or budget-tier specials matching your criteria, pushed to Feishu / Telegram.

MCP-native

Five tools — vps.search / compare / history / score / alerts — usable in natural language.

All-Cloudflare, zero-ops

Workers + D1 + Workflows, no VPS, no self-managed DB, single-user on the free tier.

Conversational selection · example

Ask once, get the answer.

You → Claude
Find me an 8GB-RAM VPS with at least 4TB traffic, under $10/mo, with a US region — ranked by value.
Claude · vps.search

1 plan matches, 3 more are over budget. The best value is:

Hetzner CX32 · Ashburn — $7.59/mo4 vCPU / 8GB / 20TB

Why: in this RAM tier its traffic quota is 4× the others and the unit price is under a sixth of DO's — top value score.

Direct, no middle layer

Just paste the endpoint into your client

  • 01 The remote MCP lives at *.workers.dev/mcp, Streamable HTTP.
  • 02 Clients that support remote MCP (Claude Desktop / Code…) connect directly, no local proxy.
  • 03 All read-only tools, public endpoint in v1; add a layer of OAuth when you need to lock it down.
Provider coverage

Pragmatic, tiered onboarding.

Tier 1
Official API
HetznerDigitalOceanVultrLinode / AkamaiAzureAWS LightsailGCPOVHcloudScaleway
Tier 2
Manual / scrape
RackNerdBuyVMBudget-tier YAML…

Solid = planned official API · dashed = later. Price fields follow each provider's current docs; parsing is defensive.

Stop opening a tab per provider.

Let the radar watch every price, and let your agent make the call.

Connect to Claude vpsradar.openkits.dev/mcp[ Copy ]