Spotinst MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPOTINST_TOKEN | Yes | Your Spotinst API token | |
| SPOTINST_ACCOUNT_ID | Yes | Your Spotinst account ID (e.g., act-xxxxxxxx) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| probe_token_capabilitiesA | Probe which Spot.io API endpoints the current token can access. Call this first to understand what tools will work with your token. Returns a report of accessible vs denied endpoints. |
| list_accountsA | List all Spotinst accounts accessible with the current token. |
| list_all_clustersA | List ALL Ocean clusters across ALL accounts and cloud providers (AWS + Azure). Scans every account in parallel and returns a unified list with account and cloud info. Returns compact summaries by default (id, name, region, account, capacity). Set verbose=true for full cluster configs (networking, instance types, autoscaler). Args: verbose: Return full configurations instead of compact summaries (default: false). Use when analyzing cluster settings, troubleshooting, or comparing configs. |
| list_clustersA | List AWS Ocean Kubernetes clusters in a Spotinst account. Returns compact summaries by default (id, name, region, capacity). Set verbose=true for full cluster configs (networking, instance types, autoscaler). Args: account_id: Optional account ID to query (e.g. act-be5e7ffe). Defaults to SPOTINST_ACCOUNT_ID env var. verbose: Return full configurations instead of compact summaries (default: false). Use when analyzing cluster settings, troubleshooting, or comparing configs. |
| get_clusterA | Get details of a specific AWS Ocean cluster. Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. |
| list_clusters_azureA | List Azure Ocean clusters in a Spotinst account. Returns compact summaries by default (id, name, capacity). Set verbose=true for full cluster configs (networking, VM sizes, autoscaler). Args: account_id: Account ID for an Azure account (e.g. act-9785011e). verbose: Return full configurations instead of compact summaries (default: false). Use when analyzing cluster settings, troubleshooting, or comparing configs. |
| get_cluster_azureA | Get details of a specific Azure Ocean cluster. Args: cluster_id: The Ocean cluster ID (e.g. o-390ef886) account_id: Account ID for an Azure account. |
| list_vngsA | List AWS Ocean Virtual Node Groups (VNGs / launch specs). Returns compact summaries by default (id, name, oceanId). Set verbose=true for full VNG configs (AMI, subnets, resource limits, labels). Args: ocean_id: Optional Ocean cluster ID to filter by (e.g. o-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. verbose: Return full configurations instead of compact summaries (default: false). Use when analyzing VNG settings, troubleshooting, or comparing configs. |
| get_vngA | Get details of a specific AWS VNG (launch spec). Args: vng_id: The VNG/launch spec ID (e.g. ols-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. |
| list_vngs_azureA | List Azure Ocean Virtual Node Groups. Returns compact summaries by default (id, name, oceanId). Set verbose=true for full VNG configs (VM sizes, labels, resource limits). Args: ocean_id: Optional Ocean cluster ID to filter by (e.g. o-390ef886) account_id: Account ID for an Azure account. verbose: Return full configurations instead of compact summaries (default: false). Use when analyzing VNG settings, troubleshooting, or comparing configs. |
| get_vng_azureA | Get details of a specific Azure VNG. Args: vng_id: The VNG ID (e.g. vng-14e08b61) account_id: Account ID for an Azure account. |
| list_elastigroupsA | List all Elastigroups in a Spotinst account. Returns compact summaries by default (id, name, region, capacity). Set verbose=true for full Elastigroup configs (compute, networking, scaling). Args: account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. verbose: Return full configurations instead of compact summaries (default: false). Use when analyzing Elastigroup settings, troubleshooting, or comparing configs. |
| get_elastigroupA | Get details of a specific Elastigroup. Args: group_id: The Elastigroup ID (e.g. sig-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. |
| get_cluster_nodesA | List all nodes in an Ocean cluster (AWS or Azure). Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) limit: Max items to return (default: 50). Set limit=0 for all results. |
| get_cluster_costsA | Get aggregated cost breakdown for an Ocean cluster (AWS or Azure). Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) start_time: Start time in ISO 8601 format (e.g. 2026-03-01T00:00:00Z) end_time: End time in ISO 8601 format (e.g. 2026-03-20T00:00:00Z) group_by: Group costs by: namespace (default: namespace). Only 'namespace' is currently supported by the API. account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) limit: Max namespace aggregations to return, sorted by cost descending (default: 50). Set limit=0 for all. |
| get_right_sizingA | Get right-sizing resource suggestions for workloads in an Ocean cluster (AWS or Azure).
Results are sorted by savings potential (biggest CPU delta first) and truncated to Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) namespace: Optional namespace to filter suggestions account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) limit: Max items to return, sorted by savings potential (default: 50). Set limit=0 for all results. |
| list_rollsA | List all deployment rolls for an Ocean cluster (AWS or Azure). Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) |
| get_rollA | Get details of a specific Ocean cluster roll (AWS or Azure). Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) roll_id: The roll ID (e.g. scr-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) |
| get_cluster_logA | Get scaling and activity log events for an Ocean cluster (AWS or Azure). Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) from_date: Start date in YYYY-MM-DD format (e.g. 2026-03-19) to_date: End date in YYYY-MM-DD format (e.g. 2026-03-20) severity: Filter by severity: ALL, INFO, WARN, ERROR (default: ALL) limit: Max number of log entries (default: 500) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) |
| get_allowed_instance_typesA | Get the list of allowed EC2 instance types for an AWS Ocean cluster. Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. |
| list_stateful_nodesA | List all Stateful Nodes (Managed Instances) in an AWS account. Returns compact summaries by default (id, name, region, capacity). Set verbose=true for full configs (compute, networking, persistence). Args: account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. verbose: Return full configurations instead of compact summaries (default: false). Use when analyzing node settings, troubleshooting, or comparing configs. |
| get_stateful_nodeA | Get details of a specific AWS Stateful Node (Managed Instance). Args: node_id: The Managed Instance ID (e.g. smi-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. |
| list_stateful_nodes_azureA | List all Azure Stateful Nodes in an account. Returns compact summaries by default (id, name, capacity). Set verbose=true for full configs (compute, networking, persistence). Args: account_id: Account ID for an Azure account. verbose: Return full configurations instead of compact summaries (default: false). Use when analyzing node settings, troubleshooting, or comparing configs. |
| get_stateful_node_azureB | Get details of a specific Azure Stateful Node. Args: node_id: The Azure Stateful Node ID account_id: Account ID for an Azure account. |
| get_cluster_schedulingA | Get scheduling and auto-scaler configuration for an Ocean cluster (AWS or Azure). Shows shutdown hours, scheduled tasks, and auto-scaler settings. Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) |
| get_cluster_healthA | Composite health check for an Ocean cluster. Returns node status, recent errors, and active rolls in one call. Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) |
| get_cost_trendingA | Get cost trends over multiple time periods for an Ocean cluster. Shows week-over-week or custom period cost changes. Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) periods: Number of time periods to compare (default: 4) period_days: Days per period (default: 7 for weekly) group_by: Group costs by: namespace (default: namespace). Only 'namespace' is currently supported by the API. account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) |
| get_savings_summaryA | Get a 30-day cost/savings summary for an Ocean cluster. Shows total spend, spot savings, and cost breakdown. Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) |
| filter_clusters_by_tagA | Filter Ocean clusters by tag key (and optionally tag value). Works for AWS and Azure. Returns compact summaries by default. Set verbose=true for full cluster configs. Args: tag_key: Tag key to filter by (e.g. environment, team) tag_value: Optional tag value to match (e.g. production). If empty, matches any value for the key. account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) verbose: Return full configurations instead of compact summaries (default: false). Use when analyzing cluster settings, troubleshooting, or comparing configs. |
| filter_vngs_by_tagA | Filter VNGs by tag key (and optionally tag value). Works for AWS and Azure. Returns compact summaries by default. Set verbose=true for full VNG configs. Args: tag_key: Tag key to filter by (e.g. team, workload-type) tag_value: Optional tag value to match. If empty, matches any value for the key. ocean_id: Optional Ocean cluster ID to filter by account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) verbose: Return full configurations instead of compact summaries (default: false). Use when analyzing VNG settings, troubleshooting, or comparing configs. |
| export_cluster_yamlA | Export an Ocean cluster configuration as YAML. Useful for GitOps comparison or backup. Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) |
| export_vng_yamlA | Export a VNG configuration as YAML. Useful for GitOps comparison or backup. Args: vng_id: The VNG ID (e.g. ols-abc12345 for AWS, vng-abc12345 for Azure) account_id: Optional account ID to query. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) |
| remove_instancesA | DESTRUCTIVE: Remove instances from an Ocean cluster using a named strategy. This is the RECOMMENDED tool for instance removal — it picks the right API call for you. Requires confirm=true. Strategies:
Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) instance_ids: Comma-separated instance IDs (e.g. i-abc123,i-def456) strategy: One of: drain_and_replace, replace, remove_permanently confirm: Must be true to execute. Safety guard. batch_size_percentage: For drain_and_replace only: % of nodes per batch (default: 20) account_id: Optional account ID. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws). Note: replace and remove_permanently are AWS-only. |
| initiate_rollA | DESTRUCTIVE: Initiate a rolling restart of nodes in an Ocean cluster. This will drain and replace nodes in batches. Requires confirm=true. Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) confirm: Must be true to execute. Safety guard against accidental rolls. batch_size_percentage: Percentage of nodes to roll per batch (default: 20) batch_min_healthy_percentage: Min healthy nodes per batch (default: 50) respect_pdb: Respect PodDisruptionBudgets (default: true) launch_spec_ids: Comma-separated VNG IDs to roll (e.g. ols-abc,ols-def). Empty = all. instance_ids: Comma-separated instance IDs to roll. Empty = all in scope. account_id: Optional account ID. Defaults to SPOTINST_ACCOUNT_ID env var. cloud: Cloud provider: aws or azure (default: aws) |
| detach_instancesA | DESTRUCTIVE: Detach and optionally terminate instances from an AWS Ocean cluster. Requires confirm=true. Args: cluster_id: The Ocean cluster ID (e.g. o-abc12345) instance_ids: Comma-separated EC2 instance IDs (e.g. i-abc123,i-def456) confirm: Must be true to execute. Safety guard. should_terminate: Terminate instances after detach (default: true) should_decrement_capacity: Reduce target capacity (default: true) account_id: Optional account ID. Defaults to SPOTINST_ACCOUNT_ID env var. |
| update_vngA | DESTRUCTIVE: Update an AWS VNG (launch spec) configuration. Requires confirm=true. Pass updates as a JSON string. Args: vng_id: The VNG/launch spec ID (e.g. ols-abc12345) updates_json: JSON string of fields to update (e.g. '{"resourceLimits": {"maxInstanceCount": 20}}') confirm: Must be true to execute. Safety guard. account_id: Optional account ID. Defaults to SPOTINST_ACCOUNT_ID env var. |
| update_vng_azureA | DESTRUCTIVE: Update an Azure VNG configuration. Requires confirm=true. Pass updates as a JSON string. Args: vng_id: The VNG ID (e.g. vng-14e08b61) updates_json: JSON string of fields to update confirm: Must be true to execute. Safety guard. account_id: Account ID for an Azure account. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/arnstarn/mcp-server-spotinst'
If you have feedback or need assistance with the MCP directory API, please join our Discord server