VMware-Monitor
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| VMWARE_MONITOR_CONFIG | No | Path to the YAML configuration file (e.g., /path/to/config.yaml). Defaults to ~/.vmware-monitor/config.yaml if not provided. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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_machinesA | [READ] List virtual machines, with filtering, sorting, and field selection. Returns the family list envelope {items, returned, limit, total, truncated,
hint}; Use this to resolve an exact VM name, then get_vm_info for detail or investigate_vm to drill into one; for a fleet-wide view start at get_cluster_health_summary instead. |
| list_esxi_hostsA | [READ] List ESXi hosts with CPU cores, memory, version, VM count, and uptime. Returns the list envelope; |
| list_all_datastoresA | [READ] List datastores with capacity, free space, type, and VM count. Returns the list envelope with a real |
| list_all_clustersA | [READ] List clusters with host count, DRS/HA status, and resource totals. Returns the list envelope with a real |
| get_cluster_health_summaryA | [READ] One-glance health rollup for every cluster — "is anything on fire?". Start here for single-vCenter triage. Batches hosts, VM power state, live
CPU/memory pressure and alarms per cluster, scores each "ok"/"warn"/
"critical", and ranks the anomalies into Returns {totals, top_issues, issues_total, clusters, snapshot,
customization_hint} — not the list envelope. Lead with Then drill into what |
| investigate_vmA | [READ] "What is happening around this VM?" — one correlated drill-down. Use this instead of stitching get_vm_info + list_vm_snapshots + get_alarms + get_vm_performance + get_events yourself. Returns one correlated bundle (not the list envelope): the VM's state, its host, cluster and backing datastores, its snapshots and triggered alarms, live performance, and a merged event timeline across VM/host/cluster/datastore (newest first). All reads are batched. Explain it in operational language; do not dump it raw. Reach for it after get_cluster_health_summary names a problem VM, or when asked "what's going on with ?". Point-in-time snapshot — no trending. Acting on what you find (power, migrate, delete snapshot) belongs to vmware-aiops. |
| investigate_hostA | [READ] "What is happening around this ESXi host?" — one correlated drill-down. Use this instead of stitching list_esxi_hosts + get_host_performance + get_alarms
Reach for it after get_cluster_health_summary flags a host. Point-in-time snapshot — no trending; for syslog lines use scan_host_logs. Acting on a finding (maintenance mode, evacuate) belongs to vmware-aiops. |
| investigate_datastoreA | [READ] "What is happening around this datastore?" — one correlated drill-down. Use this instead of stitching list_all_datastores + get_datastore_capacity + get_alarms + get_events yourself. Returns one correlated bundle (not the list envelope): capacity / free space / accessibility, the hosts that mount it, a rollup of the VMs it backs, alarms across datastore/host, and a merged event timeline. All reads are batched. Explain it in operational language; do not dump it raw. Per-datastore latency is not included. Reach for it after get_cluster_health_summary flags storage pressure. Point-in-time snapshot — no trending. Freeing space (deleting snapshots, storage vMotion) belongs to vmware-aiops. |
| get_cross_vcenter_attentionA | [READ] "What needs attention now?" across EVERY configured vCenter — one list. Start here when the estate has more than one vCenter. Rolls every configured
target's cluster-health summary into one globally ranked Degrades gracefully: an unreachable target is listed under |
| list_all_networksA | [READ] List networks with name, attached VM count, and accessibility. Returns the list envelope with a real |
| get_alarmsA | [READ] Get active/triggered alarms across the VMware inventory. Returns the list envelope with a real Use this for the raw alarm list; prefer get_cluster_health_summary when you want alarms folded into a whole-cluster verdict. Then drill into the flagged object with investigate_vm or investigate_host. |
| get_eventsA | [READ] Get recent vCenter/ESXi events filtered by severity. Returns the list envelope, newest first. Up to 5000 events in the window are
read; when more matched, Severity is this skill's own ranking where it has one, and otherwise
vCenter's published event catalogue. An event neither can rank comes back
with severity "unknown" (it is returned, not filtered out) and is counted in
the envelope's Use this for an inventory-wide event sweep. When you already know the object, prefer investigate_vm / investigate_host instead: they return the same events correlated with that object's state in one call. ESXi syslog lines are not events — use scan_host_logs for those. |
| get_host_sensorsA | [READ] Get hardware sensor status (temperature, voltage, fan, ...) for all hosts. Returns the list envelope with a real Use this for physical hardware only — for CPU/memory load use get_host_performance, and follow up on a red sensor with investigate_host to see the alarms and events around that host. |
| get_host_servicesA | [READ] Get host service status (running state and startup policy). Returns the list envelope; each row has host, service key, label, running (bool)
and policy (on/off/automatic). Every matching host is enumerated, so
Use this to check whether SSH, NTP or the firewall service is in the expected state. For NTP specifically prefer get_ntp_status, which also reports the configured servers. Starting or stopping a service is a write — this skill cannot do it; use vmware-aiops. |
| scan_host_logsA | [READ] Scan recent ESXi host syslog lines for error/warning patterns. Reads the last Use this when get_events or investigate_host show a host in trouble
but not why: vCenter events and ESXi syslog are different sources. Filter
with |
| get_vm_infoA | [READ] Get detailed information about one VM (CPU, memory, disks, NICs, snapshots). Returns a single detail dict, not the list envelope. Static configuration only — for live CPU/memory use get_vm_performance, and for the same VM correlated with its host, alarms and events use investigate_vm. Use this when you already know the exact name; get it from list_virtual_machines first, since an unknown name returns a teaching error rather than a match. Reconfiguring the VM belongs to vmware-aiops. |
| list_vm_snapshotsA | [READ] List all snapshots of one VM, including the nesting hierarchy. Returns the list envelope, one row per snapshot with name, description, created
timestamp, state and level (0 = root; children are level+1). Empty Use this for one known VM; prefer find_aging_snapshots to sweep the whole inventory for old or sprawling snapshots. Get the name from list_virtual_machines first — an unknown name returns a teaching error. |
| get_host_performanceA | [READ] Real-time CPU/memory/disk/network utilisation per ESXi host. Returns the list envelope with a real Use this to find which host is hot, then investigate_host to drill into it, or get_vm_performance to see which VMs on it are driving the load. |
| get_vm_performanceA | [READ] Real-time CPU/memory/disk/network utilisation per virtual machine. Returns the list envelope with a real Use this to rank load across VMs; for one VM's configuration use get_vm_info, and to see the same VM correlated with its host, alarms and events use investigate_vm. |
| find_aging_snapshotsA | [READ] Sweep ALL VMs for snapshots and flag old / sprawling ones. Use this for fleet-wide snapshot sprawl; prefer list_vm_snapshots when you only care about one VM. Returns {total_snapshots, old_snapshots, vms_with_snapshots, threshold_days, snapshots[], hint} — a rollup, not the list envelope. 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 — deleting snapshots belongs to vmware-aiops. |
| get_vm_backup_snapshot_historyA | [READ] How long backups held a snapshot open on one VM, from task history. Image-level backup products (Veeam, Commvault, Rubrik, NetBackup) snapshot the VM, copy the frozen disks, then delete the snapshot. vCenter records both ends, so the backup window is recoverable without credentials for the backup server. This is a LOWER BOUND on the job, not its duration: work the product does
before the snapshot is taken and after it is removed is invisible to
vCenter. The returned Returns a rollup, not the list envelope: counts, four hour statistics
(backup_active / snapshot_present / total_window / snapshot_removal),
latest_cycle, longest_cycle, and Read two fields before reporting all-clear. An unmatched creation is not a failed backup. Each one carries The creation task itself, during the seconds it executes, is absent
entirely: no completion time yet, so it forms neither a cycle nor an
Duplicate VM names raise rather than resolve to one, because a duration attributed to the wrong same-named VM looks exactly like a correct answer. For snapshots that exist right now use list_vm_snapshots or find_aging_snapshots. |
| get_certificate_statusA | [READ] Per-host ESXi management certificate expiry. An expired ESXi cert drops host management — this surfaces it before the
outage. Returns the list envelope with a real Use this alongside get_license_status and get_ntp_status for a platform-hygiene sweep. Renewing a certificate is a write this skill cannot do; use vmware-aiops or vCenter directly. |
| get_license_statusA | [READ] vCenter/ESXi license inventory with usage and expiry. Returns the list envelope, one row per license: name, edition_key, total/used
units, unlimited flag (row total == 0) and expiration. Every license is
enumerated, so Use this to catch over-allocation or an approaching expiry, alongside
get_certificate_status and get_ntp_status for a platform-hygiene sweep. |
| get_ntp_statusA | [READ] Per-host NTP configuration health (servers + ntpd service state). Returns the list envelope; every matching host is enumerated, so healthy/ntp_servers/ntpd_running are null — not false/empty — for a host
vCenter could not reach or could not read. Null means nothing was observed;
false means NTP is misconfigured. Filtering rows for The envelope's Prefer this over get_host_services for time problems: that tool reports whether ntpd runs but not which servers are configured. Fixing NTP is a write; use vmware-aiops. |
| get_datastore_capacityA | [READ] Per-datastore capacity with thin-provisioning over-commit. Returns the list envelope with a real Whose figure: Use this for the capacity view, then investigate_datastore to drill into a specific datastore's hosts, VMs and alarms. Reclaiming space (delete snapshots, storage vMotion) belongs to vmware-aiops. |
| get_resource_pool_usageA | [READ] Per-resource-pool CPU/memory reservation, limit, and current usage. Returns the list envelope with a real Use this when a VM is throttled but its host is not busy — the cap is usually the pool. Then get_vm_performance to see which VMs in it are demanding, or get_cluster_health_summary for the cluster-level picture. |
| list_active_tasksA | [READ] In-flight (and optionally just-completed) vCenter tasks. Answers "why is the cluster busy?". Returns the list envelope {items, returned,
limit, total, truncated, hint} with a real Use this before blaming load: a migration or clone in flight explains pressure that get_host_performance shows. Pair with list_active_sessions to see who started it. Read-only — cancelling a task belongs to vmware-aiops. |
| list_active_sessionsA | [READ] Currently authenticated vCenter/ESXi sessions (who is logged in). Returns the list envelope with a real Use this to attribute a change to a person — pair it with list_active_tasks, which names the user who started each task. Read-only — terminating a session is not supported here. |
| get_access_infoA | [READ] The account this server uses on a target, and whether it holds a tool's privileges. When to use: a tool failed with NoPermission, returned fewer objects than
expected, or you want to know up front what the configured account may read.
Ask about one What it returns: {target, account, checked_on, privileges {id: state}, and
either Gotchas: privileges are checked on the vCenter/ESXi root folder only.
|
| get_host_memory_tieringA | [READ] Per-host memory tiering (vSphere 9.1) and NVMe uplift ratio. When to use: to see which ESXi hosts back RAM with NVMe (memory tiering, 8.0U3+), how large each tier is, and how much of a host's apparent memory rides on NVMe rather than DRAM. This is the only source of measured tier byte sizes. Returns the list envelope {items, returned, limit, total, truncated, hint}. Each row: host, tiering_type (noTiering|hardwareTiering|softwareTiering), tiering_active, dram_gb, nvme_gb, total_tiered_gb, uplift_ratio (total/DRAM, None if DRAM unknown), and a per-tier breakdown. A host with tiering off reads as tiering_type "noTiering", nvme_gb 0.0 — that is a real "checked, none", not a gap. Gotchas: reads pyVmomi HostSystem.hardware.memoryTierInfo (needs ESXi 8.0U3+/9.x); older hosts report tiering_type "unknown". Read-only. |
| get_cluster_patch_complianceA | [READ] vLCM software (patch) compliance for one cluster (vSphere Automation REST). When to use: to check whether a cluster's hosts match their assigned software image/baseline before or after a patch cycle. Complements get_host_memory_tiering (that is per-host hardware; this is per-cluster lifecycle state). What it returns: {available, cluster, status, hosts_total, non_compliant_hosts,
scan_time, note, fields}. Gotchas: |
| get_cluster_last_apply_resultA | [READ] Result of the last vLCM remediation (apply) on one cluster (REST). When to use: after a patch/remediation, to confirm the last apply succeeded and when it finished. Use get_cluster_patch_compliance for current drift; use this for the outcome of the most recent apply. What it returns: {available, cluster, status, end_time, note, fields}, read
defensively. A cluster never remediated may return a "not found" teaching error;
a 503 yields Gotchas: |
| get_vcenter_deployment_sizeA | [READ] vCenter appliance deployment size (NEW in vSphere 9.1, REST). When to use: to read the vCenter appliance's current (and, where reported, target) deployment size class — capacity-planning context that inventory/perf tools do not cover. What it returns: {available, note, fields} where Gotchas: 9.1-only endpoint — an older vCenter returns |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 33 tools
The set layers list/get/investigate/performance tools for the same resources (VMs, hosts, datastores, clusters), so overlap exists, but descriptions explicitly route agents between them (e.g., list_virtual_machines to resolve a name, get_vm_info for config, investigate_vm for a correlated bundle). Most selections are clear, though a few depth-based choices remain easy to confuse.
All names use snake_case verb_noun patterns with consistent prefixes: list_ for collections, get_ for details/metrics, investigate_ for correlated drill-downs, find_/scan_ for sweeps. Minor variance like list_all_clusters vs list_virtual_machines does not break the predictable convention.
33 read-only tools is well above the practical 3–15 range and past the 25+ 'too many' threshold, creating significant selection overhead even for a broad vSphere monitoring domain. Each tool has a narrow niche, but the volume is heavy for an agent-facing set.
Coverage spans clusters, hosts, VMs, datastores, networks, snapshots, performance, alarms, events, sensors, services, logs, certificates, licenses, capacity, tasks, sessions, and newer vLCM/tiering endpoints. Gaps remain for vSAN health, vCenter appliance certificate, datastore latency, and historical trending, though agents can often work around these via other servers or vCenter directly.