Read-only VMware vCenter/ESXi monitoring tool.
VMware Monitor
English | 中文
Read-only VMware vCenter/ESXi monitoring tool. Code-level enforced safety — no destructive operations exist in this codebase.
Why a separate repository? VMware Monitor is fully independent from VMware-AIops. Safety is enforced at the code level: no power off, delete, create, reconfigure, snapshot-create/revert/delete, clone, or migrate functions exist in this codebase. Not just prompt constraints — zero destructive code paths.
Quick Install (Recommended)
Works with Claude Code, Cursor, Codex, Gemini CLI, Trae, and 30+ AI agents:
# Via Skills.sh
npx skills add zw008/VMware-Monitor
# Via ClawHub
clawhub install vmware-monitor
PyPI Install (No GitHub Access Required)
# Install via uv (recommended)
uv tool install vmware-monitor
# Or via pip
pip install vmware-monitor
# China mainland mirror (faster)
pip install vmware-monitor -i https://pypi.tuna.tsinghua.edu.cn/simple
Claude Code Plugin Install
# Add marketplace
/plugin marketplace add zw008/VMware-Monitor
# Install plugin
/plugin install vmware-monitor
# Use the skill
/vmware-monitor:vmware-monitor
Capabilities (Read-Only)
Architecture
User (Natural Language)
↓
AI CLI Tool (Claude Code / Gemini / Codex / Aider / Continue / Trae / Kimi)
↓ Reads SKILL.md / AGENTS.md / rules
↓
vmware-monitor CLI (read-only)
↓ pyVmomi (vSphere SOAP API)
↓
vCenter Server ──→ ESXi Clusters ──→ VMs
or
ESXi Standalone ──→ VMs
Version Compatibility
| vSphere Version |
Support |
Notes |
| 8.0 / 8.0U1-U3 |
✅ Full |
pyVmomi 8.0.3+ |
| 7.0 / 7.0U1-U3 |
✅ Full |
All read-only APIs supported |
| 6.7 |
✅ Compatible |
Backward-compatible, tested |
| 6.5 |
✅ Compatible |
Backward-compatible, tested |
1. Inventory
| Feature |
vCenter |
ESXi |
Details |
| List VMs |
✅ |
✅ |
Name, power state, CPU, memory, guest OS, IP |
| List Hosts |
✅ |
⚠️ Self only |
CPU cores, memory, ESXi version, VM count, uptime |
| List Datastores |
✅ |
✅ |
Capacity, free/used, type (VMFS/NFS), usage % |
| List Clusters |
✅ |
❌ |
Host count, DRS/HA status |
| List Networks |
✅ |
✅ |
Network name, associated VM count |
2. Health & Monitoring
| Feature |
vCenter |
ESXi |
Details |
| Active Alarms |
✅ |
✅ |
Severity, alarm name, entity, timestamp |
| Event/Log Query |
✅ |
✅ |
Filter by time range, severity; 50+ event types |
| Hardware Sensors |
✅ |
✅ |
Temperature, voltage, fan status |
| Host Services |
✅ |
✅ |
hostd, vpxa running/stopped status |
Monitored Event Types:
| Category |
Events |
| VM Failures |
VmFailedToPowerOnEvent, VmDiskFailedEvent, VmFailoverFailed |
| Host Issues |
HostConnectionLostEvent, HostShutdownEvent, HostIpChangedEvent |
| Storage |
DatastoreCapacityIncreasedEvent, SCSI high latency |
| HA/DRS |
DasHostFailedEvent, DrsVmMigratedEvent, DrsSoftRuleViolationEvent |
| Auth |
UserLoginSessionEvent, BadUsernameSessionEvent |
3. VM Info & Snapshot List (Read-Only)
| Feature |
Details |
| VM Info |
Name, power state, guest OS, CPU, memory, IP, VMware Tools, disks, NICs |
| Snapshot List |
List existing snapshots with name and creation time (no create/revert/delete) |
4. Scheduled Scanning & Notifications
| Feature |
Details |
| Daemon |
APScheduler-based, configurable interval (default 15 min) |
| Multi-target Scan |
Sequentially scan all configured vCenter/ESXi targets |
| Scan Content |
Alarms + Events + Host logs (hostd, vmkernel, vpxd) |
| Log Analysis |
Regex pattern matching: error, fail, critical, panic, timeout |
| Structured Log |
JSONL output to ~/.vmware-monitor/scan.log |
| Webhook |
Slack, Discord, or any HTTP endpoint |
| Daemon Management |
daemon start/stop/status, PID file, graceful shutdown |
5. Safety Features
| Feature |
Details |
| Code-Level Isolation |
Independent repository — zero destructive functions in codebase |
| Audit Trail |
All queries logged to ~/.vmware-monitor/audit.log (JSONL) |
| Password Protection |
.env file loading with permission check (warn if not 600) |
| SSL Self-signed Support |
disableSslCertValidation — only for ESXi with self-signed certs in isolated labs; production should use CA-signed |
Environment Variables
VCENTER_HOSTrequiredThe IP address or hostname of the vCenter or ESXi server.
VCENTER_USERrequiredUsername for authentication.
VCENTER_PASSrequiredPassword for authentication.
Configuration
{"mcpServers": {"vmware-monitor": {"command": "python", "args": ["-m", "vmware_monitor"], "env": {"VCENTER_HOST": "your-vcenter-ip", "VCENTER_USER": "your-username", "VCENTER_PASS": "your-password"}}}}Try it
→List all virtual machines currently powered off in the vCenter.
→Check for any active alarms or critical events in the last 24 hours.
→Show me the capacity and free space for all datastores.
→List all ESXi hosts and their current CPU and memory utilization.