V

VMware AIops

zw008
☁️ Cloud Platforms
0 Views
0 Installs

🐍 ☁️ - VMware vSphere/vCenter management β€” VM lifecycle (create/clone/delete/migrate), deployment, Guest Operations, snapshots, and cluster operations. 41 tools with double-confirmation gates, dry-run mode, and SQLite-WAL audit logging for destructive operations.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "zw008-vmware-aiops": {
      "command": "npx",
      "args": [
        "-y",
        "zw008-vmware-aiops"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

VMware AIops

Author: Wei Zhou, VMware by Broadcom β€” wei-wz.zhou@broadcom.com This is a community-driven project by a VMware engineer, not an official VMware product. For official VMware developer tools see developer.broadcom.com.

English | δΈ­ζ–‡

AI-powered VMware vCenter/ESXi VM lifecycle and deployment tool β€” 60 tools.

Companion skills handle everything else:

SkillScopeInstall
vmware-monitorRead-only: inventory, health, alarms, events, metricsuv tool install vmware-monitor
vmware-storageDatastores, iSCSI, vSAN managementuv tool install vmware-storage
vmware-vksTanzu Namespaces, TKC cluster lifecycleuv tool install vmware-vks

Need read-only monitoring only? Use VMware-Monitor β€” zero destructive code in the codebase.

ClawHub Skills.sh Claude Code Marketplace License: MIT

⚑ Quick Investigation Reports (read-only)

Triage β†’ investigate β†’ act, all in one conversation. Five opinionated read-only reports aggregate and correlate server-side and hand back a high-signal result (never raw inventory), so you can decide where to look before changing anything. Each renders a self-contained offline HTML snapshot with --html (no external assets; drill-down detail collapses in native <details>, zero JavaScript). All delegate to the vmware-monitor library using AIops's own vCenter connection.

QuestionCommandWhat it correlates
"What needs attention now?" across all vCentersvmware-aiops attentionEvery vCenter merged into one globally-ranked issue list; unreachable targets degrade gracefully
"Is anything on fire?" across all clustersvmware-aiops summaryEvery cluster's hosts + VM power + live CPU/mem + alarms β†’ ranked top-N issues + per-cluster status
"What's happening around this VM?"vmware-aiops investigate vm <name>VM state + host + cluster + backing datastores + snapshots + alarms + performance + a merged event timeline
"What's happening around this host?"vmware-aiops investigate host <name>Host state + cluster + the VMs it runs + mounted datastores + alarms + performance + correlated timeline
"What's happening around this datastore?"vmware-aiops investigate datastore <name>Capacity/free + mounting hosts + VMs it backs + alarms + correlated timeline
vmware-aiops attention                            # what needs attention now, all vCenters
vmware-aiops investigate vm web-01 --hours 72     # everything around a VM, then act on it
vmware-aiops investigate vm web-01 --html         # β†’ offline snapshot in ~/vmware-health/

Via MCP these are the tools cluster_health_summary, cross_vcenter_attention, vm_investigation_bundle, host_investigation_bundle, datastore_investigation_bundle. (Requires vmware-monitor installed.)

Quick Install (Recommended)

Works with Claude Code, Cursor, Codex, Gemini CLI, Trae, and 30+ AI agents:

# Via Skills.sh
npx skills add zw008/VMware-AIops

# Via ClawHub
clawhub install vmware-aiops

PyPI Install (No GitHub Access Required)

# Install via uv (recommended)
uv tool install vmware-aiops

# Or via pip
pip install vmware-aiops

# China mainland mirror (faster)
pip install vmware-aiops -i https://pypi.tuna.tsinghua.edu.cn/simple

Offline / Air-Gapped Install (from source)

This project uses the modern PEP 517 build system (hatchling), so there is no setup.py by design β€” that is expected, not a missing file. If you cloned the source and hit ERROR: File "setup.py" or "setup.cfg" not found ... editable mode currently requires a setuptools-based build, your pip is older than 21.3 and cannot do an editable (-e) install with a non-setuptools backend. Editable mode is a developer convenience, not needed to run the tool β€” do one of:

# From the source tree β€” a normal (non-editable) install builds a wheel:
pip install .              # NOT  pip install -e .

# ...or upgrade pip first, and editable works too:
pip install --upgrade pip && pip install -e .

For a truly air-gapped host, build the wheels on a connected machine and copy them over β€” the target then needs no network:

# On a connected machine, collect this package + its dependencies as wheels:
pip wheel . -w dist        # β†’ dist/*.whl   (or: uv build, for just this package)

# Copy dist/ to the air-gapped host, then install offline:
pip install --no-index --find-links dist vmware-aiops

Why this over other VMware MCP servers

Most open-source VMware MCP servers (e.g. bright8192/esxi-mcp-server, giuliolibrando/vmware-vsphere-mcp-server) are single-vCenter VM wrappers: list/power/snapshot a VM, basic monitoring, a confirm=True flag. They explicitly do not cover networking, storage, Kubernetes, ops analytics, load balancing, or compliance β€” and "logging is documented" is not an audit trail.

This is one skill in an 11-package family that covers the whole estate and runs every tool through a governed harness:

Other VMware MCP serversThis family
VM lifecycle + monitoringβœ…βœ…
NSX networking (segments/gateways/NAT/routing/IPAM)βŒβœ… vmware-nsx
NSX security (DFW/groups/IDS-IPS/traceflow)βŒβœ… vmware-nsx-security
Storage (datastore/iSCSI/vSAN)βŒβœ… vmware-storage
Tanzu Kubernetes (Supervisor/Namespace/TKC)βŒβœ… vmware-vks
Aria Operations (metrics/alerts/capacity)βŒβœ… vmware-aria
AVI / NSX ALB load balancing + AKOβŒβœ… vmware-avi
Compliance baselines + drift (CIS/SCG/等保/PCI)βŒβœ… vmware-harden
Governed harness (unified audit, policy engine, token budget + runaway breaker, graduated risk tiers, undo-token, prompt-injection sanitize)βŒβœ… vmware-policy on every tool

If you only ever power-cycle VMs in one vCenter, a single-file server is fine. If you run a real (regulated, NSX-segmented, multi-domain) VMware estate and need an AI operator an auditor can sign off on, that's what this family is for β€” see docs/compliance-ready.md.

Capabilities Overview

What This Skill Does

CategoryToolsCount
VM Lifecyclepower on/off, TTL auto-delete, clean slate6
DeploymentOVA, template, linked clone, batch clone/deploy8
Guest Opsexec commands, upload/download files, provision5
Plan/Applymulti-step planning with rollback4
Clustercreate, delete, HA/DRS config, add/remove hosts6
Datastorebrowse files, scan for images2
NetworkdvSwitch portgroup list/create, host VMkernel list/add/remove, DF-bit MTU-path ping6

CLI vs MCP: Which Mode to Use

ScenarioRecommendedWhy
Local/small models (Ollama, Qwen <32B)CLI~2K tokens context vs ~10K for MCP; small models struggle with many tool schemas
Token-sensitive workflowsCLISKILL.md + Bash tool = minimal overhead
Cloud models (Claude, GPT-4o)EitherBoth work; MCP gives structured JSON I/O
Automated pipelines / Agent chainingMCPType-safe parameters, structured output, no shell parsing
Monitoring / storage / K8sCompanion skillsSee vmware-monitor, vmware-storage, vmware-vks

Rule of thumb: Use CLI for cost efficiency and small models. Use MCP for structured automation with large models.

Architecture

User (Natural Language)
  ↓
AI CLI Tool (Claude Code / Gemini / Codex / Aider / Continue / Trae / Kimi)
  ↓ reads SKILL.md / AGENTS.md / rules
  ↓
vmware-aiops CLI
  ↓ pyVmomi (vSphere SOAP API)
  ↓
vCenter Server ──→ ESXi Cluster ──→ VM
    or
ESXi Standalone Host ──→ VM

Version Compatibility

vSphere / VCF VersionSupportNotes
VCF 9.1 / vSphere 9.1βœ… FullReleased 2026-05-12. pyVmomi <10.0 resolves and connects via SOAP; new REST-only features (PATCH /deployment/size, IPv6-only GOSC) not yet wrapped β€” see VCF Python SDK for those.
VCF 9.0 / vSphere 9.0βœ… FullpyVmomi 8.0.3+ connects against vSphere 9 SOAP API. From VCF 9, pyVmomi is also bundled inside the unified VCF Python SDK.
8.0 / 8.0U1-U3βœ… FullCreateSnapshot_Task deprecated β†’ use CreateSnapshotEx_Task
7.0 / 7.0U1-U3βœ… FullAll APIs supported
6.7βœ… CompatibleBackward-compatible, tested
6.5βœ… CompatibleBackward-compatible, tested

pyVmomi auto-negotiates the API version during SOAP handshake β€” no manual configuration needed. The same codebase manages 7.0 / 8.0 / 9.0 / 9.1 environments seamlessly.

Official Broadcom References


Common Workflows

Deploy a Lab Environment

  1. Browse datastore for OVA images β†’ vmware-aiops datastore browse <ds> --pattern "*.ova"
  2. Deploy VM from OVA β†’ vmware-aiops deploy ova ./image.ova --name lab-vm --datastore ds1
  3. Install software inside VM β†’ vmware-aiops vm guest-exec lab-vm --cmd /bin/bash --args "-c 'apt-get install -y nginx'" --user root
  4. Create baseline snapshot β†’ vmware-aiops vm snapshot-create lab-vm --name baseline
  5. Set TTL for auto-cleanup β†’ vmware-aiops vm set-ttl lab-vm --minutes 480

Batch Clone for Testing

  1. Create plan: vm_create_plan with multiple clone + reconfigure steps
  2. Review plan with user (shows affected VMs, irreversible warnings)
  3. Apply: vm_apply_plan executes sequentially, stops on failure
  4. If failed: vm_rollback_plan reverses executed steps
  5. Set TTL on all clones for auto-cleanup

Migrate VM to Another Host

  1. Check VM info via vmware-monitor β†’ verify power state and current host
  2. Migrate: vmware-aiops vm migrate my-vm --to-host esxi-02
  3. Verify migration completed

VM Lifecycle

OperationCommandConfirmationvCenterESXi
Power Onvm power-on <name>β€”βœ…βœ…
Graceful Shutdownvm power-off <name>Doubleβœ…βœ…
Force Power Offvm power-off <name> --forceDoubleβœ…βœ…
Resetvm reset <name>β€”βœ…βœ…
Suspendvm suspend <name>β€”βœ…βœ…
Create VMvm create <name> --cpu --memory --diskβ€”βœ…βœ…
Delete VMvm delete <name>Doubleβœ…βœ…
Reconfigurevm reconfigure <name> --cpu --memoryDoubleβœ…βœ…
Create Snapshotvm snapshot-create <name> --name <snap>β€”βœ…βœ…
List Snapshotsvm snapshot-list <name>β€”βœ…βœ…
Revert Snapshotvm snapshot-revert <name> --name <snap>β€”βœ…βœ…
Delete Snapshotvm snapshot-delete <name> --name <snap> [--no-wait]β€”βœ…βœ…
Task Statusvm task-status <task-id>β€”βœ…βœ…
Clone VMvm clone <name> --new-name <new>β€”βœ…βœ…
vMotionvm migrate <name> --to-host <host>β€”βœ…βŒ
Set TTLvm set-ttl <name> --minutes <n>β€”βœ…βœ…
Cancel TTLvm cancel-ttl <name>β€”βœ…βœ…
List TTLsvm list-ttlβ€”βœ…βœ…
Clean Slatevm clean-slate <name> [--snapshot baseline]Doubleβœ…βœ…
Guest Execvm guest-exec <name> --cmd /bin/bash --args "..."β€”βœ…βœ…
Guest Exec (with output)vm guest-exec-output <name> --cmd "df -h"β€”βœ…βœ…
Guest Uploadvm guest-upload <name> --local f.sh --guest /tmp/f.shβ€”βœ…βœ…
Guest Downloadvm guest-download <name> --guest /var/log/syslog --local ./syslogβ€”βœ…βœ…

Guest Operations require VMware Tools running inside the guest OS. guest-exec-output auto-detects Linux/Windows shell and captures stdout/stderr.

Plan β†’ Apply (Multi-step Operations)

For complex operations involving 2+ steps or 2+ VMs, use the plan/apply workflow instead of executing individually:

StepWhat Happens
1. Create PlanAI calls vm_create_plan β€” validates actions, checks targets in vSphere, generates plan with rollback info
2. ReviewAI shows plan to user: steps, affected VMs, irreversible warnings
3. Applyvm_apply_plan executes sequentially; stops on failure
4. Rollback (if failed)Asks user whether to rollback, then vm_rollback_plan reverses executed steps (irreversible steps skipped)

Plans stored in ~/.vmware-aiops/plans/, auto-deleted on success, auto-cleaned after 24h.

VM Deployment & Provisioning

OperationCommandSpeedvCenterESXi
Deploy from OVAdeploy ova <path> --name <vm>Minutesβœ…βœ…
Deploy from Templatedeploy template <tmpl> --name <vm>Minutesβœ…βœ…
Linked Clonedeploy linked-clone --source <vm> --snapshot <snap> --name <new>Secondsβœ…βœ…
Attach ISOdeploy iso <vm> --iso "[ds] path/to.iso"Instantβœ…βœ…
Convert to Templatedeploy mark-template <vm>Instantβœ…βœ…
Batch Clonedeploy batch-clone --source <vm> --count <n>Minutesβœ…βœ…
Batch Deploy (YAML)deploy batch spec.yamlAutoβœ…βœ…

Cluster Management

OperationCommandConfirmationvCenterESXi
Cluster Infocluster info <name>β€”βœ…βŒ
Create Clustercluster create <name> [--ha] [--drs]β€”βœ…βŒ
Delete Clustercluster delete <name>Doubleβœ…βŒ
Add Hostcluster add-host <cluster> --host <host>Doubleβœ…βŒ
Remove Hostcluster remove-host <cluster> --host <host>Doubleβœ…βŒ
Configure HA/DRScluster configure <name> [--ha/--no-ha] [--drs/--no-drs]Doubleβœ…βŒ

remove-host requires the host to be in maintenance mode first; the host is moved out of the cluster into the datacenter's host folder as a standalone host.

Alarm Management

OperationCommandConfirmationvCenterESXi
List Triggered Alarmsalarm list [--target <t>]β€”βœ…βŒ
Acknowledge Alarmalarm acknowledge <entity> <alarm>β€”βœ…βŒ
Clear (Reset) Alarmsalarm reset <entity> <alarm>Doubleβœ…βŒ

Blast radius: vSphere has no per-alarm clear API. alarm reset uses AlarmManager.ClearTriggeredAlarms, which clears all triggered alarms matching the named alarm's entity type (host/VM/all) and current status (red/yellow) β€” not just the named one. The named alarm is looked up first (typos fail fast), and the output's scope field reports exactly what was cleared. Cleared alarms re-trigger automatically if their underlying condition persists.

Datastore Browser

FeaturevCenterESXiDetails
Browse Filesβœ…βœ…List files/folders in any datastore path
Scan Imagesβœ…βœ…Discover ISO, OVA, OVF, VMDK across all datastores

Scheduled Scanning & Notifications

FeatureDetails
DaemonAPScheduler-based, configurable interval (default 15 min)
Multi-target ScanSequentially scan all configured vCenter/ESXi targets
Scan ContentAlarms + Events + Host logs (hostd, vmkernel, vpxd)
Log AnalysisRegex pattern matching: error, fail, critical, panic, timeout, corrupt
Structured LogJSONL output to ~/.vmware-aiops/scan.log
WebhookSlack, Discord, or any HTTP endpoint
Daemon Managementdaemon start/stop/status, PID file, graceful shutdown

Safety Features

FeatureDetails
Dry-Run Mode--dry-run on any destructive command prints exact API calls without executing
Plan β†’ Confirm β†’ Execute β†’ LogStructured workflow: show current state, confirm changes, execute, audit log
Double ConfirmationAll destructive ops (power-off, delete, reconfigure, snapshot-revert/delete, clone, migrate) require 2 sequential confirmations β€” no bypass flags
Rejection LoggingDeclined confirmations are recorded in the audit trail
Audit TrailAll operations logged to ~/.vmware-aiops/audit.log (JSONL) with before/after state
Input ValidationVM name, CPU (1-128), memory (128-1048576 MB), disk (1-65536 GB) validated
Password Protection.env file loading with permission check; never in shell history
SSL Self-signed SupportdisableSslCertValidation β€” only for ESXi with self-signed certs in isolated labs; production should use CA-signed certificates
Prompt Injection ProtectionvSphere event messages and host logs are truncated, stripped of control characters, and wrapped in boundary markers before output
Webhook Data ScopeSends notifications to user-configured URLs only β€” no third-party services by default
Task WaitingAll async operations wait for completion and report result
State ValidationPre-operation checks (VM exists, power state correct)

vCenter vs ESXi Comparison

CapabilityvCenterESXi Standalone
vMotion migrationβœ…βŒ
Cross-host cloneβœ…βŒ
Cluster managementβœ…βŒ
All VM lifecycle opsβœ…βœ…
OVA/Template/Linked Clone deployβœ…βœ…
Datastore browsing & image scanβœ…βœ…
Snapshotsβœ…βœ…
Guest operationsβœ…βœ…

Inventory, alarms, events, sensors, host services, and scanning are now in vmware-monitor.


Troubleshooting

"VM not found" error

VM names are case-sensitive in vSphere. Use exact name from vmware-monitor inventory vms.

Guest exec returns empty output

Use vm_guest_exec_output instead of vm_guest_exec β€” it auto-captures stdout/stderr. Basic vm_guest_exec only returns exit code.

Deploy OVA times out

Large OVA files (>10GB) may exceed the default 120s timeout. The upload happens via HTTP NFC lease β€” ensure network between the machine running vmware-aiops and ESXi is stable.

Plan apply fails mid-way

Run vmware-aiops plan list to see failed plan status. Ask user if they want to rollback with vm_rollback_plan. Irreversible steps (delete_vm) are skipped during rollback.

Connection refused / SSL error

  1. Verify target is reachable: vmware-aiops doctor
  2. For self-signed certs: set disableSslCertValidation: true in config.yaml (lab environments only)

Supported AI Platforms

PlatformStatusConfig FileAI Model
Claude Codeβœ… Native Skillskills/vmware-aiops/SKILL.mdAnthropic Claude
Gemini CLIβœ… Context file + MCPskills/vmware-aiops/SKILL.mdGoogle Gemini
OpenAI Codex CLIβœ… Skill + AGENTS.mdskills/vmware-aiops/SKILL.mdOpenAI GPT
Aiderβœ… Conventionsskills/vmware-aiops/SKILL.mdAny (cloud + local)
Continue CLIβœ… Rulesskills/vmware-aiops/SKILL.mdAny (cloud + local)
Trae IDEβœ… Rulesskills/vmware-aiops/SKILL.mdClaude/DeepSeek/GPT-4o/Doubao
Kimi Code CLIβœ… Skillskills/vmware-aiops/SKILL.mdMoonshot Kimi
MCP Serverβœ… MCP Protocolvmware_aiops/mcp_server/Any MCP client
Python CLIβœ… StandaloneN/AN/A

Platform Comparison

FeatureClaude CodeGemini CLICodex CLIAiderContinueTrae IDEKimi CLI
Cloud AIAnthropicGoogleOpenAIAnyAnyMultiMoonshot
Local modelsβ€”β€”β€”OllamaOllamaβ€”β€”
Skill systemSKILL.mdContext fileSKILL.mdβ€”RulesRulesSKILL.md
MCP supportNativeNativeVia SkillsThird-partyNativeβ€”β€”
Free tierβ€”60 req/minβ€”Self-hostedSelf-hostedβ€”β€”

MCP Server Integrations

The vmware-aiops MCP server works with any MCP-compatible agent or tool. Ready-to-use configuration templates are in examples/mcp-configs/.

Agent / ToolLocal Model SupportConfig TemplateIntegration Guide
Xiaoguai (小ζ€ͺ)βœ… Self-hosted, any LLMMCP setupGuide
Gooseβœ… Ollama, LM Studiogoose.jsonGuide
LocalCoworkβœ… Fully offlinelocalcowork.jsonGuide
mcp-agentβœ… Ollama, vLLMmcp-agent.yamlGuide
VS Code Copilotβ€”vscode-copilot.jsonGuide
Cursorβ€”cursor.jsonGuide
Continueβœ… Ollamacontinue.yamlGuide
Claude Codeβ€”claude-code.jsonβ€”

Xiaoguai (小ζ€ͺ) β€” a self-hostable, audit-first agent platform (Rust, single binary + embedded SQLite) from the same maintainer. It runs the vmware-aiops MCP server as one of its toolboxes; being both an MCP consumer and an MCP server, its HMAC-chained audit log and human-on-the-loop approval gates line up with this skill's own audit + confirm design. See its MCP integration guide.

Fully local operation (no cloud API required):

# Aider + Ollama + vmware-aiops (via SKILL.md)
aider --conventions skills/vmware-aiops/SKILL.md --model ollama/qwen2.5-coder:32b

# Any MCP agent + local model + vmware-aiops MCP server
# See examples/mcp-configs/ for your agent's config format

Installation

Step 0: Prerequisites

# Python 3.10+ required
python3 --version

# Node.js 18+ required for Gemini CLI and Codex CLI
node --version

Step 1: Clone & Install Python Backend

All platforms share the same Python backend.

git clone https://github.com/zw008/VMware-AIops.git
cd VMware-AIops
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

Step 2: Configure

mkdir -p ~/.vmware-aiops
cp config.example.yaml ~/.vmware-aiops/config.yaml
# Edit config.yaml with your vCenter/ESXi targets

Set passwords via .env file (recommended):

# Use the template
cp .env.example ~/.vmware-aiops/.env

# Edit and fill in your passwords, then lock permissions
chmod 600 ~/.vmware-aiops/.env

Security note: Prefer .env file over command-line export to avoid passwords appearing in shell history. The .env file should have chmod 600 (owner-only read/write).

Password environment variable naming convention:

VMWARE_{TARGET_NAME_UPPER}_PASSWORD
# Replace hyphens with underscores, UPPERCASE
# Example: target "home-esxi" β†’ VMWARE_HOME_ESXI_PASSWORD
# Example: target "prod-vcenter" β†’ VMWARE_PROD_VCENTER_PASSWORD

Security Best Practices

  • NEVER hardcode passwords in scripts or config files
  • NEVER pass passwords as command-line arguments (visible in ps)
  • ALWAYS use ~/.vmware-aiops/.env with chmod 600
  • ALWAYS configure connections via config.yaml β€” credentials are loaded from .env automatically
  • Config File Contents: config.yaml stores target hostnames, ports, and a reference to the .env file. It does not contain passwords or tokens. All secrets are stored exclusively in .env
  • TLS: Enabled by default. Disable only for ESXi hosts with self-signed certificates in isolated lab environments
  • Webhook: Disabled by default. When enabled, sends monitoring summaries to your own configured URL only β€” payloads contain no credentials, IPs, or PII, only aggregated alert metadata. No data sent to third-party services
  • Least Privilege: Use a dedicated vCenter service account with minimal permissions. For monitoring-only use cases, prefer the read-only VMware-Monitor
  • Prompt Injection Protection: All vSphere-sourced content is truncated, stripped of control characters, and wrapped in boundary markers before output
  • Code Review: We recommend reviewing the source code and commit history before deploying in production
  • Production Safety: For production environments, use the read-only VMware-Monitor instead. AI agents can misinterpret context and execute unintended destructive operations β€” real-world incidents have shown that AI-driven infrastructure tools without proper isolation can delete production databases and entire environments. VMware-Monitor eliminates this risk at the code level: no destructive functions exist in its codebase

Step 3: Connect Your AI Tool

Choose one (or more) of the following:


Option A: Claude Code

Method 1: Skills.sh or ClawHub (recommended)

Either installer places the skill in Claude Code's skills directory for you:

npx skills add zw008/VMware-AIops
# or
clawhub install vmware-aiops

Method 2: Manual skill install

git clone https://github.com/zw008/VMware-AIops.git
cd VMware-AIops

# Copy the skill into Claude Code's personal skills directory
mkdir -p ~/.claude/skills/vmware-aiops
cp -r skills/vmware-aiops/. ~/.claude/skills/vmware-aiops/

For tool access (not just skill context), also register the MCP server:

claude mcp add vmware-aiops -- vmware-aiops mcp

Restart Claude Code, then:

> Show me all VMs on esxi-lab.example.com

Submit to Official Marketplace

This plugin can also be submitted to the Anthropic official plugin directory for public discovery.


Option B: Gemini CLI

# Install Gemini CLI
npm install -g @google/gemini-cli

# Load the skill as project context (Gemini CLI reads GEMINI.md on startup)
cp skills/vmware-aiops/SKILL.md ./GEMINI.md

For tool access (not just context), register the MCP server in ~/.gemini/settings.json:

{
  "mcpServers": {
    "vmware-aiops": {
      "command": "vmware-aiops",
      "args": ["mcp"],
      "env": { "VMWARE_AIOPS_CONFIG": "~/.vmware-aiops/config.yaml" }
    }
  }
}

Then start Gemini CLI:

gemini
> Show me all VMs on my ESXi host

Option C: OpenAI Codex CLI

# Install Codex CLI
npm i -g @openai/codex
# Or on macOS:
# brew install --cask codex

# Copy skill to Codex skills directory
mkdir -p ~/.codex/skills/vmware-aiops
cp skills/vmware-aiops/SKILL.md ~/.codex/skills/vmware-aiops/SKILL.md

# Copy AGENTS.md to project root
cp skills/vmware-aiops/SKILL.md ./AGENTS.md

Then start Codex CLI:

codex --enable skills
> List all VMs on my ESXi

Option D: Aider (supports local models)

# Install Aider
pip install aider-chat

# Install Ollama for local models (optional)
# macOS:
brew install ollama
ollama pull qwen2.5-coder:32b

# Run with cloud API
aider --conventions skills/vmware-aiops/SKILL.md

# Or with local model via Ollama
aider --conventions skills/vmware-aiops/SKILL.md \
  --model ollama/qwen2.5-coder:32b

Option E: Continue CLI (supports local models)

# Install Continue CLI
npm i -g @continuedev/cli

# Copy rules file
mkdir -p .continue/rules
cp skills/vmware-aiops/SKILL.md .continue/rules/vmware-aiops.md

Configure ~/.continue/config.yaml for local model:

models:
  - name: local-coder
    provider: ollama
    model: qwen2.5-coder:32b

Then:

cn
> Check ESXi health and alarms

Option F: Trae IDE

Copy the rules file to your project's .trae/rules/ directory:

mkdir -p .trae/rules
cp skills/vmware-aiops/SKILL.md .trae/rules/project_rules.md

Trae IDE's Builder Mode reads .trae/rules/ Markdown files at startup.

Note: You can also install Claude Code extension in Trae IDE and use .claude/skills/ format directly.


Option G: Kimi Code CLI

# Copy skill file to Kimi skills directory
mkdir -p ~/.kimi/skills/vmware-aiops
cp skills/vmware-aiops/SKILL.md ~/.kimi/skills/vmware-aiops/SKILL.md

Option H: MCP Server (Smithery / Glama / Claude Desktop)

The MCP server exposes VMware operations as tools via the Model Context Protocol. Works with any MCP-compatible client (Claude Desktop, Cursor, etc.).

After uv tool install vmware-aiops, start the MCP server with one command (v1.5.15+):

# Recommended β€” single command, no network re-resolve
vmware-aiops mcp

# With a custom config path
VMWARE_AIOPS_CONFIG=/path/to/config.yaml vmware-aiops mcp

Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "vmware-aiops": {
      "command": "vmware-aiops",
      "args": ["mcp"],
      "env": {
        "VMWARE_AIOPS_CONFIG": "/path/to/config.yaml"
      }
    }
  }
}
Alternative: uvx (no install) or legacy entry point
# Run without installing (requires PyPI access each launch)
uvx --from vmware-aiops vmware-aiops mcp

