Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VMWARE_AIOPS_CONFIG | No | Path to the YAML configuration file containing vCenter/ESXi targets. If not specified, the server typically looks for a config in ~/.vmware-aiops/config.yaml. |
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 |
|---|---|
| list_virtual_machines | List all virtual machines with name, power state, CPU, memory, guest OS, and IP. Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. |
| list_esxi_hosts | List all ESXi hosts with CPU cores, memory, version, VM count, and uptime. Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. |
| list_all_datastores | List all datastores with capacity, free space, type, and VM count. Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. |
| list_all_clusters | List all clusters with host count, DRS/HA status, and resource totals. Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. |
| get_alarms | Get all active/triggered alarms across the VMware inventory. Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. |
| get_events | Get recent vCenter/ESXi events filtered by severity. Args: hours: How many hours back to query (default 24). severity: Minimum severity level: "critical", "warning", or "info". target: Optional vCenter/ESXi target name from config. Uses default if omitted. |
| vm_info | Get detailed information about a specific VM (CPU, memory, disks, NICs, snapshots). Args: vm_name: Exact name of the virtual machine. target: Optional vCenter/ESXi target name from config. Uses default if omitted. |
| vm_power_on | Power on a virtual machine. Args: vm_name: Exact name of the virtual machine. target: Optional vCenter/ESXi target name from config. Uses default if omitted. |
| vm_power_off | Power off a virtual machine. Graceful shutdown by default, force if specified. Args: vm_name: Exact name of the virtual machine. force: If True, hard power off. If False, graceful guest shutdown. target: Optional vCenter/ESXi target name from config. Uses default if omitted. |
| browse_datastore | Browse files in a vSphere datastore directory. Use this to discover OVA, ISO, VMDK, and other files on datastores before deploying VMs. Args: datastore_name: Name of the datastore to browse. path: Subdirectory path (empty string for root). pattern: Glob pattern to filter files (e.g. ".ova", ".iso", "*"). target: Optional vCenter/ESXi target name from config. |
| scan_datastore_images | Scan all accessible datastores for deployable images (OVA/ISO/OVF/VMDK). Results are cached locally in ~/.vmware-aiops/image_registry.json for fast lookup via list_cached_images. Run this to refresh the cache. Args: target: Optional vCenter/ESXi target name from config. |
| list_cached_images | List deployable images from the local registry cache. Run scan_datastore_images first to populate the cache. Args: image_type: Filter by extension: "ova", "iso", "ovf", or "vmdk". datastore: Filter by datastore name. |
| deploy_vm_from_ova | Deploy a VM from a local OVA file. Parses the OVF descriptor, creates import spec, uploads VMDKs via HTTP NFC lease. Optionally powers on and creates a baseline snapshot. Args: ova_path: Local file path to the .ova file. vm_name: Desired name for the new VM. datastore_name: Target datastore for the VM. network_name: Network to attach (default "VM Network"). folder_path: VM folder path in vCenter (optional). power_on: Power on after deployment. snapshot_name: Create a baseline snapshot with this name (optional). target: Optional vCenter/ESXi target name from config. |
| deploy_vm_from_template | Deploy a new VM by cloning from a vSphere template. Args: template_name: Name of the source vSphere template. new_name: Name for the new VM. datastore_name: Target datastore (uses template's datastore if omitted). cpu: Override CPU count (optional). memory_mb: Override memory in MB (optional). power_on: Power on after deployment. snapshot_name: Create a baseline snapshot with this name (optional). target: Optional vCenter/ESXi target name from config. |
| deploy_linked_clone | Create a linked clone from a VM snapshot (near-instant, minimal disk). Linked clones share the source disk and use copy-on-write delta disks. This is the fastest provisioning method. Args: source_vm_name: Source VM to clone from. snapshot_name: Snapshot on the source VM to use as clone base. new_name: Name for the new linked clone. cpu: Override CPU count (optional). memory_mb: Override memory in MB (optional). power_on: Power on after creation. baseline_snapshot: Create a new snapshot on the clone (optional). target: Optional vCenter/ESXi target name from config. |
| attach_iso_to_vm | Attach an ISO from a datastore to a VM's CD-ROM drive. Args: vm_name: Target VM name. iso_ds_path: Datastore path, e.g. "[datastore1] iso/ubuntu.iso". target: Optional vCenter/ESXi target name from config. |
| convert_vm_to_template | Convert a powered-off VM to a vSphere template. After conversion the VM cannot be powered on — it serves as a clone source for deploy_vm_from_template. Args: vm_name: Name of the VM to convert (must be powered off). target: Optional vCenter/ESXi target name from config. |
| batch_clone_vms | Batch clone multiple VMs from a source VM (gold image). Each clone: full copy → optional reconfigure → optional snapshot → optional power on. Args: source_vm_name: Source VM to clone from. vm_names: List of names for the new VMs. cpu: Override CPU count for all clones (optional). memory_mb: Override memory for all clones (optional). snapshot_name: Create a baseline snapshot on each clone (optional). power_on: Power on each clone after creation. target: Optional vCenter/ESXi target name from config. |
| batch_linked_clone_vms | Batch create linked clones from a VM snapshot (fastest batch provisioning). Each clone shares the source disk via copy-on-write. Args: source_vm_name: Source VM to clone from. snapshot_name: Snapshot to use as clone base. vm_names: List of names for the new linked clones. cpu: Override CPU count (optional). memory_mb: Override memory (optional). power_on: Power on each clone. baseline_snapshot: Create a new snapshot on each clone (optional). target: Optional vCenter/ESXi target name from config. |
| batch_deploy_from_spec | Batch deploy VMs from a YAML specification file. The YAML spec supports all provisioning channels:
Args: spec_path: Path to the deploy.yaml specification file. target: Optional vCenter/ESXi target name from config. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |