Skip to main content

VMware vSphere storage management: datastores, iSCSI, vSAN. Domain-focused MCP skill.

Project description

VMware Storage

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 | 中文

VMware vSphere storage management: datastores, iSCSI, vSAN — 11 MCP tools, domain-focused and lightweight.

Split from vmware-aiops for lighter context and local model compatibility.

License: MIT

Companion Skills

Skill Scope Tools Install
vmware-aiops ⭐ entry point VM lifecycle, deployment, guest ops, clusters 31 uv tool install vmware-aiops
vmware-monitor Read-only monitoring, alarms, events, VM info 8 uv tool install vmware-monitor
vmware-vks Tanzu Namespaces, TKC cluster lifecycle 20 uv tool install vmware-vks
vmware-nsx NSX networking: segments, gateways, NAT, IPAM 31 uv tool install vmware-nsx-mgmt
vmware-nsx-security DFW microsegmentation, security groups, Traceflow 20 uv tool install vmware-nsx-security
vmware-aria Aria Ops metrics, alerts, capacity planning 18 uv tool install vmware-aria

Quick Install

# Via PyPI
uv tool install vmware-storage

# Or pip
pip install vmware-storage

Configuration

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

echo "VMWARE_MY_VCENTER_PASSWORD=your_password" > ~/.vmware-storage/.env
chmod 600 ~/.vmware-storage/.env

# Verify
vmware-storage doctor

MCP Tools (11)

Category Tools Type
Datastore list_all_datastores, browse_datastore, scan_datastore_images, list_cached_images Read
iSCSI storage_iscsi_enable, storage_iscsi_status, storage_iscsi_add_target, storage_iscsi_remove_target, storage_rescan Read/Write
vSAN vsan_health, vsan_capacity Read

Auto-Remediation Patterns (PoC)

The patterns/ directory hosts L5 auto-remediation candidate patterns from the Enterprise Harness Engineering framework. The first PoC pattern, patterns/iscsi-target-stale-rescan.yaml, describes an iSCSI HBA rescan as a low-risk, reversible, repeatable operation. The pattern schema is documented here only — runtime enforcement is not yet wired up, so this is a reference design, not production auto-remediation.

Common Workflows

Set Up iSCSI Storage on a Host

  1. Enable iSCSI adapter: vmware-storage iscsi enable esxi-01
  2. Add target: vmware-storage iscsi add-target esxi-01 10.0.0.100
  3. Verify: vmware-storage iscsi status esxi-01

The add-target command automatically rescans storage. Use --dry-run to preview any write command first.

Find Deployable Images Across Datastores

  1. List all datastores: vmware-storage datastore list
  2. Scan for images: vmware-storage datastore scan-images datastore01
  3. Browse with a pattern: vmware-storage datastore browse datastore01 --pattern "*.iso"

vSAN Health Assessment

  1. Check health: vmware-storage vsan health Cluster-Prod
  2. Check capacity: vmware-storage vsan capacity Cluster-Prod
  3. If issues found, investigate with vmware-monitor for alarms and events

CLI

# Datastore
vmware-storage datastore list
vmware-storage datastore browse datastore01
vmware-storage datastore scan-images datastore01

# iSCSI
vmware-storage iscsi status esxi-01
vmware-storage iscsi enable esxi-01
vmware-storage iscsi add-target esxi-01 192.168.1.100
vmware-storage iscsi remove-target esxi-01 192.168.1.100
vmware-storage iscsi rescan esxi-01

# vSAN
vmware-storage vsan health Cluster-Prod
vmware-storage vsan capacity Cluster-Prod

# Diagnostics
vmware-storage doctor

MCP Server

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

# Recommended — single command, no network re-resolve
vmware-storage mcp

# With a custom config path
VMWARE_STORAGE_CONFIG=/path/to/config.yaml vmware-storage mcp

# Or via Docker
docker compose up -d

Agent Configuration

Add to your AI agent's MCP config:

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

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

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

Why a Separate Skill?

vmware-aiops has 33 MCP tools — too heavy for local LLMs (7B-14B). By splitting storage into its own skill:

  • 11 tools — fits comfortably in small model context windows
  • Domain-focused — storage admins get only what they need
  • Composable — use alongside vmware-monitor or vmware-aiops as needed

Version Compatibility

Python: 3.10+ (since v1.5.27 — previously 3.11+). Tested on 3.10 / 3.11 / 3.12.

vSphere / VCF Support Notes
VCF 9.1 / vSphere 9.1 Full Released 2026-05-12. pyVmomi+vSAN SDK <10.0 works via SOAP.
VCF 9.0 / vSphere 9.0 Full pyVmomi 8.0.3+ with bundled vSAN SDK connects to vSphere 9.
8.0 Full vSAN SDK built into pyVmomi 8.0.3+
7.0 Full All storage APIs work
6.7 Compatible iSCSI + datastore features work; vSAN limited

Official Broadcom References

Safety

Feature Description
Read-heavy 6/11 tools are read-only
Input validation IP addresses and ports validated before iSCSI operations
Audit logging All operations logged to ~/.vmware-storage/audit.log
No VM operations Cannot create, delete, or modify VMs
Credential safety Passwords only from environment variables, never config files

Troubleshooting

Problem Cause & Fix
iSCSI enable fails with "already enabled" Not an error — adapter is already active. Run iscsi status to see configured targets.
"Datastore not found" when browsing Datastore names are case-sensitive. Run datastore list to get the exact name.
vSAN health shows "unknown" vSAN health requires a vCenter connection, not standalone ESXi.
Rescan doesn't discover new LUNs Wait 15-30 seconds after adding targets, then rescan again. Verify target IP is reachable from ESXi.
"Password not found" error Variable names follow VMWARE_<TARGET_UPPER>_PASSWORD (hyphens → underscores). Check ~/.vmware-storage/.env.
Connection timeout to vCenter Use vmware-storage doctor --skip-auth to bypass auth checks on high-latency networks.
"Datastore browse did not finish within Ns" The datastore is very large or busy. Narrow the search with a sub-path and a specific pattern (e.g. datastore browse ds01 --path templates --pattern "*.ova") instead of browsing the root — do not just retry the same broad browse.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vmware_storage-1.5.39.tar.gz (137.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vmware_storage-1.5.39-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

File details

Details for the file vmware_storage-1.5.39.tar.gz.

File metadata

  • Download URL: vmware_storage-1.5.39.tar.gz
  • Upload date:
  • Size: 137.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vmware_storage-1.5.39.tar.gz
Algorithm Hash digest
SHA256 95d7ee4c4cf40a13ff814c142a5e6ca6294b35383059a32fdfdc291b3fb4ecf2
MD5 c9ce2d9144d1e93252052f444a65d2b1
BLAKE2b-256 8fa46a6701cb7c12c13021a19bfe0b3c388c92f9062fc403aabda09ec3d3cc1e

See more details on using hashes here.

File details

Details for the file vmware_storage-1.5.39-py3-none-any.whl.

File metadata

  • Download URL: vmware_storage-1.5.39-py3-none-any.whl
  • Upload date:
  • Size: 29.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vmware_storage-1.5.39-py3-none-any.whl
Algorithm Hash digest
SHA256 c7e60367dc2332b04f983a854f56f85123c0de493d00e1d2cb7fa235b971b809
MD5 8113db2145a8c1a3aaea540019dce1de
BLAKE2b-256 77602328c9429fbdbd36be292319090c78bd0c04c3dee36fa10c96a3db93b380

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page