云虚拟机管理协议

Cloud VM MCP 是一个用于跨多个云提供商(AWS、Azure、阿里云)管理和查看虚拟机的模型上下文协议(MCP)服务器,为AI助手提供统一接口来列出、检查和控制虚拟机。

  • by sondt2709
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sondt2709/cloud-vm-mcp-py

使用说明

云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工具:

  1. list_vms:列出已配置提供程序中的所有虚拟机

    • 参数: provider (可选), tenant (可选), region (可选)
  2. list_提供者:列出所有已配置的云提供商

    • 参数:无
  3. get_vm_details:获取特定VM的详细信息

    • 参数: vm_id (复合ID格式: provider:tenant:region:instance)
  4. start_vm:启动虚拟机

    • 参数: vm_id
  5. 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 providers

MCP检查员

您可以使用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配置解析
  • 看门狗:用于查看配置文件

配置⚙️

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配置文件的路径(必需)
  • VM_MCP_CONFIRM_REQUIRED_TOOLS:需要用户的逗号分隔的工具名称 运行前确认(默认为 start_vm,stop_vm,reboot_vm).这 确认提示是通过MCP启发协议发送的,因此它看起来 仅适用于支持启发式的客户(例如Claude Code、MCP Inspector); 其他客户端在没有提示的情况下运行该工具。设置为空值以禁用 确认所有工具。

安全建议

  • 以受限权限存储配置文件(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分钟)用于多提供商查询

开发与测试🧪

设置

  1. 克隆存储库
  2. 安装依赖项: uv sync
  3. 设置预提交: 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许可证-请参阅 许可证 了解详情。