# Legacy entry point (still works, kept for backward compatibility)
vmware-aiops-mcp

Behind a corporate TLS proxy? uvx may fail with invalid peer certificate: UnknownIssuer. Use the recommended vmware-aiops mcp form above (no network needed), or set UV_NATIVE_TLS=true.

Install via Smithery:

npx -y @smithery/cli install @zw008/VMware-AIops --client claude

Option I: Standalone CLI (no AI)

# Already installed in Step 1
source .venv/bin/activate

vmware-aiops vm power-on my-vm --target home-esxi
vmware-aiops deploy ova ./ubuntu.ova --name my-vm --target home-esxi
vmware-aiops datastore browse datastore1 --target home-esxi

Update / Upgrade

Already installed? Re-run the install command for your channel to get the latest version:

Install ChannelUpdate Command
ClawHubclawhub install vmware-aiops
Skills.shnpx skills add zw008/VMware-AIops
Git clonecd VMware-AIops && git pull origin main && uv pip install -e .
uvuv tool install vmware-aiops --force

Check your current version: vmware-aiops --version


Chinese Cloud Models

For users in China who prefer domestic cloud APIs or have limited access to overseas services.

DeepSeek

Cost-effective, strong coding capability.

# Set DeepSeek API key (get from https://platform.deepseek.com)
export DEEPSEEK_API_KEY="your-key"

