Skip to main content
Glama

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

  1. Clone repo

  2. Configure Environment

cp env.example .env # Edit .env with your vCenter credentials
  1. 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 VCENTER_USER=username@domain.local 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

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"
-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

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/akshyaganesh/VMware-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server