mcp服务器spotins
](https://pypi.org/project/mcp-server-spotinst/)   
MCP服务器 Spot.io(Spotinst) API支持具有多帐户访问权限的AWS和Azure Ocean集群。
工具(34)
跨账户
| 工具 | 说明 |
|---|
list_accounts | 列出当前令牌可访问的所有Spotinst帐户 |
list_all_clusters | 列出所有帐户和云(AWS+Azure)上的所有集群 |
AWS海洋
| 工具 | 说明 |
|---|
list_clusters | 列出AWS Ocean K8s集群 |
get_cluster | 获取AWS Ocean集群详细信息 |
list_vngs | 列出AWS虚拟节点组(启动规范) |
get_vng | 获取AWS VNG详细信息 |
list_elastigroups | 列出所有弹性组 |
get_elastigroup | 获取Elastigroup详细信息 |
get_allowed_instance_types | 获取允许的EC2实例类型 |
get_right_sizing | 获取正确的资源规模建议(仅限AWS) |
蓝天碧海
| 工具 | 说明 |
|---|
list_clusters_azure | 列出Azure Ocean集群 |
get_cluster_azure | 获取Azure Ocean群集详细信息 |
list_vngs_azure | 列出Azure虚拟节点组 |
get_vng_azure | 获取Azure VNG详细信息 |
两云(通过 cloud="azure" 适用于Azure)
| 工具 | 说明 |
|---|
get_cluster_nodes | 列出Ocean集群中的节点 |
get_cluster_costs | 按命名空间或资源获取聚合成本明细 |
list_rolls | 列出部署卷 |
get_roll | 获取卷详细信息 |
get_cluster_log | 获取缩放和活动日志事件 |
状态节点(AWS托管实例)
| 工具 | 说明 |
|---|
list_stateful_nodes | 列出所有有状态节点(托管实例) |
get_stateful_node | 获取状态节点详细信息 |
日程安排和健康
| 工具 | 说明 |
|---|
get_cluster_scheduling | 获取调度和自动缩放器配置 |
get_cluster_health | 复合健康检查:节点、最近的错误、活动滚动 |
成本分析
| 工具 | 说明 |
|---|
get_cost_trending | 每周(或自定义期间)成本比较 |
get_savings_summary | 30天成本和节省汇总 |
标签筛选
| 工具 | 说明 |
|---|
filter_clusters_by_tag | 按标签键/值过滤集群 |
filter_vngs_by_tag | 按标签键/值过滤VNG |
导出(YAML)
| 工具 | 说明 |
|---|
export_cluster_yaml | 将集群配置导出为用于GitOps/backup的YAML |
export_vng_yaml | 将VNG配置导出为用于GitOps/backup的YAML |
写入操作(必需 confirm=true)
| 工具 | 说明 |
|---|
remove_instances | 推荐 --使用命名策略删除实例(见下文) |
initiate_roll | Ocean集群中节点的滚动重启 |
detach_instances | 从AWS Ocean集群中分离实例,并可选择终止实例 |
update_vng | 更新AWS VNG配置 |
update_vng_azure | 更新Azure VNG配置 |
所有工具都接受可选 account_id 参数来查询任何帐户。
实例删除策略
这 remove_instances 该工具为删除实例提供了一个安全的、基于意图的接口。您不需要记住要设置哪些API标志,而是选择一种策略:
| 策略 | 发生了什么 | 用例 |
|---|
drain_and_replace | 优雅地排空吊舱(尊重PDB),终止,海洋更换。 默认且最安全。 | 更换生产中有问题的节点 |
replace | 立即终止,海洋自动更换。没有优雅的排水。仅限AWS。 | 不需要排水时快速更换 |
remove_permanently | 终止+减少集群容量。无需更换。仅限AWS。 | 缩小集群规模 |
当 confirm=false (默认),该工具显示详细的执行计划,以便您在继续之前进行查看:
remove_instances("o-abc123", "i-abc123", strategy="drain_and_replace")
→ SAFETY: Action NOT executed. Set confirm=true to proceed.
DRAIN AND REPLACE 1 instance(s) in cluster o-abc123:
Instances: ['i-abc123']
Method: Rolling restart (20% per batch)
- Pods will be gracefully drained (PDBs respected)
- Instances will be terminated after drain
- Ocean will automatically launch replacements
设置
环境变量
export SPOTINST_TOKEN="your-spotinst-api-token"
export SPOTINST_ACCOUNT_ID="act-xxxxxxxx"
使用pip安装
pip install mcp-server-spotinst
使用uvx安装(无需安装)
uvx mcp-server-spotinst
Claude代码配置
添加 ~/.mcp.json:
{
"mcpServers": {
"spotinst": {
"command": "uvx",
"args": ["mcp-server-spotinst"],
"env": {
"SPOTINST_TOKEN": "your-token",
"SPOTINST_ACCOUNT_ID": "act-xxxxxxxx"
}
}
}
}
码头工人
docker build -t mcp-server-spotinst .
docker run -e SPOTINST_TOKEN=your-token -e SPOTINST_ACCOUNT_ID=act-xxxxxxxx mcp-server-spotinst
独立运行
mcp-server-spotinst
多账户使用
您的个人API令牌可以访问多个Spotinst帐户。使用 list_accounts 查看所有可用帐户,然后传递 account_id 任何工具:
list_clusters(account_id="act-be5e7ffe")
get_cluster_nodes("o-390ef886", account_id="act-9785011e", cloud="azure")
或使用 list_all_clusters 用于所有产品的单次通话库存。
API 参考
使用 Spot.io REST API 在 https://api.spotinst.io.