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

A
Description quality
93%
Schema completeness
95%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'estimate_vm_cost' description lacks action verbin estimate_vm_cost

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,464Tokens (tool definitions)
~3.3 KBTypical response size
Moderate attention impact (1.14% of 128k context)

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

npmazure-vm-pricing-mcp0.1.3stdio

Remote endpoints

https://cld2day.com/mcpstreamable-http

What it can do

Tool inventory

Tools (4)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded4 tools