StackRates VPS prices
VPS prices read daily from providers' own pricing pages and APIs: cheapest by size, place or app.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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": {
"vps-prices": {
"url": "https://stackrates.ai/mcp"
}
}
}Remote endpoints
https://stackrates.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢ask_vps_prices(question)
Answer a plain-language hosting price question ("cheapest 4 GB VPS in Germany under $10", "hetzner vs vultr", "server for a Minecraft Java server") from today’s prices.
Input Schema
{
"type": "object",
"properties": {
"question": {
"type": "string"
}
},
"required": [
"question"
]
}🟢search_vps_plans(min_ram_gb, min_vcpu, min_disk_gb, max_usd_month, min_transfer_tb, ...)
Cheapest VPS plans matching a size, budget, provider or location, cheapest first (one per provider unless exactly one provider is given).
Input Schema
{
"type": "object",
"properties": {
"min_ram_gb": {
"type": "number",
"description": "Minimum memory in GB (0.5 for 512 MB)."
},
"min_vcpu": {
"type": "number",
"description": "Minimum vCPU count."
},
"min_disk_gb": {
"type": "number",
"description": "Minimum disk in GB."
},
"max_usd_month": {
"type": "number",
"description": "Maximum monthly price in USD."
},
"min_transfer_tb": {
"type": "number",
"description": "Minimum included monthly transfer in TB."
},
"providers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Provider slugs, e.g. hetzner, digitalocean, vultr, akamai-linode, aws-lightsail, ovhcloud, contabo, netcup."
},
"location": {
"type": "string",
"description": "Country, city or region slug, e.g. usa, germany, india, frankfurt, new-york, europe, asia, austria, vienna, helsinki, zurich."
},
"no_commitment": {
"type": "boolean",
"description": "Leave out prices that need a prepaid term."
},
"unmetered": {
"type": "boolean",
"description": "Only plans with unmetered traffic."
},
"managed": {
"type": "boolean",
"description": "Managed hosting (Cloudways, Kinsta) instead of unmanaged servers."
},
"limit": {
"type": "number",
"description": "1-20, default 8."
}
}
}🟢server_for_app(app, location, max_usd_month)
The documented requirements of a self-hosted app or game server (n8n, Nextcloud AIO, Immich, Minecraft Java, Odoo, GitLab, ... 192 apps) and the cheapest plans that meet them.
Input Schema
{
"type": "object",
"properties": {
"app": {
"type": "string",
"description": "App name or slug, e.g. n8n, immich, minecraft-java, gitlab."
},
"location": {
"type": "string",
"description": "Country, city or region slug, e.g. usa, germany, india, frankfurt, new-york, europe, asia, austria, vienna, helsinki, zurich."
},
"max_usd_month": {
"type": "number",
"description": "Maximum monthly price in USD."
}
},
"required": [
"app"
]
}🟢current_vps_offers(providers, min_ram_gb, max_usd_month)
Introductory and sale prices on the providers’ own pages today, each judged on its first year against the cheapest regular plan with as much memory.
Input Schema
{
"type": "object",
"properties": {
"providers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Provider slugs, e.g. hetzner, digitalocean, vultr, akamai-linode, aws-lightsail, ovhcloud, contabo, netcup."
},
"min_ram_gb": {
"type": "number",
"description": "Minimum memory in GB (0.5 for 512 MB)."
},
"max_usd_month": {
"type": "number",
"description": "Maximum monthly price in USD."
}
}
}🟢advise_vps_choice(question, filter, term_months, country, limit)
A messy buying question in plain words ("moving WordPress and a small Postgres app off a $40 box, I am in Germany, no yearly contract") answered from today’s prices: how the question was read (editable filter), the matching plans with their cost over the term, two to four sentences on the trade-offs written only from those rows, and what the data cannot answer. Pass the previous answer’s `filter` to continue a conversation. Every number comes from the dataset; the first line says whether a small language model or the rule parser read the question.
Input Schema
{
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "The buyer’s question, up to 500 characters."
},
"filter": {
"type": "object",
"description": "The `filter` object returned by the previous advise_vps_choice call, to carry the conversation forward."
},
"term_months": {
"type": "number",
"enum": [
12,
36
],
"description": "How long the buyer plans to keep the server (default 12)."
},
"country": {
"type": "string",
"description": "Buyer’s country, ISO 3166-1 alpha-2 (DE, GB, US), used only to add VAT where the price is ex VAT."
},
"limit": {
"type": "number",
"description": "1-20, default 8."
}
},
"required": [
"question"
]
}Community
Evidence