# Run with Aider
aider --conventions skills/vmware-aiops/SKILL.md \
  --model deepseek/deepseek-coder

Persistent config ~/.aider.conf.yml:

model: deepseek/deepseek-coder
conventions: skills/vmware-aiops/SKILL.md

Qwen (Alibaba Cloud)

Alibaba Cloud's coding model, free tier available.

# Set DashScope API key (get from https://dashscope.console.aliyun.com)
export DASHSCOPE_API_KEY="your-key"

aider --conventions skills/vmware-aiops/SKILL.md \
  --model qwen/qwen-coder-plus

Or via OpenAI-compatible endpoint:

export OPENAI_API_BASE="https://dashscope.aliyuncs.com/compatible-mode/v1"
export OPENAI_API_KEY="your-dashscope-key"

aider --conventions skills/vmware-aiops/SKILL.md \
  --model qwen-coder-plus-latest

Doubao (ByteDance)

export OPENAI_API_BASE="https://ark.cn-beijing.volces.com/api/v3"
export OPENAI_API_KEY="your-ark-key"

aider --conventions skills/vmware-aiops/SKILL.md \
  --model your-doubao-endpoint-id

With Continue CLI

Configure ~/.continue/config.yaml:

# DeepSeek
models:
  - name: deepseek-coder
    provider: openai-compatible
    apiBase: https://api.deepseek.com/v1
    apiKey: your-deepseek-key
    model: deepseek-coder

