Skip to main content
Glama
zw008

VMware-Monitor

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
VMWARE_MONITOR_CONFIGNoPath to the YAML configuration file (e.g., /path/to/config.yaml). Defaults to ~/.vmware-monitor/config.yaml if not provided.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_virtual_machinesA

[READ] List virtual machines with optional filtering, sorting, and field selection.

Returns a dict: {total, mode, vms, hint}. Each VM entry includes a folder_path field showing the vCenter inventory folder path (e.g. /Colocation/Colo - ISER).

Auto-compact: when no limit/fields are set and inventory exceeds 50 VMs, returns compact fields (name, power_state, cpu, memory_mb, folder_path) to keep context manageable. Set limit or fields to override.

Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of VMs to return (None = all). sort_by: Sort field: "name" | "cpu" | "memory_mb" | "power_state" | "folder_path". power_state: Filter by power state: "poweredOn" | "poweredOff" | "suspended". fields: Return only these fields (None = auto-select based on inventory size). Available: name, power_state, cpu, memory_mb, guest_os, ip_address, host, uuid, tools_status, folder_path. folder_filter: Case-insensitive substring match against folder_path. Example: folder_filter="Colocation" returns VMs anywhere under a Colocation folder, including nested subfolders.

list_esxi_hostsA

[READ] List ESXi hosts with CPU cores, memory, version, VM count, and uptime.

Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of hosts to return (None = all).

list_all_datastoresA

[READ] List datastores with capacity, free space, type, and VM count.

Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of datastores to return (None = all).

list_all_clustersA

[READ] List clusters with host count, DRS/HA status, and resource totals.

Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of clusters to return (None = all).

list_all_networksA

[READ] List networks with name, attached VM count, and accessibility.

Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of networks to return (None = all).

get_alarmsA

[READ] Get active/triggered alarms across the VMware inventory.

Each alarm includes suggested_actions with ready-to-use hints pointing to the correct companion skill and tool for remediation.

Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of alarms to return (None = all). Use when many alarms are active.

get_eventsA

[READ] 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.

get_host_sensorsA

[READ] Get hardware sensor status (temperature, voltage, fan, ...) for all hosts.

Each entry includes host, sensor_name, type, reading, unit, and status (green/yellow/red from healthState.key). Use to spot failing hardware before it causes an outage. Returns an empty list when no host exposes sensor data (e.g. nested ESXi).

Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of sensor rows to return (None = all).

get_host_servicesA

[READ] Get host service status (running state and startup policy).

Each entry includes host, service key, label, running (bool), and policy (on/off/automatic). Use to check whether SSH, NTP, or the firewall service is in the expected state.

Args: host_name: Filter to a single host by exact name (None = all hosts). target: Optional vCenter/ESXi target name from config. Uses default if omitted.

host_log_scanA

[READ] Scan recent ESXi host syslog lines for error/warning patterns.

Reads the last lines entries of the hostd/vmkernel/vpxa logs on each host via the diagnostic system and returns only the lines matching known trouble patterns (error, fail, critical, panic, lost access, timeout, …). Each entry has severity, source (host_log:<key>), message, time, and entity (host name). Returns an empty list when no matching lines are found.

Only errors/warnings are returned, not the full log, so output stays small even on large clusters. Filter to one host with host_name to keep the scan fast on environments with many hosts.

Args: host_name: Filter to a single host by exact name (None = all hosts). lines: How many recent lines per log to scan (default 500). target: Optional vCenter/ESXi target name from config. Uses default if omitted.

vm_infoA

[READ] 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_list_snapshotsA

[READ] List all snapshots of a VM, including the nesting hierarchy.

