VMware-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VMWARE_HOST | No | vCenter Server or ESXi hostname or IP. Also VSPHERE_HOST. | |
| VMWARE_PORT | No | API port. | 443 |
| VMWARE_USER | No | Alias for VMWARE_USERNAME. | |
| VSPHERE_HOST | No | Alias for VMWARE_HOST. | |
| VSPHERE_USER | No | Alias for VMWARE_USERNAME. | |
| VMWARE_INSECURE | No | Shorthand for disabling verification. | false |
| VMWARE_PASSWORD | No | Password. Also VSPHERE_PASSWORD. | |
| VMWARE_USERNAME | No | vSphere account. Also VMWARE_USER, VSPHERE_USER. | |
| VMWARE_CACHE_TTL | No | Seconds to cache the inventory tree used for path resolution. | 60 |
| VMWARE_CA_BUNDLE | No | CA certificate bundle to trust instead of the system store. | |
| VMWARE_LOG_LEVEL | No | Log level. Logs go to stderr. | INFO |
| VMWARE_TRANSPORT | No | stdio, streamable-http or sse. | stdio |
| VSPHERE_PASSWORD | No | Alias for VMWARE_PASSWORD. | |
| VMWARE_VERIFY_SSL | No | Verify the TLS certificate. | true |
| VMWARE_MAX_RESULTS | No | Hard cap on items returned by any listing. | 500 |
| VMWARE_TASK_TIMEOUT | No | How long to wait for a vSphere task before handing back its id. | 600 |
| VMWARE_CONNECT_TIMEOUT | No | HTTP connection timeout in seconds. | 30 |
| VMWARE_MAX_CONCURRENCY | No | Maximum simultaneous calls to vCenter. | 8 |
| VMWARE_PERMISSION_MODE | No | read-only, write or destructive. | read-only |
| VMWARE_DEFAULT_PAGE_SIZE | No | Page size when a tool call omits limit. | 100 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| vsphere_aboutA | Identify the connected vSphere endpoint. Returns the product name and version of vCenter Server or ESXi, the API version, the account the server is authenticated as, and the permission mode this MCP server is running in. Call this first to find out whether write operations are allowed at all. |
| vsphere_list_datacentersA | List every datacenter in the vSphere inventory. |
| vsphere_list_clustersA | List compute clusters with their capacity, DRS and HA configuration. Args:
name: Optional filter on cluster name. Plain text matches as a
case-insensitive substring; |
| vsphere_list_hostsA | List ESXi hosts with hardware, version and live CPU/memory utilisation. Args:
name: Optional host name filter (substring, or glob with |
| vsphere_get_hostA | Full detail for one ESXi host, including attached VMs and datastores. Args:
host: Host name, managed object id ( |
| vsphere_list_resource_poolsA | List resource pools with their reservations, limits and current usage. Args: name: Optional resource pool name filter. limit: Maximum number of pools to return. offset: Number of matches to skip, for paging. |
| vsphere_search_inventoryA | Search the inventory by name across several object types at once. Useful when you know a name but not what kind of object it is, or when you need the managed object id to pass to another tool. Args:
query: Name to search for (substring, or glob with |
| vsphere_list_vmsA | List virtual machines with power state, resources and guest details. All filters are combined with AND. Results are capped; check the
Args:
name: VM name filter. Plain text matches as a case-insensitive
substring; |
| vsphere_get_vmA | Full detail for one virtual machine. Includes virtual hardware (disks and network adapters), guest networking and filesystem usage reported by VMware Tools, resource allocations, and the snapshot tree. Args:
vm: VM name, managed object id ( |
| vsphere_get_vm_summary_by_hostA | Aggregate VM counts and allocated resources per ESXi host. A quick capacity/placement overview: how many VMs sit on each host, how many are powered on, and how much vCPU and memory has been handed out. |
| vsphere_list_datastoresA | List datastores with capacity, free space and over-provisioning.
Args:
name: Datastore name filter (substring, or glob with |
| vsphere_list_networksA | List networks: standard port groups, distributed port groups and opaque networks. Distributed port groups additionally report their VLAN configuration and the distributed switch they belong to. Args:
name: Network name filter (substring, or glob with |
| vsphere_list_tasksA | List recent vSphere tasks, newest first. Use this to see what changed in the environment and whether an operation someone else started succeeded. Args:
entity: Restrict to tasks on this object and its children.
entity_type: What kind of object |
| vsphere_get_taskA | Check the state and progress of a single vSphere task. Tools that started work with Args:
task_id: The task's managed object id, e.g. |
| vsphere_list_running_tasksA | List the tasks vCenter is currently running or has just finished. |
| vsphere_list_eventsA | List recent vSphere events, newest first. Events are the audit trail of the environment: logins, configuration changes, HA actions, alarm transitions and hardware problems. Args:
entity: Restrict to events about this object and its children.
entity_type: What kind of object |
| vsphere_list_alarmsA | List every currently triggered alarm across the inventory. This is the fastest way to answer "what is unhealthy right now". Args:
status: Filter by severity: |
| vsphere_get_performanceA | Read CPU, memory, disk and network performance counters for a VM or host. Each counter comes back summarised (latest, average, minimum, maximum)
over the requested window. Args:
entity: VM or host name, managed object id, UUID or inventory path.
entity_type: Whether |
| vsphere_change_vm_power_stateA | Change the power state of a virtual machine. Prefer the guest actions when VMware Tools is running: Guest actions complete inside the guest and return as soon as vSphere
has passed the request to VMware Tools, so Requires permission mode Args:
vm: VM name, managed object id, UUID or inventory path.
action: One of |
| vsphere_list_snapshotsA | List the snapshots of a virtual machine as both a tree and a flat list. Each snapshot carries the Args: vm: VM name, managed object id, UUID or inventory path. |
| vsphere_create_snapshotA | Take a snapshot of a virtual machine. Snapshots are not backups: they grow with every write and degrade performance if left in place, so delete them once they are no longer needed. Requires permission mode Args: vm: VM name, managed object id, UUID or inventory path. name: Name for the new snapshot. description: Optional free-text description. include_memory: Capture the memory state too, so a revert returns the VM to a running state. Slower and larger. quiesce: Ask VMware Tools to quiesce the guest filesystem for a crash-consistent snapshot. Requires VMware Tools. wait: Wait for the snapshot task to finish. timeout_seconds: Override the default task timeout. |
| vsphere_revert_to_snapshotA | Revert a virtual machine to a snapshot, discarding later changes. Everything written since the snapshot was taken is lost. Requires
permission mode Args:
vm: VM name, managed object id, UUID or inventory path.
snapshot: Snapshot name, snapshot path ( |
| vsphere_delete_snapshotA | Delete one snapshot, a snapshot subtree, or every snapshot of a VM. Deleting a snapshot consolidates its data into the parent disk; the VM
keeps all current data. Requires permission mode Args:
vm: VM name, managed object id, UUID or inventory path.
snapshot: Snapshot name, path or moid. Ignored when |
| vsphere_clone_vmA | Clone a virtual machine or deploy one from a template. Placement defaults to the source VM's host, datastore, resource pool and
folder; override any of them individually. Cloning copies every disk, so
it can take a long time for large VMs -- pass Requires permission mode Args: vm: Source VM or template (name, moid, UUID or inventory path). name: Name for the new virtual machine. host: Target ESXi host. datastore: Target datastore for the clone's files. resource_pool: Target resource pool. folder: Target VM folder. power_on: Power the clone on once the clone completes. as_template: Register the clone as a template instead of a VM. wait: Wait for the clone task to finish. timeout_seconds: Override the default task timeout. |
| vsphere_reconfigure_vmA | Change a virtual machine's CPU count, memory size or notes. Unless CPU/memory hot-add is enabled on the guest, vSphere requires the VM to be powered off for resource changes and will reject the request otherwise. Only the supplied fields are changed. Requires permission mode Args:
vm: VM name, managed object id, UUID or inventory path.
cpu_count: New total number of virtual CPUs.
cores_per_socket: Cores per virtual socket. Must divide |
| vsphere_migrate_vmA | Move a virtual machine to another host, datastore or resource pool. Supplying Requires permission mode Args: vm: VM name, managed object id, UUID or inventory path. host: Destination ESXi host. datastore: Destination datastore. resource_pool: Destination resource pool. priority: vMotion scheduling priority. wait: Wait for the migration task to finish. timeout_seconds: Override the default task timeout. |
| vsphere_delete_vmA | Permanently delete a virtual machine and all of its files from disk. This cannot be undone. The VM must be powered off. Requires permission
mode Args:
vm: VM name, managed object id, UUID or inventory path.
confirm: Must be |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| troubleshoot_vm | Investigate why a virtual machine is slow, stuck or unreachable. |
| capacity_report | Summarise compute and storage capacity, utilisation and risks. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Inventory summary | Counts and totals for the whole vSphere inventory. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/ISH2YU/VMware-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server