# Qwen
models:
  - name: qwen-coder
    provider: openai-compatible
    apiBase: https://dashscope.aliyuncs.com/compatible-mode/v1
    apiKey: your-dashscope-key
    model: qwen-coder-plus-latest

Local Models (Aider + Ollama)

For fully offline operation β€” no cloud API, no internet, full privacy.

Aider + Ollama + local Qwen/DeepSeek is ideal for air-gapped environments.

Step 1: Install Ollama

# macOS
brew install ollama

# Linux β€” download from https://ollama.com/download and install manually
# See https://github.com/ollama/ollama for platform-specific instructions

Step 2: Pull a model

ModelCommandSizeNote
Qwen 2.5 Coder 32Bollama pull qwen2.5-coder:32b~20GBBest local coding model
Qwen 2.5 Coder 7Bollama pull qwen2.5-coder:7b~4.5GBLow-memory option
DeepSeek Coder V2ollama pull deepseek-coder-v2~8.9GBStrong reasoning
CodeLlama 34Bollama pull codellama:34b~19GBMeta coding model

Hardware: 32B β†’ ~20GB VRAM (or 32GB RAM for CPU). 7B β†’ 8GB RAM.

Step 3: Run with Aider

pip install aider-chat
ollama serve

# Aider + local Qwen (recommended)
aider --conventions skills/vmware-aiops/SKILL.md \
  --model ollama/qwen2.5-coder:32b

