Nutanix-AIops is a community-maintained open-source project that provides governed AI-ops capabilities for the Nutanix Prism Central v4 REST API. The project is not affiliated with, endorsed by, or sponsored by Nutanix, and is licensed under the MIT License.
Purpose
This tool is intended for scenarios that require operating Nutanix Prism Central in an automated, auditable manner, covering management tasks such as clusters, hosts, virtual machines (AHV and ESXi), storage, networking, directories, data protection/disaster recovery, alerts, LCM upgrades, and capacity. It emphasizes "governed": all operations are logged and safety guardrails are provided, but it does not decide for the user whether a given write is allowed—that depends on the agent's judgment or the permissions of the connected account.
Key Capabilities
- Automatic ETag / If-Match: The v4 API must carry the entity's current ETag when updating or deleting, otherwise it will be rejected. This tool automatically obtains and sends If-Match, avoiding this common pitfall.
- Automatic pagination: List tools traverse all v4 pages and return an envelope structure containing returned, limit, and truncated, so that truncated read results are self-explanatory rather than appearing to be a complete list.
- Missing is not the same as empty: Fields not returned by Prism Central are returned as null rather than an empty string, preserving the distinction between the two facts.
- Mixed virtualization platform VM listing: vm_list can return both AHV and ESXi virtual machines under the same Prism Central, making it suitable for virtualization migration scenarios.
- Governance framework: Unified audit logs, token/call budget protection, descriptive risk-level labels, revoked token records, prompt injection sanitization, and support for dry-run and double confirmation for destructive writes.
- Diagnostics and root cause analysis: cluster_health_rca ranks the entire environment, listing degraded fault tolerance states worst-first, storage pools and containers exceeding 80% (warning)/90% (critical), and unhealthy or missing nodes, with each finding citing the measured percentage or raw Prism state that triggered it. alert_triage_rca groups active alerts by severity and counts them, flags unacknowledged critical alerts, and shows the longest-unresolved alert and its age. Both areRead-only (risk_level="low") and deterministic—no clock, no randomness, the same input produces the same result. analyze_alert supplements at the single-alert level, correlating the alert with related events and giving a summary of possible causes and recommended actions.
- High-risk writes: vm_delete, vm_migrate, storage_container_delete, subnet_delete, snapshot_delete, snapshot_restore, pd_failover, image_delete, lcm_update support dry_run, and support double confirmation under the CLI.
Usage
As a Claude Code plugin
A single install provides the agent with skills and an MCP server. The MCP server is fetched via uv and pinned to the package version declared by the plugin, so audit lines can be traced back to the code that wrote them. Credentials still need to be configured via nutanix-aiops init.
As an OpenClaw plugin
The same bundle is published on ClawHub, and a single install provides both the skills and their MCP server. After installation, the OpenClaw gateway must be restarted to load the plugin. The MCP server is fetched via uv and pinned to that exact version, so uvx must be in PATH; otherwise the skills will still be installed, but will report "Visible to model: no". Credentials are configured in the same way.
As a CLI or standalone MCP server
It can run as an MCP server (stdio). CLI commands include: init, overview, doctor, mcp; cluster list/health/hosts/util; vm list/get/power/delete/migrate (delete and migrate support --dry-run and double confirmation); diagnose cluster-health, diagnose alert-triage; secret set/list/rm/migrate/rotate-password. The CLI is a convenience subset; the full 51-tool surface is provided through the MCP server.
Governance mechanism
Every MCP tool passes through the built-in @governed_tool framework:
- Audit: every call (arguments, result, status, duration, risk level, and the approver/reason provided by the operator) is recorded to ~/.nutanix-aiops/audit.db (relocatable via NUTANIX_AIOPS_HOME). The CLI writes the same rows as the MCP path; there is no unaudited entry point.
- Runaway protection: as a safety fallback rather than an authorization gate, repeated triggering of the same call in a tight loop trips a circuit breaker. Can be disabled via NUTANIX_RUNAWAY_MAX=0; optional hard caps are set via NUTANIX_MAX_TOOL_CALLS / NUTANIX_MAX_TOOL_SECONDS.
- Undo records: reversible writes record a reverse descriptor based on the captured prior state (vm_update → previous CPU/memory, vm_migrate → previous host).
- Risk levels: descriptive labels based on risk_level on audit rows; they do not constitute a gate.
Credential storage
The Prism Central password is stored encrypted in ~/.nutanix-aiops/secrets.enc (Fernet + scrypt), never in plaintext on disk. Unlocked via NUTANIX_AIOPS_MASTER_PASSWORD (MCP/CI) or an interactive prompt (CLI). Non-secret connection information (host, port, username, verify_ssl) is located in ~/.nutanix-aiops/config.yaml. The legacy plaintext environment variable NUTANIX_<TARGET>_PASSWORD can be used as a fallback.
Note: Prism Central accounts require REST API permissions, not just Web UI access. doctor's REST-RBAC precheck can catch this in advance.
Applicable scenarios
- Teams that need automated operations for Nutanix Prism Central while retaining a complete audit trail.
- Scenarios that use AI agents (such as Claude Code, OpenClaw) to perform Nutanix management tasks.
- Operations personnel who need to diagnose cluster health, triage alerts, and perform root cause analysis.
- In Nutanix CommuniFree self-test on ty Edition (CE): single-node CE cluster + X-Small Prism Central VM.
Limitations
- Verification status: All behavior is currently verified only against simulated v4 REST responses, and has not yet been run on a real Prism Central. The fastest real-world check is nutanix-aiops doctor. For the full real-world verification checklist, see docs/VERIFICATION.md.
- Least-verified paths: LCM updates (lcm_update), protection domain failover (pd_failover), and ESXi VM listing especially need real-world verification.
- Out of scope for this version: IAM/users/roles, Files/Objects/Volumes services, reports, X-Play playbooks, and anything outside Prism Central v4.
- The tool does not decide whether writes are allowed; there is no read-only switch, policy file, or approval gate that can be configured; permissions are determined by the role of the connected account.
- When passwords are passed via exported variables, they can be read by all processes started by that shell and recorded in the shell history; on shared or long-lived hosts, interactive prompts or injection from a secret manager are recommended.