Skip to main content
Glama
akshyaganesh

vSphere MCP Server

by akshyaganesh

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

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

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