# Aider + local DeepSeek
aider --conventions skills/vmware-aiops/SKILL.md \
  --model ollama/deepseek-coder-v2

# Low-memory option
aider --conventions skills/vmware-aiops/SKILL.md \
  --model ollama/qwen2.5-coder:7b

Persistent config ~/.aider.conf.yml:

model: ollama/qwen2.5-coder:32b
conventions: skills/vmware-aiops/SKILL.md

Local Architecture

User β†’ Aider CLI β†’ Ollama (localhost:11434) β†’ Qwen / DeepSeek local model
  β”‚                                                    ↓
  β”‚                                          reads AGENTS.md instructions
  β”‚                                                    ↓
  └──────────────────────────────→ vmware-aiops CLI ──→ ESXi / vCenter

Tip: Local models are fully offline β€” perfect for air-gapped environments or strict data compliance.


CLI Reference

# Diagnostics
vmware-aiops doctor                   # Check environment, config, connectivity
vmware-aiops doctor --skip-auth       # Skip vSphere auth check (faster)

# MCP Config Generator
vmware-aiops mcp-config generate --agent goose        # Generate config for Goose
vmware-aiops mcp-config generate --agent claude-code  # Generate config for Claude Code
vmware-aiops mcp-config list                          # List all supported agents

# VM operations
vmware-aiops vm power-on my-vm                                 # Power on
vmware-aiops vm power-off my-vm                                # Graceful shutdown (2x confirm)
vmware-aiops vm power-off my-vm --force                        # Force power off (2x confirm)
vmware-aiops vm create my-new-vm --cpu 4 --memory 8192 --disk 100  # Create VM
vmware-aiops vm delete my-vm --confirm                         # Delete VM (2x confirm)
vmware-aiops vm reconfigure my-vm --cpu 4 --memory 8192        # Reconfigure (2x confirm)
vmware-aiops vm snapshot-create my-vm --name "before-upgrade"  # Create snapshot
vmware-aiops vm snapshot-list my-vm                            # List snapshots
vmware-aiops vm snapshot-revert my-vm --name "before-upgrade"  # Revert snapshot
vmware-aiops vm snapshot-delete my-vm --name "before-upgrade"  # Delete snapshot (waits ≀30 min for consolidation)
vmware-aiops vm snapshot-delete my-vm --name "old-big" --no-wait  # Fire async, return a task id
vmware-aiops vm task-status task-1234                          # Poll an async task by id
vmware-aiops vm clone my-vm --new-name my-vm-clone             # Clone VM
vmware-aiops vm migrate my-vm --to-host esxi-02                # vMotion
vmware-aiops vm set-ttl my-vm --minutes 60                     # Auto-delete in 60 min
vmware-aiops vm cancel-ttl my-vm                               # Cancel TTL
vmware-aiops vm list-ttl                                       # Show all TTLs
vmware-aiops vm clean-slate my-vm --snapshot baseline          # Revert to baseline (2x confirm)