Returns one entry per snapshot with name, description, created timestamp, state, and level (0 = root; children are level+1). Returns an empty list when the VM has no snapshots. Read-only — this skill cannot create, revert, or delete snapshots (use vmware-aiops for those operations). Exposes the same data as the CLI command vmware-monitor vm snapshot-list (was missing from MCP until 2026-06-08 — CLI/MCP parity, 踩坑 #34).

Args: vm_name: Exact name of the virtual machine. target: Optional vCenter/ESXi target name from config. Uses default if omitted.

host_performanceA

[READ] Real-time CPU/memory/disk/network utilisation per ESXi host.

Unlike list_esxi_hosts (static config: cores, total GB), this returns LIVE utilisation from the 20-second PerfManager interval: cpu_usage_pct, mem_usage_pct, mem_consumed_mb, disk_kbps, net_kbps. Busiest hosts first. Disconnected hosts and hosts without a real-time provider are skipped (not reported as zero). Point-in-time only — no historical trend is retained.

Args: host_name: Filter to a single host by exact name (None = all hosts). target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of host rows to return (None = all).

vm_performanceA

[READ] Real-time CPU/memory/disk/network utilisation per virtual machine.

LIVE utilisation (cpu_usage_pct, mem_usage_pct, mem_consumed_mb, disk_read_kbps, disk_write_kbps, net_kbps), busiest VMs first. Only powered-on VMs have a real-time provider; powered-off VMs are skipped. Defaults to the top 25 — pass limit=None for the full fleet. Point-in-time only; for trends use a metrics store.

Args: vm_name: Filter to a single VM by exact name (None = all powered-on VMs). target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of VM rows to return (default 25; None = all).

snapshot_agingA

[READ] Sweep ALL VMs for snapshots and flag old / sprawling ones.

Where vm_list_snapshots covers one VM, this scans the whole inventory and judges age. Returns {total_snapshots, old_snapshots, vms_with_snapshots, threshold_days, snapshots[], hint}. Each row has age_days, is_old, and an est_size_mb lower-bound (snapshotData+snapshotMemory; delta-disk growth is not separable per-snapshot via the API). Read-only — delete snapshots via vmware-aiops.

Args: age_threshold_days: Age above which a snapshot is flagged "old" (default 30). only_old: When True, return only snapshots older than the threshold. target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of snapshot rows to return (None = all).

certificate_statusA

[READ] Per-host ESXi management certificate expiry.

An expired ESXi cert drops host management — this surfaces it before the outage. Returns host, not_after, days_until_expiry, and an expiring flag (within warn_days or already expired), soonest-to-expire first. Uses the API-native certificateInfo (no PEM parsing).

Args: warn_days: Flag certs expiring within this many days (default 30). target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of host rows to return (None = all).

license_statusA

[READ] vCenter/ESXi license inventory with usage and expiry.

Returns one row per license: name, edition_key, total/used units, unlimited flag (total==0), and expiration. Use to catch over-allocation or an approaching license expiry.

Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted.

ntp_statusA

[READ] Per-host NTP configuration health (servers + ntpd service state).

Returns host, ntp_servers, ntpd_running, ntpd_policy, and a healthy flag (servers configured AND ntpd running). NOTE: the SOAP API does not expose the live clock offset/stratum — this reports configuration health only (the actionable signal). For actual offset use esxcli on the host.

Args: host_name: Filter to a single host by exact name (None = all hosts). target: Optional vCenter/ESXi target name from config. Uses default if omitted.

datastore_capacityA

[READ] Per-datastore capacity with thin-provisioning over-commit.

Adds the risk signal list_all_datastores lacks: overcommit_pct (provisioned / capacity * 100). Over 100% means more space is promised to VMs than physically exists — a thin datastore can fill up while still showing free space. Returns capacity_gb, free_gb, committed_gb, provisioned_gb, used_pct, overcommit_pct; riskiest first. Point-in-time.

Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of datastore rows to return (None = all).

resource_pool_usageA

[READ] Per-resource-pool CPU/memory reservation, limit, and current usage.

Returns name, cpu_reservation_mhz, cpu_limit_mhz, cpu_usage_mhz, mem_reservation_mb, mem_limit_mb, mem_usage_mb. A limit of -1 means unlimited. Use to spot pools near their reservation/limit. Sorted by memory usage descending.

Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of pool rows to return (None = all).

active_tasksA

[READ] In-flight (and optionally just-completed) vCenter tasks.

Answers "why is the cluster busy?". Returns name, entity, state, progress_pct, start_time, user, active flag, and error (for failed recent tasks). Running/queued first. Read-only — cancel tasks via vmware-aiops.

Args: include_recent: Also include recently completed/failed tasks (default True). target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of task rows to return (None = all).

active_sessionsA

[READ] Currently authenticated vCenter/ESXi sessions (who is logged in).

Returns user_name, full_name, login_time, last_active, ip_address, and a current flag for this skill's own session. Requires Sessions privilege; low-privilege accounts get a single explanatory row instead of a traceback. Read-only — terminating sessions is not supported here.

Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. limit: Max number of session rows to return (None = all).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/zw008/vmware-monitor'

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