VMware Aria Operations

io.github.zw008由 GitHub 帳號 zw008 發布v1.8.8更新於 Oct 24, 2026

VMware Aria Operations: metrics, alerts, capacity, anomaly detection — 18 MCP tools.

概覽

AI 產生的概覽

面向 VMware Aria Operations(VCF Operations)的 MCP 伺服器,讓助理讀取指標、告警、容量與健康狀態,並執行少量受保護的寫入操作。

可以做什麼
  • 列出資源並讀取其指標、健康徽章、資源佔用前段、指標鍵、屬性與關聯關係
  • 列出、檢視並追查告警,讀取告警定義與建議,確認或取消告警,新增備註
  • 讀取容量總覽、剩餘容量、預計耗盡時間與規格調整建議
  • 列出異常與風險徽章,檢查平台健康、收集器群組、節點記憶體/置換/堆積以及介面卡收集狀態
  • 產生、列出、取得與刪除報表,開始或結束資源維護
  • 查詢叢集憑證、密碼帳戶、VCF 網域、診斷發現與即時 PromQL,並可檢索唯讀 API 索引
適用情境
適合讓 AI 助理以自然語言回答 VMware Aria Operations 環境的問題:目前 CPU 或記憶體用量最高的對象、嚴重告警、容量耗盡預測、資源超配的虛擬機、異常或平台健康狀況。也適合確認告警、將主機置入維護等日常維運作業。
執行需求
以 Python 套件形式透過 uv 或 pip 安裝在本機,以 stdio 程序執行。需要能透過 HTTPS 連線到 Aria Operations 主機,需要包含目標主機、使用者名稱、連接埠與驗證來源的設定檔,帳戶密碼透過環境變數或 .env 檔提供。使用私有 CA 時可能需要設定 SSL_CERT_FILE。
安裝前請注意
伺服器持有 Aria Operations 帳戶的憑證,並以該帳戶的權限執行操作。46 個工具中有 10 個會寫入:確認或取消告警、建立或刪除告警定義與報表、開始或結束維護;破壞性寫入需要 confirm=true,否則只回報將要變更的內容。所有呼叫都會記錄到本機稽核資料庫。若以 HTTPS 對外提供服務,任何能連上該端點的人都以伺服器帳戶身分操作,應使用權杖、角色與最小權限帳戶。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 VMware Aria Operations,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

VMware Aria Operations MCP Skill

For a read-only check of this skill with your model and agent host, use the shared model-fit self-test in the marketplace root.

Note: In VCF 9.0 and later, VMware Aria Operations has been rebranded as VCF Operations. This skill works against both names — the /suite-api/ REST endpoints are unchanged.

Author: Wei Zhou, VMware by Broadcom — [email protected] This is a community-driven project by a VMware engineer, not an official VMware product. For official VMware developer tools see developer.broadcom.com.

AI-assisted monitoring and capacity planning for VMware Aria Operations (vRealize Operations) via the Model Context Protocol (MCP).

[Python 3.10+] [License: MIT]

Upgrading to 2.0

2.0 renames 4 of its MCP tools so every name starts with a verb (e.g. findings_list → list_findings, fleet_certificate_list → list_fleet_certificates, fleet_domain_list → list_fleet_domains). The full old → new table is in RELEASE_NOTES.md. Nothing else changes: same tools, parameters, safety gates and CLI commands. If an agent prompt, script or ~/.vmware/rules.yaml names a tool, update it — though deny rules written with the old names keep working with vmware-policy ≥ 1.18 (vmware-audit policy lists any rule the renames widened), and vmware-pilot ≥ 1.13 translates old names in saved workflows. If an install older than 2.0 shares that rules.yaml, give it vmware-policy ≥ 1.18.2 too: it matches each rule against both the old and the new name, so one file serves both.

Overview

vmware-aria exposes 46 MCP tools for interacting with Aria Operations through natural language AI agents (Claude Code, Cursor, Goose, etc.):

CategoryToolsType
Resourceslist, get, metrics, health badge, top consumers, metric keys, properties, relationshipsRead-only (8)
Alertslist, get, investigate (alert→resource), acknowledge, cancel, definitions, notes (list / add), recommendationsRead + 3 Write (9)
Alert Definitionssymptom definitions, create, enable/disable, deleteRead + 3 Write (4)
Capacityoverview, remaining, time-remaining, rightsizingRead-only (4)
Reportsdefinitions, generate, list, get, deleteRead + 2 Write (5)
Anomalylist anomalies, risk badgeRead-only (2)
Healthplatform health, collector groups, Aria node memory/swap/heap, adapter collection stateRead-only (4)
Maintenancestart / end resource maintenance, maintenance schedulesRead + 2 Write (3)
Fleet / PromQL (VCF Ops 9.1)fleet certificates, password accounts, VCF domains, diagnostic findings, real-time PromQL queryRead-only (5)
Raw APIsearch the API operation index, GET one indexed path — for reads no tool above coversRead-only (2)