# Guest Operations (requires VMware Tools in guest)
vmware-aiops vm guest-exec my-vm --cmd /bin/bash --args "-c 'whoami'" --user root
vmware-aiops vm guest-upload my-vm --local ./script.sh --guest /tmp/script.sh --user root
vmware-aiops vm guest-download my-vm --guest /var/log/syslog --local ./syslog.txt --user root

# Plan β†’ Apply (multi-step operations)
vmware-aiops plan list                                        # List pending/failed plans

# Deploy
vmware-aiops deploy ova ./ubuntu.ova --name my-vm --datastore ds1      # Deploy from OVA
vmware-aiops deploy template golden-ubuntu --name new-vm               # Deploy from template
vmware-aiops deploy linked-clone --source base-vm --snapshot clean --name test-vm  # Linked clone (seconds)
vmware-aiops deploy iso my-vm --iso "[datastore1] iso/ubuntu-22.04.iso"  # Attach ISO
vmware-aiops deploy mark-template golden-vm                            # Convert VM to template
vmware-aiops deploy batch-clone --source base-vm --count 5 --prefix lab  # Batch clone
vmware-aiops deploy batch deploy.yaml                                  # Batch deploy from YAML spec

# Cluster
vmware-aiops cluster info my-cluster                                   # Cluster details (HA/DRS status)
vmware-aiops cluster create my-cluster --ha --drs                      # Create cluster with HA+DRS
vmware-aiops cluster delete my-cluster                                 # Delete cluster (2x confirm)
vmware-aiops cluster add-host my-cluster --host esxi-03                # Add host to cluster (2x confirm)
vmware-aiops cluster remove-host my-cluster --host esxi-03             # Remove host (2x confirm)
vmware-aiops cluster configure my-cluster --ha --drs                   # Configure HA/DRS (2x confirm)

