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 分

    请在仓库或注册中心条目中声明许可证。