Skip to main content
Glama

Cloud Manage MCP Server

by rainhan99
MCP_SERVICE_SPECIFICATION.md11.6 kB
# Multi-Cloud Manager MCP Service ## 📋 服务概述 **服务名称**: `multi-cloud-manager` **版本**: `2.0.0` **协议**: MCP (Model Context Protocol) **描述**: 基于 MCP 的智能多云服务器管理系统,支持 AWS、DigitalOcean、Vultr、阿里云四大主流云服务平台的统一管理 ## 🌐 支持的云平台 | 平台 | 功能权限 | 支持操作 | | ------------ | ------------- | -------------------------------- | | AWS EC2 | 只读查询 | 实例查询、存储信息、监控数据 | | DigitalOcean | 查询+电源管理 | 实例查询、开关机、重启、监控 | | Vultr | 查询+电源管理 | 实例查询、开关机、重启、带宽监控 | | 阿里云 ECS | 查询+电源管理 | 实例查询、开关机、重启、监控 | ## 🛠️ 可用工具 (Tools) ### 通用工具 #### `get_instance_info` **描述**: 根据 IP 地址自动检测云服务提供商并获取实例信息 **参数**: - `ip_address` (string): 公网 IP 地址 - `provider` (string, optional): 明确指定的云服务提供商 ('aws', 'digitalocean', 'vultr', 'alibaba') **返回**: 实例详细信息,包含提供商信息和实例配置 **使用说明**: - 如果不指定 `provider` 参数,系统会自动检测云服务提供商 - 如果指定 `provider` 参数,将跳过自动检测,直接使用指定的云服务提供商 #### `get_instance_by_provider` **描述**: 通过明确指定的云服务提供商查询实例信息 **参数**: - `provider` (string): 云服务提供商 ('aws', 'digitalocean', 'vultr', 'alibaba') - `identifier` (string): 实例标识符(IP 地址或实例 ID) **返回**: 实例详细信息 **使用说明**: - 智能识别标识符类型(IP 地址 vs 实例 ID) - 根据不同云平台的 ID 格式自动选择查询方式 #### `manage_instance_power` **描述**: 通用的实例电源管理函数(支持所有云平台,AWS 除外) **参数**: - `provider` (string): 云服务提供商 ('digitalocean', 'vultr', 'alibaba') - `instance_id` (string): 实例 ID - `action` (string): 操作类型 ('power_on', 'power_off', 'reboot', 'shutdown') - `ip_confirmation` (string): 确认 IP 地址 - `name_confirmation` (string): 确认实例名称 - `operation_confirmation` (string): 确认操作类型 **返回**: 操作结果 **安全限制**: - AWS 平台不支持电源管理操作 - 所有操作都需要三次确认 #### `get_supported_providers` **描述**: 获取支持的云服务提供商列表 **参数**: 无 **返回**: 支持的云服务提供商信息和状态 #### `get_system_status` **描述**: 获取整个系统的状态概览 **参数**: 无 **返回**: 系统状态、可用提供商数量、安全特性等 #### `check_provider_availability` **描述**: 检查特定云服务提供商的可用性 **参数**: - `provider_name` (string): 提供商名称 ('aws', 'digitalocean', 'vultr', 'alibaba') **返回**: 提供商可用性状态和环境变量检查结果 ### AWS EC2 工具 #### `get_aws_instance_info` **描述**: 获取 AWS EC2 实例信息(只读) **参数**: - `ip_address_or_id` (string): 公网 IP 地址或实例 ID #### `get_aws_instance_storage_info` **描述**: 获取 AWS EC2 实例的存储详细信息 **参数**: - `instance_id` (string): EC2 实例 ID **返回**: 存储信息,包括磁盘类型、IOPS、吞吐量等 #### `get_aws_instance_monitoring` **描述**: 获取 AWS EC2 实例的监控数据 **参数**: - `instance_id` (string): EC2 实例 ID - `hours` (integer, optional): 获取过去多少小时的数据,默认 1 小时 #### `list_aws_instances` **描述**: 列出所有 AWS EC2 实例 **参数**: 无 ### DigitalOcean 工具 #### `get_digitalocean_droplet_info` **描述**: 获取 DigitalOcean Droplet 信息 **参数**: - `ip_address_or_id` (string): 公网 IP 地址或 Droplet ID #### `power_on_digitalocean_droplet` **描述**: 开启 DigitalOcean Droplet(需要三次确认) **参数**: - `droplet_id` (integer): Droplet ID - `ip_confirmation` (string): 确认 IP 地址 - `name_confirmation` (string): 确认 Droplet 名称 - `operation_confirmation` (string): 确认操作类型 #### `power_off_digitalocean_droplet` **描述**: 强制关闭 DigitalOcean Droplet(需要三次确认) **参数**: 同 `power_on_digitalocean_droplet` #### `shutdown_digitalocean_droplet` **描述**: 优雅关闭 DigitalOcean Droplet(需要三次确认) **参数**: 同 `power_on_digitalocean_droplet` #### `reboot_digitalocean_droplet` **描述**: 重启 DigitalOcean Droplet(需要三次确认) **参数**: 同 `power_on_digitalocean_droplet` #### `list_digitalocean_droplets` **描述**: 列出所有 DigitalOcean Droplets **参数**: 无 #### `get_digitalocean_droplet_monitoring` **描述**: 获取 DigitalOcean Droplet 监控信息 **参数**: - `droplet_id` (integer): Droplet ID #### `get_digitalocean_droplet_actions` **描述**: 获取 DigitalOcean Droplet 操作历史 **参数**: - `droplet_id` (integer): Droplet ID ### Vultr 工具 #### `get_vultr_instance_info` **描述**: 获取 Vultr 实例信息 **参数**: - `ip_address_or_id` (string): 公网 IP 地址或实例 ID #### `power_on_vultr_instance` **描述**: 开启 Vultr 实例(需要三次确认) **参数**: - `instance_id` (string): Vultr 实例 ID - `ip_confirmation` (string): 确认 IP 地址 - `name_confirmation` (string): 确认实例名称 - `operation_confirmation` (string): 确认操作类型 #### `power_off_vultr_instance` **描述**: 强制关闭 Vultr 实例(需要三次确认) **参数**: 同 `power_on_vultr_instance` #### `reboot_vultr_instance` **描述**: 重启 Vultr 实例(需要三次确认) **参数**: 同 `power_on_vultr_instance` #### `list_vultr_instances` **描述**: 列出所有 Vultr 实例 **参数**: 无 #### `get_vultr_instance_bandwidth` **描述**: 获取 Vultr 实例带宽使用情况 **参数**: - `instance_id` (string): Vultr 实例 ID ### 阿里云 ECS 工具 #### `get_alibaba_instance_info` **描述**: 获取阿里云 ECS 实例信息 **参数**: - `ip_address_or_id` (string): 公网 IP 地址或实例 ID #### `power_on_alibaba_instance` **描述**: 启动阿里云 ECS 实例(需要三次确认) **参数**: - `instance_id` (string): ECS 实例 ID - `ip_confirmation` (string): 确认 IP 地址 - `name_confirmation` (string): 确认实例名称 - `operation_confirmation` (string): 确认操作类型 #### `power_off_alibaba_instance` **描述**: 强制停止阿里云 ECS 实例(需要三次确认) **参数**: 同 `power_on_alibaba_instance` #### `reboot_alibaba_instance` **描述**: 重启阿里云 ECS 实例(需要三次确认) **参数**: 同 `power_on_alibaba_instance` #### `list_alibaba_instances` **描述**: 列出所有阿里云 ECS 实例 **参数**: 无 #### `get_alibaba_instance_monitoring` **描述**: 获取阿里云 ECS 实例监控信息 **参数**: - `instance_id` (string): ECS 实例 ID ## 🔧 环境配置要求 ### 必需环境变量 #### AWS 配置 ```bash AWS_ACCESS_KEY_ID=your_aws_access_key_id AWS_SECRET_ACCESS_KEY=your_aws_secret_access_key AWS_DEFAULT_REGION=us-east-1 ``` #### DigitalOcean 配置 ```bash DIGITALOCEAN_TOKEN=your_digitalocean_token ``` #### Vultr 配置 ```bash VULTR_API_KEY=your_vultr_api_key ``` #### 阿里云配置 ```bash ALIBABA_CLOUD_ACCESS_KEY_ID=your_alibaba_access_key_id ALIBABA_CLOUD_ACCESS_KEY_SECRET=your_alibaba_access_key_secret ALIBABA_CLOUD_REGION_ID=cn-hangzhou ``` ### 可选环境变量 #### IP 检测服务 ```bash IPINFO_API_TOKEN=your_ipinfo_token ``` ## 🛡️ 安全特性 ### 三重确认机制 所有电源操作(开关机、重启)都需要三次确认: 1. **IP 地址确认**: 输入目标服务器的准确 IP 地址 2. **名称确认**: 输入服务器的准确名称 3. **操作确认**: 输入准确的操作类型 ### 权限限制 - **AWS**: 仅提供只读查询功能,确保安全 - **其他平台**: 支持查询和电源管理,但完全禁用删除操作 - **删除保护**: 所有平台都不允许删除操作 ### 智能安全检查 - 实例状态验证 - 生产环境标签检测 - 大型实例操作警告 - 确认信息验证 ## 📋 MCP 客户端配置 ### Claude Desktop 配置 在 `claude_desktop_config.json` 中添加: ```json { "mcpServers": { "multi-cloud-manager": { "command": "uv", "args": ["run", "python", "main.py"], "cwd": "/path/to/cloud_manage_mcp_server", "env": { "AWS_ACCESS_KEY_ID": "your_key", "AWS_SECRET_ACCESS_KEY": "your_secret", "DIGITALOCEAN_TOKEN": "your_token", "VULTR_API_KEY": "your_key", "ALIBABA_CLOUD_ACCESS_KEY_ID": "your_key", "ALIBABA_CLOUD_ACCESS_KEY_SECRET": "your_secret" } } } } ``` ### 通用 MCP 客户端配置 ```json { "name": "multi-cloud-manager", "command": ["uv", "run", "python", "main.py"], "args": [], "env": { "环境变量": "值" } } ``` ## 📝 使用示例 ### 基础查询 ```json { "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "get_instance_info", "arguments": { "ip_address": "1.2.3.4" } } } ``` ### AWS 存储查询 ```json { "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "get_aws_instance_storage_info", "arguments": { "instance_id": "i-1234567890abcdef0" } } } ``` ### 安全重启操作 ```json { "jsonrpc": "2.0", "id": 3, "method": "tools/call", "params": { "name": "reboot_digitalocean_droplet", "arguments": { "droplet_id": 123456, "ip_confirmation": "192.168.1.100", "name_confirmation": "web-server-01", "operation_confirmation": "重启" } } } ``` ## 🚀 启动和部署 ### 本地开发 ```bash # 安装依赖 uv sync # 配置环境变量 cp config.env.example .env # 编辑 .env 文件 # 启动服务 uv run python main.py ``` ### 生产部署 ```bash # 安装生产依赖 uv sync --no-dev # 设置环境变量 export AWS_ACCESS_KEY_ID=xxx export DIGITALOCEAN_TOKEN=xxx # 启动服务 uv run python main.py ``` ## 📊 服务能力 ### 支持的功能 - ✅ 多云平台统一管理 - ✅ 智能 IP 检测和路由 - ✅ 三重确认安全机制 - ✅ 实时状态监控 - ✅ 详细配置查询 - ✅ 电源管理操作 - ✅ 历史操作记录 ### 限制和约束 - ❌ 不支持实例创建/删除 - ❌ 不支持网络配置修改 - ❌ 不支持安全组管理 - ⚠️ 需要相应的 API 权限 - ⚠️ 电源操作需要三次确认 ## 🔍 故障排除 ### 常见错误码 - `PROVIDER_NOT_AVAILABLE`: 云服务提供商不可用 - `INVALID_CREDENTIALS`: API 凭证无效 - `CONFIRMATION_FAILED`: 三次确认验证失败 - `RESOURCE_NOT_FOUND`: 资源未找到 - `OPERATION_NOT_SUPPORTED`: 操作不支持 ### 诊断命令 ```bash # 检查系统状态 uv run python -c "from main import get_system_status; print(get_system_status())" # 检查特定提供商 uv run python -c "from main import check_provider_availability; print(check_provider_availability('aws'))" ``` ## 📞 支持和贡献 - **GitHub**: https://github.com/rainhan99/cloud_manage_mcp_server - **Issues**: https://github.com/rainhan99/cloud_manage_mcp_server/issues - **文档**: README_NEW.md - **许可证**: MIT --- **版本**: 2.0.0 **最后更新**: 2024 年 **MCP 协议版本**: 2024-11-05

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/rainhan99/cloud_manage_mcp_server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server