# Alarm management
vmware-aiops alarm list                                                # List triggered alarms
vmware-aiops alarm acknowledge esxi-01 "Host memory usage"             # Acknowledge alarm
vmware-aiops alarm reset esxi-01 "Host memory usage"                   # Clear alarms (2x confirm; clears ALL matching entity type + status)

# Datastore (browse and scan only β€” iSCSI/vSAN moved to vmware-storage)
vmware-aiops datastore browse datastore1 --path "iso/"                 # Browse datastore
vmware-aiops datastore scan-images --target home-esxi                  # Scan all datastores for images

# Scan
vmware-aiops scan now              # One-time scan

# Daemon
vmware-aiops daemon start          # Start scanner
vmware-aiops daemon status         # Check status
vmware-aiops daemon stop           # Stop daemon

# Companion skills for other operations:
#   vmware-monitor: inventory, alarms, events, sensors
#   vmware-storage: datastores, iSCSI, vSAN
#   vmware-vks:     Tanzu/TKC cluster lifecycle

Configuration

See config.example.yaml for all options.

SectionKeyDefaultDescription
targetsnameβ€”Friendly name
targetshostβ€”vCenter/ESXi hostname or IP
targetstypevcentervcenter or esxi
targetsport443Connection port
targetsverify_sslfalseSSL certificate verification
scannerinterval_minutes15Scan frequency
scannerseverity_thresholdwarningMin severity: critical/warning/info
scannerlookback_hours1How far back to scan
scannerlog_types[vpxd, hostd, vmkernel]Log sources
notifylog_file~/.vmware-aiops/scan.logJSONL log output
notifywebhook_urlβ€”Webhook endpoint (Slack, Discord, etc.)

