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.6.0.tar.gz (137.2 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.6.0-py3-none-any.whl (30.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vmware_storage-1.6.0.tar.gz
  • Upload date:
  • Size: 137.2 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.6.0.tar.gz
Algorithm Hash digest
SHA256 9bc1e0d230aa7dcb43741e4fc13a7a08f543ce58ab9bc73f69c53bbbe43a122d
MD5 20009db8356ca41758ab9a6e3bd0668b
BLAKE2b-256 d8bb0f6819efee051f4c5569e0d2542e80ab5641994f6aff94cfef1419e3c290

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vmware_storage-1.6.0-py3-none-any.whl
  • Upload date:
  • Size: 30.0 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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6701ccc2498876f15344caffc1d86516bcfba506d41bf4d61726a7c60c0a5cd9
MD5 548983841d07d9d5fae98b18d89f853f
BLAKE2b-256 17d5f765e1c8da6bc7fd03bbac51b4bf9e7eb13303a086dc1eef15e68daa15f7

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