Total: 46 tools — 36 read-only, 10 write

Quick Start

bash
# Installuv tool install vmware-aria
# Configuremkdir -p ~/.vmware-ariacat > ~/.vmware-aria/config.yaml << 'EOF'targets:  prod:    host: aria-ops.example.com    username: admin    port: 443    verify_ssl: true    auth_source: LOCALdefault_target: prodEOF
# Set password (never in config.yaml)echo "VMWARE_ARIA_PROD_PASSWORD=your_password" > ~/.vmware-aria/.envchmod 600 ~/.vmware-aria/.env
# Verify setupvmware-aria doctor

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:

bash
# 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:

bash
# 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-aria

CLI Examples

bash
# List top CPU consumersvmware-aria resource top --metric 'cpu|usage_average' --top 10
# Check active CRITICAL alertsvmware-aria alert list --criticality CRITICAL
# Acknowledge an alertvmware-aria alert acknowledge <alert-id>
# Fetch 4-hour CPU + memory metrics for a VM ("missing" says why a key has no points)vmware-aria resource metrics <vm-id> --metrics 'cpu|usage_average,mem|usage_average' --hours 4
# Check cluster capacityvmware-aria capacity remaining <cluster-id>vmware-aria capacity time-remaining <cluster-id>
# Find rightsizing opportunities (vCPU / memory now → recommended, direction, actionable)vmware-aria capacity rightsizing
# Check Aria platform health: HEALTHY / DEGRADED / DOWN / UNKNOWN, per service, plus versionvmware-aria health statusvmware-aria health collectors
# Is the Aria node short of memory? Which adapter stopped collecting?vmware-aria health nodevmware-aria health adapters
# Look up the metric keys a VM reports before querying themvmware-aria resource keys <vm-id> --filter 'mem|'
# Put a host in maintenance for 2 hours before planned work, then end it (asks once; --dry-run prints the API call)vmware-aria maintenance start <host-id> --duration 120vmware-aria maintenance end <host-id>
# Record who is handling an alert, and read what Aria recommendsvmware-aria alert note-add <alert-id> "Taking this: rebooting esx-03"vmware-aria alert recommendations <alert-id>

MCP Setup (Claude Code)

After uv tool install vmware-aria, add to ~/.claude.json:

json
{  "mcpServers": {    "vmware-aria": {      "command": "vmware-aria",      "args": ["mcp"],      "env": {        "VMWARE_ARIA_CONFIG": "~/.vmware-aria/config.yaml"      }    }  }}

v1.5.15+ uses the single-command form vmware-aria mcp. The legacy vmware-aria-mcp console script is still kept for backward compatibility. If you must use uvx --from vmware-aria vmware-aria mcp (no install) and hit invalid peer certificate: UnknownIssuer behind a corporate TLS proxy, set UV_NATIVE_TLS=true or use the recommended vmware-aria mcp form above.

Then use natural language:

  • "Show me the top 10 CPU consumers right now"
  • "List all CRITICAL alerts and acknowledge them"
  • "How long until the prod cluster runs out of memory?"
  • "Which VMs are over-provisioned? Show rightsizing recommendations"
  • "Are there any anomalies on vm-web-01?"

Authentication

Aria Operations uses vRealizeOpsToken authentication:

POST /suite-api/api/auth/token/acquire{"username": "admin", "password": "...", "authSource": "LOCAL"}→ {"token": "abc123", "validity": 1765182896000}  # validity = expiry epoch ms
Subsequent requests: Authorization: vRealizeOpsToken abc123

Tokens have a 6-hour sliding validity (extended on each call, per the official spec); the client re-acquires automatically 60 seconds before expiry. The validity field is the expiry timestamp in epoch milliseconds, not a duration.

Architecture

User (natural language)  ↓AI Agent (Claude Code / Goose / Cursor)  ↓  [reads SKILL.md]vmware-aria MCP server (stdio transport)  ↓  [HTTPS + vRealizeOpsToken]Aria Operations Suite API  ↓VMs / Hosts / Clusters / Alerts / Capacity

Companion Skills

SkillScopeToolsInstall
vmware-aiops ⭐ entry pointVM lifecycle, deployment, guest ops, clusters60uv tool install vmware-aiops
vmware-monitorRead-only monitoring, alarms, events, VM info32uv tool install vmware-monitor
vmware-nsxNSX networking: segments, gateways, NAT, IPAM33uv tool install vmware-nsx-mgmt
vmware-nsx-securityDFW microsegmentation, security groups, Traceflow22uv tool install vmware-nsx-security
vmware-aviAVI / NSX ALB load balancing, AKO K8s operations28uv tool install vmware-avi
vmware-storageDatastores, iSCSI, vSAN12uv tool install vmware-storage
vmware-vksTanzu Namespaces, TKC cluster lifecycle23uv tool install vmware-vks
vmware-hardenCompliance baselines, drift detection8uv tool install vmware-harden