Project Structure

VMware-AIops/
β”œβ”€β”€ skills/                        # Skills index (npx skills add)
β”‚   └── vmware-aiops/
β”‚       β”œβ”€β”€ SKILL.md               # Slimmed-down skill (progressive disclosure)
β”‚       └── references/            # Detailed docs loaded on-demand
β”‚           β”œβ”€β”€ capabilities.md    # Full capabilities tables
β”‚           β”œβ”€β”€ cli-reference.md   # Complete CLI reference
β”‚           └── setup-guide.md     # Install, security, AI platforms
β”œβ”€β”€ vmware_aiops/                  # Python backend
β”‚   β”œβ”€β”€ config.py                  # YAML + .env config
β”‚   β”œβ”€β”€ connection.py              # Multi-target pyVmomi
β”‚   β”œβ”€β”€ cli/                       # Typer CLI (double confirm)
β”‚   β”œβ”€β”€ ops/                       # Operations
β”‚   β”‚   β”œβ”€β”€ inventory.py           # VMs, hosts, datastores, clusters
β”‚   β”‚   β”œβ”€β”€ health.py              # Alarms, events, sensors
β”‚   β”‚   β”œβ”€β”€ vm_lifecycle.py        # VM CRUD, snapshots, clone, migrate
β”‚   β”‚   β”œβ”€β”€ vm_deploy.py           # OVA, template, linked clone, batch deploy
β”‚   β”‚   └── datastore_browser.py   # Datastore browsing, image discovery
β”‚   β”œβ”€β”€ scanner/                   # Log scanning daemon
β”‚   β”œβ”€β”€ notify/                    # Notifications (JSONL + webhook)
β”‚   └── mcp_server/                # MCP server wrapper
β”‚       β”œβ”€β”€ server.py              # FastMCP server with tools
β”‚       └── __main__.py
β”œβ”€β”€ examples/mcp-configs/          # MCP client config templates
β”œβ”€β”€ tests/                         # Test suite
β”œβ”€β”€ smithery.yaml                  # Smithery marketplace config
β”œβ”€β”€ RELEASE_NOTES.md
β”œβ”€β”€ config.example.yaml
└── pyproject.toml

API Coverage

Built on pyVmomi (vSphere Web Services API / SOAP).

API ObjectUsage
vim.VirtualMachineVM lifecycle, snapshots, clone, migrate
vim.HostSystemESXi host info, sensors, services
vim.DatastoreStorage capacity, type, accessibility
vim.host.DatastoreBrowserFile browsing, image discovery (ISO/OVA/VMDK)
vim.OvfManagerOVA import and deployment
vim.ClusterComputeResourceCluster, DRS, HA
vim.NetworkNetwork listing
vim.alarm.AlarmManagerActive alarm monitoring
vim.event.EventManagerEvent/log queries

Related Projects

SkillScopeToolsInstall
vmware-aiopsVM lifecycle, deployment, guest ops, cluster, datastore browse, triage49uv tool install vmware-aiops
vmware-monitorRead-only monitoring, alarms, events, investigation bundles27uv tool install vmware-monitor
vmware-storageDatastores, iSCSI, vSAN11uv tool install vmware-storage
vmware-vksTanzu Namespaces, TKC cluster lifecycle20uv tool install vmware-vks
vmware-nsxNSX networking: segments, gateways, NAT, routing, IPAM33uv tool install vmware-nsx-mgmt
vmware-nsx-securityDFW policies/rules, security groups, Traceflow, IDS/IPS21uv tool install vmware-nsx-security
vmware-ariaAria Operations metrics, alerts, capacity, anomalies28uv tool install vmware-aria
vmware-aviAVI (NSX ALB) load balancing, AKO Kubernetes ops28uv tool install vmware-avi
vmware-hardenCompliance baselines (CIS / vSphere SCG / 等保 / PCI-DSS), drift detection6uv tool install vmware-harden

Troubleshooting & Contributing

If you encounter any errors or issues, please send the error message, logs, or screenshots to zhouwei008@gmail.com. Contributions are welcome β€” feel free to join us in maintaining and improving this project!

License

MIT

Related MCP Servers

4
4everland Hosting Mcp

πŸŽ–οΈ πŸ“‡ 🏠 🍎 🐧 - An MCP server implementation for 4EVERLAND Hosting enabling instant deployment of AI-generated code to decentralized storage networks like Greenfield, IPFS, and Arweave.

☁️ Cloud Platforms0 views
M
Mcp Server Aws Sso

πŸ“‡ ☁️ 🏠 - AWS Single Sign-On (SSO) integration enabling AI systems to securely interact with AWS resources by initiating SSO login, listing accounts/roles, and executing AWS CLI commands using temporary credentials.

☁️ Cloud Platforms0 views
M
Mcp

πŸŽ–οΈ πŸ“‡ ☁️ - Provision, SSH into, run commands on, and manage Linux VPSes from an agent β€” pay USDC over x402 or by card over HTTP 402, a running box in under 60s. No signup, no API key to buy.

☁️ Cloud Platforms0 views
M
Mcp Ipfs

πŸ“‡ ☁️ - upload and manipulation of IPFS storage

☁️ Cloud Platforms0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

No check timestamp yet.

Unclaimed listing (imported or pending owner verification). Claim it β†’
β˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.