云VM MCP:用于云VM管理的模型上下文协议
Cloud VM MCP是一个模型上下文协议(MCP)服务器,用于管理和查看跨多个云提供商(AWS、Azure、阿里云)的虚拟机。它使AI助手能够通过统一的界面列出、检查和控制虚拟机。
______________________________________________________________________
安装📦
# Install from PyPI
pip install cloud-vm-mcp-py
# Or using uv
uv add cloud-vm-mcp-py______________________________________________________________________
使用指南📖
VM MCP可以通过两种方式使用:作为MCP服务器或作为直接的命令行工具。
MCP服务器使用情况
启动MCP服务器:
uv run vm-mcp可用的MCP工具:
- list_vms:列出已配置提供程序中的所有虚拟机
- 参数: provider (可选), tenant (可选), region (可选)
- list_提供者:列出所有已配置的云提供商
- 参数:无
- get_vm_details:获取特定VM的详细信息
- 参数: vm_id (复合ID格式: provider:tenant:region:instance)
- start_vm:启动虚拟机
- 参数: vm_id
- stop_vm:停止虚拟机
- 参数: vm_id, force (可选,默认值:false)
与Claude Desktop集成
要将Cloud VM MCP与Claude Desktop一起使用,请将以下配置添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"vm": {
"command": "uvx",
"args": ["cloud-vm-mcp-py"],
"env": {
"MCP_TRANSPORT": "stdio",
"PROVIDERS_CONFIG_PATH": "/path/to/your/providers.yaml"
}
}
}
}配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
直接命令行使用
您可以直接使用CLI管理虚拟机:
列出所有虚拟机:
PROVIDERS_CONFIG_PATH=./providers.yaml uv run python cli.py list按提供商/租户/地区筛选:
uv run python cli.py list --provider aws --tenant production --region us-east-1获取VM详细信息:
uv run python cli.py info aws:production:us-east-1:i-1234567890abcdef0启动/停止虚拟机:
uv run python cli.py start aws:production:us-east-1:i-1234567890abcdef0
uv run python cli.py stop azure:corp-main:eastus:web-server --force列出已配置的提供程序:
uv run python cli.py providersMCP检查员
您可以使用MCP检查器检查和测试MCP服务器:
npx @modelcontextprotocol/inspector uv run vm-mcp -e PROVIDERS_CONFIG_PATH=/path/to/providers.yaml______________________________________________________________________
主要特点🚀
- 多提供商支持:从单个界面跨AWS、Azure和阿里云管理虚拟机
- 多账户支持:配置多个AWS帐户和Azure目录
- 统一VM模型:跨提供商的一致VM表示
- 过滤:按提供商、租户(帐户/目录)或地区筛选虚拟机
- 电源管理:使用可选的强制标志启动和停止VM
- 热重新加载:配置更改会自动检测并应用
- MCP集成:通过模型上下文协议为AI助手提供工具
______________________________________________________________________
需求📋
- Python 3.10或更高版本
- 肉毒杆菌3:用于AWS EC2操作
- azure身份、azure mgmt计算、azure mgmtnetwork:用于Azure VM操作
- 阿里巴巴云-ecs20140526,阿里巴巴云茶openapi:用于阿里云ECS运营
- Yaml:用于YAML配置解析
- 看门狗:用于查看配置文件
______________________________________________________________________
配置⚙️
Cloud VM MCP使用YAML配置文件来定义云提供商凭据。设置 PROVIDERS_CONFIG_PATH 环境变量指向您的配置文件。
配置文件设置
创建一个 providers.yaml 使用您的提供商凭据文件:
示例 providers.yaml:
providers:
aws:
accounts:
- alias: production
access_key_id: AKIAIOSFODNN7EXAMPLE
secret_access_key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
regions:
- us-east-1
- us-west-2
- alias: staging
access_key_id: AKIAI44QH8DHBEXAMPLE
secret_access_key: je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY
regions:
- us-east-1
azure:
directories:
- alias: corp-main
tenant_id: 00000000-0000-0000-0000-000000000000
client_id: 11111111-1111-1111-1111-111111111111
client_secret: your-client-secret-here
subscription_ids:
- 22222222-2222-2222-2222-222222222222
alibaba:
accounts:
- alias: china-prod
access_key_id: LTAI5tYourAccessKeyId
access_key_secret: YourAccessKeySecret
regions:
- cn-hangzhou
- ap-southeast-1环境变量
MCP_TRANSPORT:stdio、sse、可流式传输的http(默认为stdio)PROVIDERS_CONFIG_PATH:YAML配置文件的路径(必需)
安全建议
- 以受限权限存储配置文件(
chmod 600 providers.yaml) - 从不将凭据提交到版本控制
- 考虑在生产中使用环境变量作为敏感值
______________________________________________________________________
VM标识符格式🔖
VM使用复合ID格式标识:
{provider}:{tenant_alias}:{region}:{instance_id}示例:
- AWS:
aws:production:us-east-1:i-1234567890abcdef0 - Azure:
azure:corp-main:eastus:web-server-01 - 阿里巴巴:
alibaba:china-prod:cn-hangzhou:i-bp1234567890abcdef
______________________________________________________________________
超时配置⏱️
- 每次请求超时:60秒
- 查询总超时时间:180秒(3分钟)用于多提供商查询
______________________________________________________________________
开发与测试🧪
设置
- 克隆仓库
- 安装依赖项:
uv sync - 设置预提交:
uv run pre-commit install
运行测试
# Run all tests
uv run pytest tests/ -v
# Run with coverage
uv run pytest tests/ --cov=vm_mcp --cov-report=html代码质量
uv run ruff check .
uv run ruff format .发布到PyPI
rm -rf dist
uv build
uv publish --username __token__ --password YOUR_PYPI_API_KEY______________________________________________________________________
未来路线图🗺️
- 防火墙规则查看
- 弹性IP管理
- RAM/CPU/GPU详细信息
- 计划启动/停止操作
______________________________________________________________________
许可证
MIT许可证-请参阅 许可证 了解详情。
