Install
$ agentstack add skill-vmware-skills-vmware-monitor-vmware-monitor ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README — it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming — see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps — measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
VMware Monitor (Read-Only)
> Disclaimer: This is a community-maintained open-source project and is not affiliated with, endorsed by, or sponsored by VMware, Inc. or Broadcom Inc. "VMware" and "vSphere" are trademarks of Broadcom. Source code is publicly auditable at github.com/vmware-skills/VMware-Monitor under the MIT license.
Read-only VMware vCenter/ESXi monitoring — 27 MCP tools, zero destructive code.
> Code-level safety: This skill contains NO power, create, delete, snapshot, or modify operations. Not disabled — they don't exist in the codebase. > Companion skills: vmware-aiops (VM lifecycle), vmware-storage (iSCSI/vSAN), vmware-vks (Tanzu Kubernetes), vmware-nsx (NSX networking), vmware-nsx-security (DFW/firewall), vmware-aria (metrics/alerts/capacity), vmware-avi (AVI/ALB/AKO), vmware-harden (compliance baselines). > | [vmware-pilot](../vmware-pilot/SKILL.md) (workflow orchestration) | [vmware-policy](../vmware-policy/SKILL.md) (audit/policy)
What This Skill Does
All 27 tools are read-only.
| Category | Capabilities | |----------|-------------| | Cluster Triage | One-glance cluster_health_summary — cross-cluster Problems/Capacity/Health rollup with an opinionated status; customizable view | | Object Investigation | "What is happening around this VM / host / datastore?" — one correlated drill-down bundle per object, plus cross_vcenter_attention — one ranked "what needs attention now?" list across every configured vCenter | | Inventory | List VMs, ESXi hosts, datastores, clusters, networks | | Health | Active alarms, recent events (filter by severity/time), hardware sensors, host services | | Performance | Real-time host & VM CPU/memory/disk/network utilisation (PerfManager) | | Capacity | Datastore thin-provisioning over-commit, resource-pool reservation/usage | | Infra Health | ESXi certificate expiry, license usage/expiry, NTP configuration health | | Snapshots | Inventory-wide snapshot aging & sprawl (flag old snapshots) | | Activity | In-flight tasks, active login sessions | | VM Details | CPU, memory, disks, NICs, snapshots, guest OS, IP | | Scanning | Scheduled alarm/log scanning with Slack/Discord webhooks |
Quick Install
uv tool install vmware-monitor
vmware-monitor doctor
When to Use This Skill
- List or search VMs, hosts, datastores, clusters
- Check active alarms or recent events
- Get detailed info about a specific VM
- Set up scheduled monitoring with webhook alerts
- Any read-only VMware query where safety is paramount
Alarm/Event Output: suggested_actions Field
get_alarms and get_events results include a suggested_actions list. Each item is a ready-to-use hint naming the correct companion skill and tool call (e.g. "vmware-aiops: acknowledge_vcenter_alarm(entity_name=..., alarm_name=...)"), so agents — especially smaller local models — can follow them directly without reasoning about skill routing. Example payload: references/capabilities.md.
Use companion skills for:
- Power on/off, deploy, clone, migrate -->
vmware-aiops - iSCSI, vSAN, datastore management -->
vmware-storage - Tanzu Kubernetes clusters -->
vmware-vks - Load balancing, AVI/ALB, AKO, Ingress -->
vmware-avi
Related Skills — Skill Routing
| User Intent | Recommended Skill | |-------------|------------------| | Read-only vSphere monitoring, zero risk | vmware-monitor ← this skill | | Storage: iSCSI, vSAN, datastores | vmware-storage | | VM lifecycle, deployment, guest ops | vmware-aiops | | Tanzu Kubernetes (vSphere 8.x+) | vmware-vks | | NSX networking: segments, gateways, NAT | vmware-nsx | | NSX security: DFW rules, security groups | vmware-nsx-security | | Aria Ops: metrics, alerts, capacity planning | vmware-aria | | Multi-step workflows with approval | vmware-pilot | | Compliance baselines (CIS / 等保 / PCI-DSS), drift detection, LLM remediation advisor | vmware-harden (uv tool install vmware-harden) | | Load balancer, AVI, ALB, AKO, Ingress | vmware-avi (uv tool install vmware-avi) | | Audit log query | vmware-policy (vmware-audit CLI) |
Common Workflows
> Diagnostic investigations: Before running any "why is X failing / down / abnormal" workflow, follow [references/investigation-protocol.md](references/investigation-protocol.md). It enforces the four root-cause completeness criteria (falsifiability / sufficiency / necessity / mechanism) and the up-to-three-rounds deepening loop. Since vmware-monitor is read-only, it serves as the data source — actuation belongs to companion skills like vmware-aiops.
Cluster Health Check ("is anything on fire?" / "what's wrong right now?")
Judgment: this is the 5-second triage glance, not an Aria replacement. One call rolls every cluster's hosts, VM power, live CPU/memory and alarms up, flattens the individual anomalies into a ranked top-N focus list (top_issues), and gives each cluster an opinionated status. On a big fleet, lead with the focus list — scanning per-cluster rows is too slow.
- One glance -->
vmware-monitor summary(MCP:cluster_health_summary). Readtop_issuesfirst (worst first, each with a drill-downnext step); the per-cluster table is context.issues_totalshows how many anomalies existed before the top-N cap - Tighten or widen the focus -->
--top 5for the 5 most urgent,--top 20for more,--top 0to hide the list and just see the table - Drill into what the list points at --> e.g. a
host_downrow →inventory hosts; analarmrow →get_alarms; acapacityrow →perf hosts/capacity datastores; scope with--cluster prod-a - Reshape the view on request --> the output ends with a friendly hint; the operator can say "add datastore free space", "drop the DRS column", "only show clusters needing attention", or "save this as an HTML page". Default layout, columns, and thresholds live in [
references/health-summary-template.md](references/health-summary-template.md) and are meant to be edited - Save an offline snapshot -->
vmware-monitor summary --htmlwrites a self-contained HTML file (no external assets, nothing uploaded) to~/vmware-health/cluster-health--.html;--html-pathfor an explicit path. The timestamped filename means a folder of them becomes a browsable point-in-time history. It is a snapshot, not a live page — re-run to refresh - On a very large fleet --> add
--no-vmsto skip the VM rollup pass when you only need host/alarm/capacity signals - If it returns zero clusters --> the target may be a standalone ESXi host (no clusters); use
inventory hosts+health alarmsinstead
Daily Health Check
Judgment: alarms tell you what vCenter has decided is wrong, events tell you what happened. They diverge — an event burst with no alarms often signals a metric threshold miscalibration, not "everything is fine." Read both.
- Check alarms -->
vmware-monitor health alarms --target prod-vcenter— focus on Red severity AND alarms older than 1 hour (transient ones self-clear) - Review recent events -->
vmware-monitor health events --hours 24 --severity warning— look for repeated events from the same entity (a single event is noise; 50 events in an hour is a pattern) - List hosts -->
vmware-monitor inventory hosts— flag hosts disconnected, in maintenance mode unexpectedly, or memory > 90% - If connection fails --> run
vmware-monitor doctorto diagnose config/network issues
Object-Centered Investigation ("what is happening around this VM / host / datastore?")
Judgment: this is the drill-down the operator wants after triage points at a problem — one call correlates the object with its surrounding infrastructure and recent history, so you explain the aggregated result in operational language instead of stitching five tools yourself. The tool aggregates; you never dump raw inventory into the conversation.
Offer the levels progressively — do not ask for details the environment already fixes:
- Start at the top -->
cross_vcenter_attention(CLI:vmware-monitor attention) for "what needs attention now?" across every vCenter. If only one vCenter is configured, skip straight to itscluster_health_summary— no need to ask which target - Offer to drill into an object the top-issues list points at. Ask which level only when it is genuinely ambiguous:
- a VM -->
vm_investigation_bundle(CLI:vmware-monitor investigate vm) → VM state, recent events, snapshots, alarms & recent changes, the host it runs on, the cluster context, the datastores backing it, performance signals, and a correlated event timeline - a host -->
host_investigation_bundle(CLI:investigate host) → host state, cluster context, the VMs it runs, mounted datastores, alarms, performance, correlated timeline - a datastore -->
datastore_investigation_bundle(CLI:investigate datastore) → capacity/free, mounting hosts, VMs it backs, alarms, correlated timeline
- Widen or narrow on request -->
--hours 72for a longer event window; the bundle ends with a hint listing what is adjustable - Make it tangible --> add
--htmlto anyinvestigate/attentioncommand for a self-contained offline snapshot (drill-down sections collapse/expand natively, no JS, nothing uploaded) written to~/vmware-health/ - If the object name is unknown --> the tool returns a teaching error naming exactly how to list the objects (
list_virtual_machines/list_esxi_hosts/list_all_datastores); get the exact name and retry - If a vCenter is unreachable (attention only) --> it is listed under
unreachablewith a reason and the rest still aggregate — surface the gap, don't fail the whole view
Performance Triage ("the cluster feels slow")
Judgment: inventory shows configured capacity (cores, GB); it cannot tell you what is actually hot. Use the real-time perf tools, then narrow.
- Rank hosts -->
vmware-monitor perf hosts— the busiest host floats to the top (sorted by CPU%) - Rank VMs on the suspect -->
vmware-monitor perf vms --limit 25— find the noisy neighbour - Check for hidden storage pressure -->
vmware-monitor capacity datastores— over-commit % > 100 means a thin datastore can fill mid-run even with "free" space showing - Rule out snapshot drag -->
vmware-monitor snapshots aging --only-old— old snapshots silently degrade I/O - If perf tools return empty --> the host/VM may be disconnected or powered off (no real-time provider); confirm with
inventory hosts/inventory vms
Scheduled-Outage Pre-flight (certs, licenses, time)
- Cert expiry -->
vmware-monitor infra certs --warn-days 60— an expired ESXi cert drops host management - License headroom -->
vmware-monitor infra licenses— catch over-allocation before it disables features - Time sync -->
vmware-monitor infra ntp—healthy: nobreaks SSO/Kerberos/log correlation (note: live offset is not exposed by the SOAP API, only config health)
Set Up Continuous Monitoring
- Configure webhook in
~/.vmware-monitor/config.yaml - Start daemon -->
vmware-monitor daemon start - Daemon scans every 15 min, sends alerts to Slack/Discord
Usage Mode
| Scenario | Recommended | Why | |----------|:-----------:|-----| | Local/small models (Ollama, Qwen) | CLI | ~2K tokens vs ~8K for MCP | | Cloud models (Claude, GPT-4o) | Either | MCP gives structured JSON I/O | | Automated pipelines | MCP | Type-safe parameters, structured output |
MCP Tools (27 — all read-only)
| Tool | Description | |------|------------| | list_virtual_machines | List VMs with filtering (power state, sort, limit, folder_filter); each VM includes folder_path | | list_esxi_hosts | ESXi hosts with CPU, memory, version, uptime | | list_all_datastores | Datastores with capacity, free space, type | | list_all_clusters | Clusters with host count, DRS/HA status | | cluster_health_summary | One-glance triage across all clusters — ranked top_issues focus list + per-cluster rollup with opinionated status. Params: cluster_filter, include_vms, top_n. Render per references/health-summary-template.md | | vm_investigation_bundle | "What is happening around this VM?" — correlated drill-down with a merged, newest-first event timeline (contents listed in the workflow above). Params: vm_name, hours. Aggregated in the tool; explain, don't dump raw | | host_investigation_bundle | Same correlated drill-down around an ESXi host. Params: host_name, hours | | datastore_investigation_bundle | Same correlated drill-down around a datastore. Params: datastore_name, hours | | cross_vcenter_attention | "What needs attention now?" across every configured vCenter — one globally-ranked top_issues list (each tagged with its vcenter) + per-target rollup; unreachable targets degrade gracefully. Params: cluster_filter, top_n | | list_all_networks | Networks with attached VM count and accessibility | | get_alarms | All active/triggered alarms — includes suggested_actions remediation hints | | get_events | Recent events filtered by severity and time — includes suggested_actions hints | | get_host_sensors | Hardware sensor status (temperature/voltage/fan) per host with green/yellow/red health | | get_host_services | Host service status (running state and startup policy), optionally filtered by host | | vm_info | Detailed VM info (CPU, memory, disks, NICs, snapshots) | | vm_list_snapshots | Snapshot list for one VM with nesting hierarchy (read-only) | | host_performance | Real-time host CPU/mem/disk/net utilisation (PerfManager); busiest first | | vm_performance | Real-time VM CPU/mem/disk/net utilisation (top 25 by default); powered-on only | | snapshot_aging | Inventory-wide snapshot sweep with age + sprawl; flags snapshots older than N days | | certificate_status | Per-host ESXi management certificate expiry (days until expiry, expiring flag) | | license_status | vCenter/ESXi license inventory with used/total and expiration | | ntp_status | Per-host NTP config health (servers + ntpd state); live offset not in SOAP API | | datastore_capacity | Datastore over-commit (provisioned vs capacity); thin-provisioning risk | | resource_pool_usage | Resource-pool CPU/memory reservation, limit, and current usage | | active_tasks | In-flight (and recently completed) vCenter tasks with progress/errors | | active_sessions | Currently authenticated vCenter/ESXi sessions (who is logged in) | | host_log_scan | Scan recent ESXi host syslog (hostd/vmkernel/vpxa) for error/warning patterns; returns only matching lines, optionally filtered to one host |
All tools are read-only. No tool can modify, create, or delete any resource. Performance/capacity readings are point-in-time samples — this skill retains no history, so it never reports a fabricated "trend" or runway date.
List result shape
The 20 row-listing tools above return the family list envelope {items, returned, limit, total, truncated, hint}, not a bare array. Read truncated before summarising: true means more rows exist — never call items the whole picture; false states the result is complete — including when items is empty, which means "checked, found none", not "the call failed". A null total (get_events, host_log_scan) is deliberate. Aggregate tools return purpose-built objects instead — field ta
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: vmware-skills
- Source: vmware-skills/VMware-Monitor
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.