Cloud VM MCP
This server acts as an MCP server that enables you to manage and control virtual machines across multiple cloud providers (AWS, Azure, and Alibaba Cloud) through a unified interface.
list_providers: List all configured cloud providers and their associated accounts/directories.list_vms: List all VMs across providers, with optional filtering by provider, tenant (account/directory alias), or region.get_vm_details: Fetch detailed information about a specific VM using its composite ID (provider:tenant:region:instance_id).start_vm: Start a stopped virtual machine.stop_vm: Stop a running VM, with an optionalforceflag for immediate (non-graceful) shutdown.reboot_vm: Reboot a virtual machine.
It provides a consistent VM representation and identifier format across AWS (EC2), Azure (VMs across directories/subscriptions), and Alibaba Cloud (ECS instances).
Enables management of virtual machines on Alibaba Cloud, including listing, starting, stopping, and inspecting VMs across multiple accounts and regions.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cloud VM MCPlist all VMs in my AWS production account"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cloud VM MCP: Model Context Protocol for Cloud VM Management
Cloud VM MCP is a Model Context Protocol (MCP) server for managing and viewing virtual machines across multiple cloud providers (AWS, Azure, Alibaba Cloud). It enables AI assistants to list, inspect, and control VMs through a unified interface.
Installation π¦
# Install from PyPI
pip install cloud-vm-mcp-py
# Or using uv
uv add cloud-vm-mcp-pyRelated MCP server: MCP Cloud Services Server
Usage Guide π
VM MCP can be used in two ways: as an MCP server or as a direct command-line tool.
MCP Server Usage
Start the MCP server:
uv run vm-mcpAvailable MCP Tools:
list_vms: List all VMs across configured providers
Parameters:
provider(optional),tenant(optional),region(optional)
list_providers: List all configured cloud providers
Parameters: None
get_vm_details: Get detailed information about a specific VM
Parameters:
vm_id(composite ID format:provider:tenant:region:instance)
start_vm: Start a virtual machine
Parameters:
vm_id
stop_vm: Stop a virtual machine
Parameters:
vm_id,force(optional, default: false)
Integration with Claude Desktop
To use Cloud VM MCP with Claude Desktop, add the following configuration to your 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"
}
}
}
}Configuration File Location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Direct Command-Line Usage
You can manage VMs directly using the CLI:
List all VMs:
PROVIDERS_CONFIG_PATH=./providers.yaml uv run python cli.py listFilter by provider/tenant/region:
uv run python cli.py list --provider aws --tenant production --region us-east-1Get VM details:
uv run python cli.py info aws:production:us-east-1:i-1234567890abcdef0Start/Stop VMs:
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 --forceList configured providers:
uv run python cli.py providersMCP Inspector
You can inspect and test the MCP server using the MCP Inspector:
npx @modelcontextprotocol/inspector uv run vm-mcp -e PROVIDERS_CONFIG_PATH=/path/to/providers.yamlKey Features π
Multi-Provider Support: Manage VMs across AWS, Azure, and Alibaba Cloud from a single interface
Multi-Account Support: Configure multiple AWS accounts and Azure directories
Unified VM Model: Consistent VM representation across providers
Filtering: Filter VMs by provider, tenant (account/directory), or region
Power Management: Start and stop VMs with optional force flag
Hot-Reload: Configuration changes are automatically detected and applied
MCP Integration: Provides tools for AI assistants through the Model Context Protocol
Requirements π
Python 3.10 or higher
boto3: For AWS EC2 operations
azure-identity, azure-mgmt-compute, azure-mgmt-network: For Azure VM operations
alibabacloud-ecs20140526, alibabacloud-tea-openapi: For Alibaba Cloud ECS operations
pyyaml: For YAML configuration parsing
watchdog: For configuration file watching
Configuration βοΈ
Cloud VM MCP uses a YAML configuration file to define cloud provider credentials. Set the PROVIDERS_CONFIG_PATH environment variable to point to your configuration file.
Configuration File Setup
Create a providers.yaml file with your provider credentials:
Example 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-1Environment Variables
MCP_TRANSPORT: stdio, sse, streamable-http (defaults to stdio)PROVIDERS_CONFIG_PATH: Path to YAML configuration file (required)VM_MCP_CONFIRM_REQUIRED_TOOLS: Comma-separated tool names that require user confirmation before running (defaults tostart_vm,stop_vm,reboot_vm). The confirmation prompt is sent via the MCP elicitation protocol, so it appears only in clients that support elicitation (e.g. Claude Code, MCP Inspector); other clients run the tool unprompted. Set to an empty value to disable confirmation for all tools.
Security Recommendations
Store the configuration file with restricted permissions (
chmod 600 providers.yaml)Never commit credentials to version control
Consider using environment variables for sensitive values in production
VM Identifier Format π
VMs are identified using a composite ID format:
{provider}:{tenant_alias}:{region}:{instance_id}Examples:
AWS:
aws:production:us-east-1:i-1234567890abcdef0Azure:
azure:corp-main:eastus:web-server-01Alibaba:
alibaba:china-prod:cn-hangzhou:i-bp1234567890abcdef
Timeout Configuration β±οΈ
Per-request timeout: 60 seconds
Total query timeout: 180 seconds (3 minutes) for multi-provider queries
Development & Testing π§ͺ
Setup
Clone the repository
Install dependencies:
uv syncSetup pre-commit:
uv run pre-commit install
Running Tests
# Run all tests
uv run pytest tests/ -v
# Run with coverage
uv run pytest tests/ --cov=vm_mcp --cov-report=htmlCode Quality
uv run ruff check .
uv run ruff format .Publishing to PyPI
rm -rf dist
uv build
uv publish --username __token__ --password YOUR_PYPI_API_KEYFuture Roadmap πΊοΈ
Firewall rules viewing
Elastic IP management
RAM/CPU/GPU details
Scheduled start/stop operations
License
MIT License - See LICENSE for details.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/sondt2709/cloud-vm-mcp-py'
If you have feedback or need assistance with the MCP directory API, please join our Discord server