Security

  • Passwords loaded from env vars or .env file, never from config.yaml
  • Every MCP tool call and every CLI command that reaches Aria audit-logged to ~/.vmware/audit.db (via vmware-policy); CLI write operations (alert acknowledge/cancel, alert notes, alert definition management, report generate/delete, resource maintenance start/end) also append to ~/.vmware-aria/audit.log
  • API responses sanitized (control chars stripped, 500-char limit) to prevent prompt injection
  • MCP destructive writes (alert acknowledge/cancel, alert definition and report delete, maintenance start/end) take confirm (default false): without confirm=true they return a blast_radius of what would change and change nothing; confirm=true is refused on a blocker (e.g. a resource already in maintenance) or an unreadable field. The old confirmed alias was removed in 2.4.2; a call that passes it is refused as an unknown argument
  • TLS verification is on by default; for a private CA set SSL_CERT_FILE to a bundle with your CA (see setup guide). verify_ssl: false is for isolated self-signed labs only
Official Broadcom References

Remote access (HTTPS) and limiting tools

By default vmware-aria mcp speaks stdio to one local client and offers every tool. Two options change that (vmware-policy ≥ 1.21.0).

Serve over HTTPS so clients on other machines can connect. Every caller needs a bearer token:

bash
vmware-audit token create alice          # prints the token once; give it to alicevmware-audit token list                  # names onlyvmware-audit token revoke alice          # refused from its next request, no restartvmware-aria mcp --transport https --host 0.0.0.0 --port 8443 \    --cert /etc/vmware-mcp/server.pem --key /etc/vmware-mcp/server-key.pem \    --public-name mcp.example.com

Connect a client (Claude Code shown; any MCP client that supports streamable HTTP and custom headers works):

bash
claude mcp add --transport http vmware-aria https://mcp.example.com:8443/mcp \    --header "Authorization: Bearer $VMWARE_MCP_TOKEN"
json
{  "mcpServers": {    "vmware-aria": {      "type": "http",      "url": "https://mcp.example.com:8443/mcp",      "headers": { "Authorization": "Bearer ${VMWARE_MCP_TOKEN}" }    }  }}
  • The server will not start without a token, refuses Host/Origin values outside --public-name, and checks before it binds that unauthenticated requests get 401. Use a certificate your clients trust for those names.
  • Behind a TLS-terminating reverse proxy on the same machine use --transport http --host 127.0.0.1 --public-name mcp.example.com and pass the Authorization header through.
  • Behind a load balancer or gateway on another machine, keep --transport https (a self-signed certificate is fine), list in --public-name the host name the balancer sends as Host, and have it forward Authorization. Its health probe can use GET /healthz, which needs no token and returns only {"status": "ok"} (vmware-policy ≥ 1.23.0).
  • Send traceparent or X-Request-ID with each request to have it stored on the audit row; vmware-audit log --correlation-id ID then finds the calls behind one platform request.
  • The audit log records each caller as token:<name>. Calls run side by side: each holds its own session to a target, up to VMWARE_MCP_POOL_SIZE (default 2) sessions per target. Each session is a login on the target; a call waits at most 300 s for a free one.
  • Everyone who can reach the endpoint acts with this server's account. Tokens identify callers; they grant nothing on the platform. Run one endpoint per privilege level.
  • Several people or roles on one endpoint: run vmware-audit roles enable once, then give each token a role (vmware-audit token create NAME --role reader, or a role in roles.yaml naming tools and targets; vmware-policy ≥ 1.24.0). A role limits what the token may call on this endpoint; it cannot grant more than the account has. See vmware-policy's README, "Roles for network callers".

Offer only read tools, plus the writes you choose:

bash
vmware-aria mcp --expose read --allow-write acknowledge_alert# or: VMWARE_ARIA_MCP_EXPOSE=read VMWARE_ARIA_MCP_ALLOW_WRITE=acknowledge_alert vmware-aria mcp

Tools not offered do not appear in the client's tool list. A bad value or an unknown write tool stops the server (exit 2). This limits what clients are offered; it is not authorization, so the account itself should be least-privilege.

Details: skills/vmware-aria/references/setup-guide.md ("Serving MCP over HTTPS", "Limiting which tools are offered").

License

MIT — see LICENSE

來源:README.md,提交 a920f29

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.8.8最新Sep 16, 2026

評分

已滿足適用檢查項的 40%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。