azure-vm-pricing
Azure VM sizes and USD list prices in 24 regions, updated weekly. Find, price and compare VMs.
Should I use this
Quality & Safety
Findings (1)
- LOWin estimate_vm_cost
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": {
"azure-vm-pricing": {
"command": "npx",
"args": [
"azure-vm-pricing-mcp"
]
}
}
}Runnable packages
0.1.3stdioRemote endpoints
https://cld2day.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢find_vm_sizes(min_vcpus, min_memory_gib, workload, region, os, ...)
Find the cheapest Azure VM sizes that meet vCPU, memory and workload requirements, with monthly USD list prices. Burstable (B-series) and confidential sizes are only included when that workload is requested.
Input Schema
{
"type": "object",
"properties": {
"min_vcpus": {
"type": "integer",
"minimum": 0,
"description": "Minimum vCPUs."
},
"min_memory_gib": {
"type": "number",
"minimum": 0,
"description": "Minimum memory in GiB."
},
"workload": {
"type": "string",
"enum": [
"general",
"compute",
"memory",
"storage",
"ai",
"gpu",
"hpc",
"confidential",
"burstable"
],
"description": "Workload family. ai = NVIDIA GPUs only (CUDA, PyTorch, vLLM); gpu = any GPU incl. AMD. Omit for any (excludes burstable and confidential)."
},
"region": {
"type": "string",
"description": "Azure region, e.g. westeurope or \"West Europe\". Omit to use each size's cheapest region."
},
"os": {
"type": "string",
"enum": [
"linux",
"windows"
],
"description": "Operating system for pay-as-you-go prices. Default linux."
},
"arch": {
"type": "string",
"enum": [
"x64",
"arm64"
],
"description": "CPU architecture."
},
"need_temp_disk": {
"type": "boolean",
"description": "Only sizes with a local temporary disk."
},
"min_gpus": {
"type": "integer",
"minimum": 1,
"description": "Minimum number of whole GPUs (partitioned GPUs such as 1/6 A10 do not count)."
},
"sort": {
"type": "string",
"enum": [
"price",
"fit"
],
"description": "price = cheapest first (default); fit = least spare vCPU/memory first."
},
"max_results": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Default 10."
}
}
}Output Schema
{
"type": "object",
"properties": {
"matchCount": {
"type": "integer"
},
"pricedIn": {
"type": "string"
},
"os": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"properties": {
"size": {
"type": "string"
},
"vcpus": {
"type": "integer"
},
"memoryGiB": {
"type": "number"
},
"region": {
"type": "string"
},
"regionName": {
"type": "string"
},
"payAsYouGoHourly": {
"type": "number"
},
"payAsYouGoMonthly": {
"type": "number"
},
"reserved3yMonthly": {
"type": [
"number",
"null"
]
},
"url": {
"type": "string"
},
"gpu": {
"type": "object",
"description": "Present for GPU sizes: model, vendor, count, share (e.g. 1/6), cudaAiStack, label."
}
}
}
},
"dataSource": {
"type": "object",
"description": "pricesAsOf (ISO date), currency, source, dataset, stale (true if the weekly refresh is late)."
}
},
"required": [
"matchCount",
"results",
"dataSource"
]
}🟢get_vm_size(size, region)
Specs of one Azure VM size and its hourly USD prices per region (Linux, Windows, 1/3-year reservations, 1/3-year savings plans), cheapest region first.
Input Schema
{
"type": "object",
"properties": {
"size": {
"type": "string",
"description": "VM size, e.g. Standard_D4s_v5 or D4s v5."
},
"region": {
"type": "string",
"description": "Limit prices to one region."
}
},
"required": [
"size"
]
}Output Schema
{
"type": "object",
"properties": {
"size": {
"type": "string"
},
"category": {
"type": "string"
},
"vcpus": {
"type": "integer"
},
"memoryGiB": {
"type": "number"
},
"prices": {
"type": "array",
"description": "Hourly USD prices per region, cheapest first.",
"items": {
"type": "object"
}
},
"url": {
"type": "string"
},
"dataSource": {
"type": "object",
"description": "pricesAsOf (ISO date), currency, source, dataset, stale (true if the weekly refresh is late)."
}
},
"required": [
"size",
"prices",
"dataSource"
]
}🟢estimate_vm_cost(sizes, region, os, hours_per_month, instances)
Monthly and yearly cost of one or more Azure VM sizes for pay as you go, reservations and savings plans, with the break-even hours per month for each commitment. Use it to compare sizes or regions.
Input Schema
{
"type": "object",
"properties": {
"sizes": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 5,
"description": "One to five VM sizes to price, e.g. [\"Standard_D4s_v5\", \"Standard_D4as_v6\"]."
},
"region": {
"type": "string",
"description": "Azure region, e.g. westeurope or \"West Europe\". Omit to use each size's cheapest region."
},
"os": {
"type": "string",
"enum": [
"linux",
"windows"
],
"description": "Operating system for pay-as-you-go prices. Default linux."
},
"hours_per_month": {
"type": "number",
"minimum": 1,
"maximum": 744,
"description": "Runtime hours per month. Default 730 (always on)."
},
"instances": {
"type": "integer",
"minimum": 1,
"maximum": 10000,
"description": "Number of VMs. Default 1."
}
},
"required": [
"sizes"
]
}Output Schema
{
"type": "object",
"properties": {
"size": {
"type": "string"
},
"region": {
"type": "string"
},
"hoursPerMonth": {
"type": "number"
},
"options": {
"type": "array",
"items": {
"type": "object",
"properties": {
"option": {
"type": "string"
},
"monthly": {
"type": "number"
},
"yearly": {
"type": "number"
},
"breakEvenHoursPerMonth": {
"type": [
"integer",
"null"
]
}
}
}
},
"cheapest": {
"type": "string"
},
"estimates": {
"type": "array",
"items": {
"type": "object"
}
},
"dataSource": {
"type": "object",
"description": "pricesAsOf (ISO date), currency, source, dataset, stale (true if the weekly refresh is late)."
}
},
"required": [
"dataSource"
],
"description": "One estimate (size, options, cheapest) or, for several sizes, an estimates array."
}🟢get_price_changes(weeks)
Weekly report of new Azure VM sizes, retired sizes and the biggest list-price moves across 24 regions.
Input Schema
{
"type": "object",
"properties": {
"weeks": {
"type": "integer",
"minimum": 1,
"maximum": 12,
"description": "How many weekly reports, newest first. Default 1."
}
}
}Output Schema
{
"type": "object",
"properties": {
"reports": {
"type": "array",
"items": {
"type": "object"
}
},
"message": {
"type": "string"
},
"dataSource": {
"type": "object",
"description": "pricesAsOf (ISO date), currency, source, dataset, stale (true if the weekly refresh is late)."
}
},
"required": [
"dataSource"
]
}Community
Evidence