Spotinfo
FreeNot checkedCLI for exploring Spot instance pricing across AWS, GCP and Azure. Inspect Spot instance types, savings, price, and AWS interruption frequency — offline, from e
About
CLI for exploring Spot instance pricing across AWS, GCP and Azure. Inspect Spot instance types, savings, price, and AWS interruption frequency — offline, from embedded data.
README
CI Docker Go Report Card MCP Compatible
spotinfo
Pick a Spot machine on AWS, GCP or Azure from one command line. No credentials. Every price
ships inside the binary, so --offline answers in about a tenth of a second.
The problem
Spot capacity is far cheaper than On-Demand — between 40% and 85% off in the snapshots that ship with this tool. Finding the right machine does not scale by hand:
- Each cloud publishes prices in a different place, in a different shape, on a different schedule. AWS has a JSON feed and an interruption Advisor. GCP has server-rendered HTML pages. Azure has a REST API and a separate documentation site for vCPU and memory.
- The consoles rank by price. They do not rank by "cheapest machine with at least 4 vCPU and 16 GiB that my workload can survive losing".
- A price page has no memory of yesterday, so a script that reads one is a scraper you now own.
The result is that most teams pick one instance family, hard-code it, and stop looking.
What spotinfo does
One command ranks real machines against a real requirement, and says where the number came from.
$ spotinfo recommend --cloud azure --architecture arm64 --min-vcpu 4 --min-memory-gib 16
RANK CLOUD REGION MACHINE ARCHITECTURE vCPU MEMORY GiB USD/HOUR SAVINGS RISK WHY
1 azure centralindia Standard_D4ps_v6 arm64 4 16.0 0.017076 81% unavailable ARCHITECTURE_MATCH,COST_POLICY,KNOWN_POSITIVE_PRICE,RESOURCE_MINIMUMS_MET
2 azure centralindia Standard_D4ps_v5 arm64 4 16.0 0.018665 81% unavailable ARCHITECTURE_MATCH,COST_POLICY,KNOWN_POSITIVE_PRICE,RESOURCE_MINIMUMS_MET
3 azure centralindia Standard_D4pds_v5 arm64 4 16.0 0.022361 81% unavailable ARCHITECTURE_MATCH,COST_POLICY,KNOWN_POSITIVE_PRICE,RESOURCE_MINIMUMS_MET
Four properties make that output worth trusting:
It works with no credentials. Price snapshots ship inside the binary, and a weekly job
refreshes them through a reviewed pull request. AWS and Azure additionally read live feeds
when they can reach them — AWS on every run, Azure when you name one or two regions — and
fall back to the snapshot when they cannot. --offline skips every price and risk request;
only --with-score still reaches a cloud, because no snapshot carries a placement figure.
It says what it does not know. GCP and Azure publish no redistributable interruption
data, so every candidate reports RISK: unavailable. It is never a zero and never a low
bucket. A cloud that measures nothing must not outrank a cloud that measures honestly. On
GCP, --live-risk fetches a per-project preemption rate for the ranked page — Google
measures it differently from AWS, so it is shown and never filtered on.
It refuses questions it cannot answer, and says why. --workload web caps interruption
frequency at an AWS Spot Advisor bucket boundary. Ask for it on a cloud that measures
something else and the command stops before it reads a price, naming the vendor limit rather
than a feature nobody built:
$ spotinfo recommend --cloud gcp --workload web --architecture x86_64 --min-vcpu 4 --min-memory-gib 16
spotinfo: gcp: unsupported capability: risk: the web workload caps interruption frequency at 5%, an AWS Spot Advisor bucket boundary, and gcp publishes no figure measured that way; workload cost applies no ceiling and answers on every cloud
Every answer carries its source. The JSON report names each source URL and the SHA-256 of the document that was read, so a reader can fetch it again and compare.
Install
# macOS with Homebrew
brew install alexei-led/tap/spotinfo
# Linux and Windows
curl -L https://github.com/alexei-led/spotinfo/releases/latest/download/spotinfo_linux_amd64.tar.gz | tar xz
# Docker
docker pull ghcr.io/alexei-led/spotinfo:latest
macOS, Linux and Windows, on AMD64 and ARM64. Full instructions: Installation.
Use it
# Cheapest Arm machine with 4 vCPU and 16 GiB, on each cloud
spotinfo recommend --cloud aws --architecture arm64 --min-vcpu 4 --min-memory-gib 16
spotinfo recommend --cloud gcp --architecture arm64 --min-vcpu 4 --min-memory-gib 16
spotinfo recommend --cloud azure --architecture arm64 --min-vcpu 4 --min-memory-gib 16
# A web tier that must survive interruption: AWS only, interruption capped at 5%
spotinfo recommend --architecture x86_64 --min-vcpu 2 --min-memory-gib 8 --workload web
# The five cheapest AWS regions for a machine. Every region is the default
spotinfo recommend --architecture x86_64 --min-vcpu 4 --min-memory-gib 16 --top 5
# A versioned JSON report for a pipeline
spotinfo recommend --cloud azure --architecture arm64 --min-vcpu 4 --min-memory-gib 16 \
--output json
# Browse what a cloud publishes, with prices and a risk column
spotinfo list --machine "m5\." --region us-east-1
# Add AWS placement scores. This one needs AWS credentials
spotinfo list --machine "m5\." --region us-east-1 --with-score
Two commands, on purpose, and both answer on all three clouds. spotinfo list requires
nothing and answers "what is there". spotinfo recommend requires an architecture and a size
floor and answers "what should I run". They share a vocabulary, not a purpose. See
Quick start and the Usage guide.
Cloud coverage
| AWS | GCP | Azure | |
|---|---|---|---|
spotinfo list |
yes | yes | yes |
spotinfo recommend |
yes | yes | yes |
| Interruption risk | published | unavailable, or opt-in live |
unavailable |
| Workloads | cost, web, ci, batch | cost | cost |
| Operating systems | linux, windows | linux | linux, windows |
| Architectures | x86_64, arm64 | x86_64, arm64 | x86_64, arm64 |
| Credentials | optional | optional | never used |
Region lists, machine counts and the reasoning behind each limit: Cloud coverage.
MCP server
spotinfo is a Model Context Protocol server, so an assistant can ask these questions directly.
{
"mcpServers": {
"spotinfo": { "command": "spotinfo", "args": ["--mcp"] }
}
}
Ask: "Cheapest arm64 Azure Spot VM with 4 vCPUs and 16 GiB", or "Compare m5.large spot
prices across US regions". Three tools answer: list_spot_machines,
recommend_spot_machines and list_cloud_regions.
Setup: MCP server and Claude Desktop.
Documentation
| Document | What is in it |
|---|---|
| Quick start | The first five minutes |
| Installation | Every install method, and how to check one |
| Usage guide | Every flag, every output format |
| Cloud coverage | What each cloud serves, and what it refuses |
| Examples | Pipelines, Terraform, CI, cost monitors |
| MCP server | Tools, arguments, assistant setup |
| API reference | The spotinfo.list/v1 and spotinfo.recommend/v3 contracts |
| AWS placement scores | What a score means, and does not |
| Data sources | Every feed, snapshot, cache and refresh rule |
| Troubleshooting | Errors, causes, fixes |
| Migrating to v2 | Every renamed flag, tool, schema and field |
| Multi-cloud parity | What GCP and Azure cannot do yet, and why |
AWS credentials
Credentials are optional. Without them, spotinfo answers from the AWS feeds and the embedded snapshot. With them, two more features work:
| Feature | Permission |
|---|---|
| Live price for machines the static feed prices at $0 | ec2:DescribeSpotPriceHistory |
Placement scores (--with-score) |
ec2:GetSpotPlacementScores |
Credentials load through the standard AWS SDK chain. The chain is probed once per run, so a machine without credentials skips both calls instead of waiting for each to time out.
GCP credentials are optional too. Application Default Credentials and a project — from
--gcp-project or GOOGLE_CLOUD_PROJECT — are needed for --live-risk and for
--with-score, and a Cloud Billing Catalog API key in --gcp-billing-key prices GCP regions
beyond the committed snapshot. Azure needs no credentials at all. See
Cloud coverage.
Development
Go 1.26+, make, golangci-lint.
make build # hermetic: embeds the committed data, downloads nothing
make test # unit and end-to-end tests, no credentials, no network
make lint
make verify-data # manifests, source contracts, parser contracts, coverage floors
Contributions are welcome. Read CLAUDE.md for the repository rules. Make sure that every test passes before you open a pull request.
License
Apache 2.0. See LICENSE.
Installing Spotinfo
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/alexei-led/spotinfoFAQ
Is Spotinfo MCP free?
Yes, Spotinfo MCP is free — one-click install via Unyly at no cost.
Does Spotinfo need an API key?
No, Spotinfo runs without API keys or environment variables.
Is Spotinfo hosted or self-hosted?
Self-hosted: the server runs locally on your machine via the install command above.
How do I install Spotinfo in Claude Desktop, Claude Code or Cursor?
Open Spotinfo on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.
Related MCPs
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
by duxiaohuiSupabase
Database, auth and storage
by SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Spotinfo with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
