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. |
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_machinesA | [READ] List virtual machines with optional filtering, sorting, and field selection. Returns a dict: {total, mode, vms, hint}. Each VM entry includes a
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: |
| 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). |
| cluster_health_summaryA | [READ] One-glance health rollup for every cluster — "is anything on fire?". Aggregates hosts, VM power state, live CPU/memory pressure, and triggered
alarms per cluster in three batched server-side passes (not one call per
object), assigns each cluster an opinionated status ("ok"/"warn"/"critical"),
AND flattens the individual anomalies into a ranked Returns {totals, top_issues, issues_total, clusters, snapshot,
customization_hint}. Lead with Args: target: Optional vCenter/ESXi target name from config. Uses default if omitted. cluster_filter: Case-insensitive substring to show only matching clusters (None = all clusters plus a standalone-hosts row). include_vms: Roll up VM total/powered-on counts (default True). Set False to skip the VM inventory pass on very large fleets when you only need host/alarm/capacity signals. top_n: Cap the top_issues focus list at this many entries (default 10). Use 5 for an even tighter view, or 0 to omit the list. |
| vm_investigation_bundleA | [READ] "What is happening around this VM?" — one correlated drill-down. Collects and correlates everything around a single VM so you don't stitch get_vm_info + list_snapshots + get_alarms + get_vm_performance + get_recent_events yourself (which a smaller model often mis-orders): the VM's state, the host it runs on, its cluster context, the datastores backing it, its snapshots and triggered alarms, live performance, and a merged event timeline correlating recent events from the VM, host, cluster and datastores (newest first). All cross-object reads are batched — cheap even on large fleets. Aggregation happens in the tool; explain the result in operational language, do not dump it raw. Use this AFTER cluster_health_summary points at a problem VM, or whenever the operator asks "what's going on with ?". Point-in-time snapshot — no trending. Args: vm_name: Exact VM name. Unknown names return a teaching error naming how to list VMs. Get the name from list_vms or cluster_health_summary first. target: Optional vCenter/ESXi target name from config (default target if omitted). hours: Event-timeline look-back window in hours (default 24). |
| host_investigation_bundleA | [READ] "What is happening around this ESXi host?" — one correlated drill-down. Collects and correlates everything around a single host: its state (connection, CPU/memory pressure, ESXi version, uptime), its cluster context, a rollup of the VMs it runs (total / powered-on + a sample), the datastores it mounts, triggered alarms across host/cluster/datastore, live performance, and a merged event timeline correlating recent events from the host, cluster and datastores. All reads are batched. Aggregation happens in the tool; explain it in operational language, do not dump it raw. Use this AFTER cluster_health_summary flags a host, or when the operator asks "what's going on with host ?". Point-in-time snapshot — no trending. Args: host_name: Exact ESXi host name. Unknown names return a teaching error. Get the name from list_esxi_hosts or cluster_health_summary first. target: Optional vCenter/ESXi target name from config (default if omitted). hours: Event-timeline look-back window in hours (default 24). |
| datastore_investigation_bundleA | [READ] "What is happening around this datastore?" — one correlated drill-down. Collects and correlates everything around a single datastore: its capacity / free space / accessibility, the hosts that mount it, a rollup of the VMs it backs (total / powered-on + a sample), triggered alarms across datastore/host, and a merged event timeline correlating recent events from the datastore and its hosts. All reads are batched. Aggregation happens in the tool; explain it in operational language, do not dump it raw. (Per-datastore latency is a separate perf report, not included here.) Use this AFTER cluster_health_summary flags storage pressure, or when the operator asks "what's going on with datastore ?". Point-in-time snapshot — no trending. Args: datastore_name: Exact datastore name. Unknown names return a teaching error. Get the name from list_all_datastores or datastore_capacity first. target: Optional vCenter/ESXi target name from config (default if omitted). hours: Event-timeline look-back window in hours (default 24). |
| cross_vcenter_attentionA | [READ] "What needs attention now?" across EVERY configured vCenter — one list. Rolls every configured target's cluster-health summary into a single, globally
ranked Degrades gracefully: a target that cannot be reached (or errors mid-summary) is
listed under Args:
cluster_filter: Case-insensitive cluster substring applied to every target
(None = all clusters).
top_n: Cap the merged top_issues focus list (default 10). |
| 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 Only errors/warnings are returned, not the full log, so output stays small
even on large clusters. Filter to one host with 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 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 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 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
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
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/zw008/vmware-monitor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server