ESXi MCP Server
bright8192/esxi-mcp-server · 64 stars · Python · MIT
MCP server A VMware ESXi/vCenter management server based on MCP (Model Control Protocol), providing simple REST API interfaces for virtual machine management.
Install
The repo has no one-line install. Follow its README.
Files
ESXi MCP Server
A VMware ESXi/vCenter management server based on MCP (Model Control Protocol), providing simple REST API interfaces for virtual machine management.
Features
- Support for ESXi and vCenter Server connections
- Real-time communication based on SSE (Server-Sent Events)
- RESTful API interface with JSON-RPC support
- API key authentication
- Complete virtual machine lifecycle management
- Real-time performance monitoring
- SSL/TLS secure connection support
- Flexible configuration options (YAML/JSON/Environment Variables)
Core Functions
- Virtual Machine Management
- Create VM
- Clone VM
- Delete VM
- Power On/Off operations
- List all VMs
- Performance Monitoring
- CPU usage
- Memory usage
- Storage usage
- Network traffic statistics
Requirements
- Python 3.7+
- pyVmomi
- PyYAML
- uvicorn
- mcp-core (Machine Control Protocol core library)
Quick Start
- Install dependencies:
pip install pyvmomi pyyaml uvicorn mcp-core
- Create configuration file
config.yaml:
vcenter_host: "your-vcenter-ip" vcenter_user: "administrator@vsphere.local" vcenter_password: "your-password" datacenter: "your-datacenter" # Optional cluster: "your-cluster" # Optional datastore: "your-datastore" # Optional network: "VM Network" # Optional insecure: true # Skip SSL certificate verification api_key: "your-api-key" # API access key log_file: "./logs/vmware_mcp.log" # Log file path log_level: "INFO" # Log level
- Run the server:
python server.py -c config.yaml
API Interface
Authentication
All privileged operations require authentication first:
POST /sse/messages Authorization: Bearer your-api-key
Main Tool Interfaces
- Create VM
{
"name": "vm-name",
"cpu": 2,
"memory": 4096,
"datastore": "datastore-name",
"network": "network-name"
}
- Clone VM
{
"template_name": "source-vm",
"new_name": "new-vm-name"
}
- Delete VM
{
"name": "vm-name"
}
- Power Operations
{
"name": "vm-name"
}
Resource Monitoring Interface
Get VM performance data:
GET vmstats://{vm_name}
Configuration
| Parameter | Description | Required | Default |
|---|---|---|---|
| vcenter_host | vCenter/ESXi server address | Yes | - |
| vcenter_user | Login username | Yes | - |
| vcenter_password | Login password | Yes | - |
| datacenter | Datacenter name | No | Auto-select first |
| cluster | Cluster name | No | Auto-select first |
| datastore | Storage name | No | Auto-select largest available |
| network | Network name | No | VM Network |
| insecure | Skip SSL verification | No | false |
| api_key | API access key | No | - |
| log_file | Log file path | No | Console output |
| log_level | Log level | No | INFO |
Environment Variables
All configuration items support environment variable settings, following these naming rules:
- VCENTER_HOST
- VCENTER_USER
- VCENTER_PASSWORD
- VCENTER_DATACENTER
- VCENTER_CLUSTER
- VCENTER_DATASTORE
- VCENTER_NETWORK
- VCENTER_INSECURE
- MCP_API_KEY
- MCP_LOG_FILE
- MCP_LOG_LEVEL
Security Recommendations
-
Production Environment:
- Use valid SSL certificates
- Enable API key authentication
- Set appropriate log levels
- Restrict API access scope
-
Testing Environment:
- Set insecure: true to skip SSL verification
- Use more detailed log level (DEBUG)
License
MIT License
Contributing
Issues and Pull Requests are welcome!
Changelog
v0.0.1
- Initial release
- Basic VM management functionality
- SSE communication support
- API key authentication
- Performance monitoring
Author
Bright8192
Acknowledgments
- VMware pyvmomi team
- MCP Protocol development team
Facts
- Kind
- MCP server
- Group
- Uncategorized
- Stars
- 64
- License
- MIT
- Language
- Python
- Last push
- 2025-07-01
- Forks
- 27
- 1REAio.github.morluto/reaReverse engineer anything from your terminal or agent with one CLI and MCP server.125.3k
- 2com.browser-use/browser-usecom.browser-use/browser-useControl a real Chrome browser to complete any task: fill forms, extract data, book flights.117.7k
- 3World Monitorapp.worldmonitor/mcpLive markets, conflicts, country risk, chokepoints, energy, and China decision signals. 93 tools.88.3k
- 4Scrapling MCP Serverd4vinci/scrapling🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scraplingdev86.9k
- 5Everythingmodelcontextprotocol/serversThis MCP server attempts to exercise all the features of the MCP protocol. It is not intended to be a useful server, but rather a test server for builders of MCP clients. It implements prompts, tools, resources, sampling, and more to showcase MCP capabilities.85.8k
- 6Fetchmodelcontextprotocol/serversA Model Context Protocol server that provides web content fetching capabilities. This server enables LLMs to retrieve and process content from web pages, converting HTML to markdown for easier consumption.85.8k