VMware vSphere MCP Server
An MCP Server that acts as a standardized interface exposing VMware vCenter functionalities as Tools directly consumable by AI models
vSphere MCP Server
A comprehensive Model Context Protocol (MCP) server for VMware vSphere management, providing AI agents with full access to virtual infrastructure operations through a secure, Dockerized environment.
Features
Core VM Management
- List VMs - Get all virtual machines with power states
- VM Details - Detailed information about specific VMs
- Power Operations - Start, stop, restart VMs
- Resource Monitoring - CPU, RAM, and network utilization
- Storage Information - Disk usage and datastore details
Advanced Operations
- Snapshot Management - Create, list, and delete VM snapshots
- Template Management - List and manage VM templates
- Bulk Operations - Power operations on multiple VMs
- Resource Modification - Change CPU and memory allocation
- Network Management - Port groups and network configuration
Monitoring & Reporting
- Performance Monitoring - Real-time resource utilization
- Event Logging - VM events and system logs
- Alarm Management - Active alarms and alerts
- Comprehensive Reports - Environment-wide analytics
- Resource Utilization - CPU, memory, and storage summaries
Safety Features
- Confirmation System - All destructive operations require explicit confirmation
- Error Handling - Comprehensive error messages and troubleshooting
- Secure Authentication - Environment-based credential management
- Audit Trail - Clear logging of all operations
Installation
Prerequisites
- Docker and Docker Compose
- VMware vCenter Server with REST API access
- Valid vCenter credentials
Quick Start
-
Clone repo
-
Configure Environment
cp env.example .env
# Edit .env with your vCenter credentials
- Deploy with Docker
docker compose up -d
Configuration
Environment Variables
Create a .env file with the following variables:
# vCenter Connection
VCENTER_HOST=vcenter.domain.local
[email protected]
VCENTER_PASSWORD=your_password_here
INSECURE=True
# Server Configuration
SERVER_HOST=0.0.0.0
SERVER_PORT=8000
AnythingLLM Integration
Add the following configuration to your anythingllm_mcp_servers.json:
{
"mcpServers": {
"vsphere-mcp-server": {
"name": "vSphere MCP Server",
"type": "streamable",
"url": "http://vsphere-mcp-server:8000/mcp",
"auth_token": null,
"enabled": true
}
}
}
Available Tools
VM Management
| Tool | Description | Parameters |
|---|---|---|
list_vms | List all virtual machines | hostname (optional) |
get_vm_details | Get detailed VM information | vm_id, hostname (optional) |
power_on_vm | Power on a virtual machine | vm_id, hostname (optional) |
power_off_vm | Power off a virtual machine | vm_id, hostname (optional) |
restart_vm | Restart a virtual machine | vm_id, hostname (optional) |
Infrastructure Management
| Tool | Description | Parameters |
|---|---|---|
list_hosts | List all ESXi hosts | hostname (optional) |
list_datastores | List all datastores | hostname (optional) |
list_networks | List all networks | hostname (optional) |
list_datacenters | List all datacenters | hostname (optional) |
Monitoring & Performance
| Tool | Description | Parameters |
|---|---|---|
get_vm_performance_info | Get VM performance metrics | hostname (optional) |
get_host_performance_info | Get host performance metrics | hostname (optional) |
get_vm_disk_usage | Get VM disk utilization | hostname (optional) |
get_datastore_usage | Get datastore utilization | hostname (optional) |
get_vms_with_high_resource_usage | Find VMs with high resource allocation | hostname (optional) |
Snapshot Management
| Tool | Description | Parameters |
|---|---|---|
list_vm_snapshots | List VM snapshots | vm_id, hostname (optional) |
create_vm_snapshot | Create VM snapshot | vm_id, snapshot_name, description, hostname (optional) |
delete_vm_snapshot | Delete VM snapshot | vm_id, snapshot_id, confirm, hostname (optional) |
Template Management
| Tool | Description | Parameters |
|---|---|---|
list_templates | List VM templates | hostname (optional) |
Advanced Monitoring
| Tool | Description | Parameters |
|---|---|---|
get_vm_events | Get VM events | vm_id, hostname (optional) |
get_alarms | Get active alarms | hostname (optional) |
get_port_groups | Get network port groups | hostname (optional) |
Reporting & Analytics
| Tool | Description | Parameters |
|---|---|---|
generate_vm_report | Generate comprehensive VM report | hostname (optional) |
get_resource_utilization_summary | Get resource utilization summary | hostname (optional) |
Automation
| Tool | Description | Parameters |
|---|---|---|
bulk_power_operations | Bulk power operations | operation, vm_list, hostname (optional) |
bulk_delete_vms | Bulk delete VMs | vm_list, confirm, hostname (optional) |
Destructive Operations (Require Confirmation)
| Tool | Description | Parameters |
|---|---|---|
delete_vm | Delete virtual machine | vm_id, confirm, hostname (optional) |
modify_vm_resources | Modify VM resources | vm_id, cpu_count, memory_gb, confirm, hostname (optional) |
force_power_off_vm | Force power off VM | vm_id, confirm, hostname (optional) |
Destructive operations require explicit confirmation by setting confirm=True
Security Features
Confirmation System
All destructive operations require explicit confirmation:
# First call - shows warning
delete_vm(vm_id="MyServer", confirm=False)
# Returns: DESTRUCTIVE OPERATION: Delete VM MyServer...
# Second call - executes operation
delete_vm(vm_id="MyServer", confirm=True)
# Returns: VM MyServer deleted successfully
Environment-Based Authentication
- Credentials stored in environment variables
- No hardcoded passwords
- Secure Docker deployment
- SSL/TLS support with configurable verification
Usage Examples
Basic VM Operations
# List all VMs
"Show me all virtual machines"
# Get VM details
"Get details for VM WebServer01"
# Power operations
"Power on the VM DatabaseServer"
"Restart all VMs: WebServer01, WebServer02, WebServer03"
Monitoring and Reporting
# Performance monitoring
"Show me CPU and memory usage for all VMs"
"Which VMs have high resource usage?"
# Storage monitoring
"Show me datastore usage"
"Which VMs have disk usage over 90%?"
# Comprehensive reporting
"Generate a complete report of the vSphere environment"
"Show me resource utilization summary"
Snapshot Management
# Create snapshots
"Create a snapshot of VM WebServer01 before updates"
# List snapshots
"Show me all snapshots for VM DatabaseServer"
# Delete snapshots (requires confirmation)
"Delete snapshot 'backup-2024-01-15' from VM WebServer01"
Destructive Operations (with confirmation)
# VM deletion (requires confirmation)
"Delete VM TestServer" # Shows warning
"Delete VM TestServer with confirmation" # Executes deletion
# Resource modification (requires confirmation)
"Modify VM WebServer01 to have 8 CPUs and 16GB RAM"
"Modify VM WebServer01 to have 8 CPUs and 16GB RAM with confirmation"
# Bulk operations (requires confirmation)
"Delete VMs: OldServer1, OldServer2, OldServer3"
"Delete VMs: OldServer1, OldServer2, OldServer3 with confirmation"
संबंधित सर्वर
Kone.vc
प्रायोजकMonetize your AI agent with contextual product recommendations
Browser Control MCP
Enables AI agents to control a local browser, manage tabs, and conduct research via a browser extension.
Omi Memories
Provides access to a specific user's memories from the Omi app.
qa-use
Provides comprehensive browser automation for QA testing capabilities.
Siri Shortcuts
List, open, and run shortcuts from the macOS Shortcuts app.
Fraud Detection Engine
中英双语 AI 欺诈文本检测引擎,可识别诈骗、钓鱼等风险,返回风险评分、判定和等级。
Claudesidian MCP
Integrates Model Context Protocol (MCP) with Obsidian, allowing AI assistants to interact with your notes and vault.
Obsidian
Interact with your Obsidian vault using the Local REST API plugin, enabling LLMs to access and manage your notes.
JIRA
Interact with JIRA to search for issues using JQL and retrieve detailed issue information.
Doc Reading and Converter
A server for reading and converting documents between PDF, DOCX, and Markdown formats using marker-pdf and pandoc.
harvest-mcp-server
Harvest time tracking integration with 40+ tools for managing time entries, projects, clients, tasks, and generating time reports via the Harvest API v2