MCP server for the Spot.io API supporting AWS and Azure Ocean clusters
mcp-server-spotinst
MCP server for the Spot.io (Spotinst) API. Supports both AWS and Azure Ocean clusters with multi-account access.
Tools (23)
Cross-Account
| Tool | Description |
|---|---|
list_accounts |
List all Spotinst accounts accessible with the current token |
list_all_clusters |
List ALL clusters across ALL accounts and clouds (AWS + Azure) |
AWS Ocean
| Tool | Description |
|---|---|
list_clusters |
List AWS Ocean K8s clusters |
get_cluster |
Get AWS Ocean cluster details |
list_vngs |
List AWS Virtual Node Groups (launch specs) |
get_vng |
Get AWS VNG details |
list_elastigroups |
List all Elastigroups |
get_elastigroup |
Get Elastigroup details |
get_allowed_instance_types |
Get allowed EC2 instance types |
get_right_sizing |
Get right-sizing resource suggestions (AWS only) |
Azure Ocean
| Tool | Description |
|---|---|
list_clusters_azure |
List Azure Ocean clusters |
get_cluster_azure |
Get Azure Ocean cluster details |
list_vngs_azure |
List Azure Virtual Node Groups |
get_vng_azure |
Get Azure VNG details |
Both Clouds (pass `cloud="azure"` for Azure)
| Tool | Description |
|---|---|
get_cluster_nodes |
List nodes in an Ocean cluster |
get_cluster_costs |
Get aggregated cost breakdown by namespace or resource |
list_rolls |
List deployment rolls |
get_roll |
Get roll details |
get_cluster_log |
Get scaling and activity log events |
Write Operations (require `confirm=true`)
| Tool | Description |
|---|---|
initiate_roll |
Rolling restart of nodes in an Ocean cluster |
detach_instances |
Detach and optionally terminate instances from an AWS Ocean cluster |
update_vng |
Update an AWS VNG configuration |
update_vng_azure |
Update an Azure VNG configuration |
All tools accept an optional account_id parameter to query any account.
Setup
Environment Variables
export SPOTINST_TOKEN="your-spotinst-api-token"
export SPOTINST_ACCOUNT_ID="act-xxxxxxxx"
Install with pip
pip install mcp-server-spotinst
Install with uvx (no install needed)
uvx mcp-server-spotinst
Claude Code Config
Add to ~/.mcp.json:
{
"mcpServers": {
"spotinst": {
"command": "uvx",
"args": ["mcp-server-spotinst"],
"env": {
"SPOTINST_TOKEN": "your-token",
"SPOTINST_ACCOUNT_ID": "act-xxxxxxxx"
}
}
}
}
Run Standalone
mcp-server-spotinst
Multi-Account Usage
Your personal API token can access multiple Spotinst accounts. Use list_accounts to see all available accounts, then pass account_id to any tool:
list_clusters(account_id="act-be5e7ffe")
get_cluster_nodes("o-390ef886", account_id="act-9785011e", cloud="azure")
Or use list_all_clusters for a single-call inventory across everything.
API Reference
Uses the Spot.io REST API at https://api.spotinst.io.
Tools (23)
list_accountsList all Spotinst accounts accessible with the current tokenlist_all_clustersList ALL clusters across ALL accounts and clouds (AWS + Azure)list_clustersList AWS Ocean K8s clustersget_clusterGet AWS Ocean cluster detailslist_vngsList AWS Virtual Node Groups (launch specs)get_vngGet AWS VNG detailslist_elastigroupsList all Elastigroupsget_elastigroupGet Elastigroup detailsget_allowed_instance_typesGet allowed EC2 instance typesget_right_sizingGet right-sizing resource suggestions (AWS only)list_clusters_azureList Azure Ocean clustersget_cluster_azureGet Azure Ocean cluster detailslist_vngs_azureList Azure Virtual Node Groupsget_vng_azureGet Azure VNG detailsget_cluster_nodesList nodes in an Ocean clusterget_cluster_costsGet aggregated cost breakdown by namespace or resourcelist_rollsList deployment rollsget_rollGet roll detailsget_cluster_logGet scaling and activity log eventsinitiate_rollRolling restart of nodes in an Ocean clusterdetach_instancesDetach and optionally terminate instances from an AWS Ocean clusterupdate_vngUpdate an AWS VNG configurationupdate_vng_azureUpdate an Azure VNG configurationEnvironment Variables
SPOTINST_TOKENrequiredYour Spotinst API tokenSPOTINST_ACCOUNT_IDDefault Spotinst account IDConfiguration
{"mcpServers": {"spotinst": {"command": "uvx", "args": ["mcp-server-spotinst"], "env": {"SPOTINST_TOKEN": "your-token", "SPOTINST_ACCOUNT_ID": "act-xxxxxxxx"}}}}