Using vmware-aiops with Goose

April 29, 2026 · View on GitHub

Goose is an open-source AI agent by Block that runs locally on your machine. This guide shows how to add vmware-aiops as an MCP extension so Goose can manage your VMware infrastructure using natural language.

Prerequisites

  1. Install vmware-aiops

    uv tool install vmware-aiops
    
  2. Configure credentials

    mkdir -p ~/.vmware-aiops
    cat > ~/.vmware-aiops/config.yaml << 'EOF'
    targets:
      my-vcenter:
        host: vcenter.example.com
        username: administrator@vsphere.local
        password_env: VMWARE_PASSWORD
        verify_ssl: false
    EOF
    
    echo "VMWARE_PASSWORD=your_password" > ~/.vmware-aiops/.env
    chmod 600 ~/.vmware-aiops/.env
    
  3. Verify setup

    vmware-aiops doctor
    

Adding to Goose

vmware-aiops mcp-config install --agent goose

This writes the extension config directly into ~/.config/goose/config.yaml.

Option B: goose configure (Interactive)

goose configure
# Select: Add Extension → MCP Server
# Name: vmware-aiops
# Command: vmware-aiops mcp     # v1.5.15+; legacy: uvx --from vmware-aiops vmware-aiops-mcp
# Env: VMWARE_AIOPS_CONFIG=~/.vmware-aiops/config.yaml

Option C: config.yaml (Manual)

Add to ~/.config/goose/config.yaml:

extensions:
  vmware-aiops:
    type: stdio
    cmd: vmware-aiops
    args:
      - mcp
    env:
      VMWARE_AIOPS_CONFIG: ~/.vmware-aiops/config.yaml
    enabled: true
    description: VMware vCenter/ESXi AI-powered operations

Available MCP Tools (32 tools)

CategoryTools
Inventorylist_virtual_machines, list_esxi_hosts, list_all_datastores, list_all_clusters
Healthget_alarms, get_events, vm_info
VM Lifecyclevm_power_on, vm_power_off, vm_set_ttl, vm_cancel_ttl, vm_list_ttl, vm_clean_slate
Deploymentdeploy_vm_from_ova, deploy_vm_from_template, deploy_linked_clone, attach_iso_to_vm, convert_vm_to_template, batch_clone_vms, batch_linked_clone_vms, batch_deploy_from_spec
Guest Operationsvm_guest_exec, vm_guest_exec_output, vm_guest_upload, vm_guest_download
Plan → Applyvm_create_plan, vm_apply_plan, vm_rollback_plan, vm_list_plans
Datastorebrowse_datastore, scan_datastore_images, list_cached_images

All tools accept an optional target parameter to switch between vCenter/ESXi environments.

Usage Examples

Example 1: Check infrastructure health

You: Show me all active alarms in my vCenter

Goose: [calls get_alarms]
Found 3 active alarms on prod-vcenter:
- vm-web01: CPU usage critical (92%)
- datastore01: Low disk space (85% used)
- host02: Memory balloon active

Example 2: VM lifecycle management

You: Clone vm-template to create 3 new web servers, name them web04/web05/web06

Goose: [calls vm_create_plan, then vm_apply_plan]
Plan created: clone vm-template × 3
Step 1/3: Deploying web04... ✓
Step 2/3: Deploying web05... ✓
Step 3/3: Deploying web06... ✓

Example 3: Guest operations with output capture

You: Run "df -h" on vm-linux01 and show disk usage

Goose: [calls vm_guest_exec_output]
Filesystem      Size  Used Avail Use%
/dev/sda1        50G   32G   18G  64%
/dev/sdb1       200G  180G   20G  90% ← nearing capacity

Example 4: Natural language query

You: Which VMs have been powered off for more than 7 days?

Goose: [calls list_virtual_machines, get_events]
Found 4 powered-off VMs idle > 7 days:
- vm-test-old (14 days), vm-dev-unused (21 days) ...

Local Model Support (Ollama)

vmware-aiops works with local models via Goose + Ollama. Recommended models for tool-calling:

ModelSizeTool-calling
qwen2.5:32b32B✅ Reliable
qwen2.5:14b14B✅ Good
llama3.1:8b8B⚠️ Basic
# ~/.config/goose/config.yaml
provider: ollama
model: qwen2.5:32b

extensions:
  vmware-aiops:
    type: stdio
    cmd: uvx
    args: [--from, vmware-aiops, vmware-aiops-mcp]
    env:
      VMWARE_AIOPS_CONFIG: ~/.vmware-aiops/config.yaml

For models < 14B, consider using vmware-monitor (8 read-only tools) instead to reduce context overhead.

See examples/ollama-local-setup.md for full local model setup.

Troubleshooting

IssueSolution
Extension not foundCheck that vmware-aiops mcp runs successfully (v1.5.15+) or which vmware-aiops returns a PATH
invalid peer certificate: UnknownIssuer (uvx)Corporate TLS proxy not trusted by uv. Use vmware-aiops mcp instead, or export UV_NATIVE_TLS=true
Auth failureRun vmware-aiops doctor to verify vCenter connectivity
Tool call timeoutLarge inventories may take 10–30s; Goose default timeout may need increasing
VMWARE_AIOPS_CONFIG not foundUse absolute path, not ~ expansion in config
Local model misses tool callsSwitch to a larger model (32B+) or use vmware-monitor (fewer tools)