Governed Nutanix Prism Central v4 ops: clusters/VMs/storage/DR/LCM, ETag-safe, 47 MCP tools (preview)
git clone https://github.com/AIops-tools/Nutanix-AIops ~/.claude/skills/nutanix-aiopsResumen de Skills
<!-- mcp-name: io.github.AIops-tools/nutanix-aiops -->
# Nutanix AIops
> **Disclaimer**: Community-maintained open-source project. **Not affiliated with, endorsed by, or sponsored by Nutanix.** Product and trademark names belong to their owners. MIT licensed.
Governed AI-ops for **Nutanix Prism Central** (v4 REST API) — clusters, hosts,
VMs (AHV + ESXi), storage, network, catalog, data protection / DR, alerts, LCM
upgrades, and capacity — with a **built-in governance harness**: unified audit
log, token/runaway budget guard, undo-token recording, and descriptive
risk-tier labels. Connects to Prism Central on HTTPS `:9440` with
HTTP Basic auth (username + encrypted password). Self-contained: no dependencies
beyond `httpx` and the MCP SDK.
## Why this over a read-only Nutanix MCP
- **Automatic ETag / If-Match** on every mutation. The v4 API rejects an update
or delete without the entity's current ETag — the classic footgun. This tool
fetches and sends `If-Match` for you.
- **Automatic pagination** — list tools walk every v4 page for you, and return a
`{"<items>": [...], "returned", "limit", "truncated"}` envelope so a capped
read announces itself instead of looking like the whole estate.
- **Absent is not empty** — a field Prism Central did not return comes back as
`null`, never as `""`. v4 omits a lot of fields; the two facts stay distinct.
- **Mixed-hypervisor VM listing** — `vm_list` returns both **AHV** and **ESXi**
guests under the same Prism Central (built for hypervisor-migration estates).
- **Governance harness** — audit / token+call budget / descriptive risk-tier
labels / undo-token / prompt-injection sanitize, with **dry-run +
double-confirm** on destructive writes.
## What this tool does, and does not, decide
It delivers Nutanix Prism Central operations — reads and writes — accurately and
efficiently, and records every one of them. It does **not** decide whether a write is
allowed to happen. That is the agent's judgement, or the permission of the account
you connect it with: connect with a Prism Central account holding only a
read-only (Viewer) role, and the writes fail at the server — the place that
actually owns the permission.
So there is no read-only switch, no policy file, no approval gate to configure. The
one thing the tool guarantees is that nothing is silent: **every call, over MCP and
over the CLI alike, lands an audit row** in `~/.nutanix-aiops/audit.db`, and
destructive writes still capture their before-state and record an inverse where one
exists.
> Each tool declares a `risk_level`, carried into the audit row as a descriptive
> tier (none/confirm/review) — so a reviewer can see at a glance that a row was a
> high-risk delete. It is a label, not a gate.
Running a smaller / local model? See
[agent-guardrails.md](skills/nutanix-aiops/references/agent-guardrails.md) — it lists
the guardrails this tool now enforces for you (so you don't spend prompt budget
restating them) and gives a ready-made system prompt for what's left.
## Capability matrix (51 MCP tools)
| Group | Tools | Count | R/W |
|-------|-------|:-----:|:---:|
| **Clusters** | `cluster_list`, `cluster_health`, `host_list`, `cluster_utilization` | 4 | 4 read |
| **VMs** | `vm_list`, `vm_get`, `vm_power_on`, `vm_guest_shutdown`, `vm_power_off`, `vm_reboot`, `vm_create`, `vm_update`, `vm_clone`, `vm_delete`, `vm_migrate` | 11 | 2 read · 9 write |
| **Storage** | `storage_container_list` / `_create` / `_update` / `_delete` | 4 | 1 read · 3 write |
| **Network** | `subnet_list`, `subnet_get`, `subnet_create`, `subnet_delete` | 4 | 2 read · 2 write |
| **Catalog** | `image_list`, `image_delete`, `category_list`, `category_create`, `category_assign` | 5 | 2 read · 3 write |
| **Data protection / DR** | `snapshot_list` / `_create` / `_delete` / `_restore`, `recovery_point_list`, `protection_domain_list`, `vm_protect`, `pd_failover` | 8 | 3 read · 5 write |
| **Alerts** | `alert_list`, `event_list`, `audit_list`, `analyze_alert` (RCA), `alert_acknowledge`, `alert_resolve` | 6 | 4 read · 2 write |
| **LCM (upgrades)** | `lcm_inventory`, `lcm_precheck`, `lcm_update` | 3 | 1 read · 2 write |
| **Capacity** | `task_list`, `capacity_runway` | 2 | 2 read |
| **Diagnostics / RCA** | `cluster_health_rca`, `alert_triage_rca` | 2 | 2 read |
| **Undo** | `undo_list`, `undo_apply` | 2 | 1 read · 1 write |
| **Total** | | **51** | 24 read · 27 write |
**Diagnostics / RCA** are the flagship reads. `cluster_health_rca` ranks the whole
estate — degraded fault-tolerance state, storage pools and containers over 80%
(warning) / 90% (critical), nodes not healthy or missing from inventory —
worst-first, each finding citing the measured percentage or raw Prism state that
tripped it. `alert_triage_rca` groups active alerts by severity with a count per
level, flags unacknowledged criticals, and surfaces the oldest unresolved alert
with its age. Both are read-only (`risk_level="low"`) and deterministic — no
clock, no randomness, same input → same answer. `analyze_alert` complements them
at the single-alert level: it correlates an alert with its related
events into a probable-cause + suggested-actions summary. 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, at the CLI, double confirmation.
## Install
```bash
uv tool install nutanix-aiops # or: pipx install nutanix-aiops
```
## Quick start
```bash
nutanix-aiops init # wizard: PC host / port 9440 / username / verify_ssl + encrypted password
nutanix-aiops doctor # config, secrets, connectivity + REST-RBAC preflight
nutanix-aiops overview # one-shot estate summary
nutanix-aiops diagnose cluster-health # worst-first RCA: resiliency, storage, nodes
nutanix-aiops vm list # AHV + ESXi VMs
```
Run as an MCP server (stdio):
```bash
export NUTANIX_AIOPS_MASTER_PASSWORD=... # unlock the encrypted secret store non-interactively
nutanix-aiops mcp
```
## CLI
`nutanix-aiops` (Typer): `init`, `overview`, `doctor`, `mcp`; `cluster
list/health/hosts/util`; `vm list/get/power/delete/migrate` (`delete` & `migrate`
take `--dry-run` + double confirm); `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 via the MCP server.
## Governance
Every MCP tool passes through the bundled `@governed_tool` harness:
- **Audit** — every call (params, result, status, duration, risk tier, and any
operator-supplied approver/rationale) is logged to `~/.nutanix-aiops/audit.db`
(relocatable via `NUTANIX_AIOPS_HOME`). The CLI writes the same row the MCP
path does — there is no unaudited entry point.
- **Runaway guard** — a safety backstop, not an authorization gate: the same
call hammered in a tight loop trips a circuit breaker. Disable with
`NUTANIX_RUNAWAY_MAX=0`; optional hard ceilings via `NUTANIX_MAX_TOOL_CALLS` /
`NUTANIX_MAX_TOOL_SECONDS`.
- **Undo recording** — reversible writes record an inverse descriptor built
from the fetched before-state (`vm_update` → prior CPU/memory, `vm_migrate`
→ prior host).
- **Risk tier** — a descriptive label on the audit row derived from
`risk_level`; it gates nothing.
## Credentials
The Prism Central password is stored **encrypted** in
`~/.nutanix-aiops/secrets.enc` (Fernet + scrypt) — never plaintext on disk.
Unlock with a master password from `NUTANIX_AIOPS_MASTER_PASSWORD` (MCP/CI) or an
interactive prompt (CLI). The non-secret connection details (host, port,
username, verify_ssl) live in `~/.nutanix-aiops/config.yaml`. A legacy plaintext
env var `NUTANIX_<TARGET>_PASSWORD` is honoured as a fallback.
> **Gotcha:** the Prism Central account needs **REST API** rights, not just Web
> UI access. `doctor`'s REST-RBAC preflight catches this early.
## Supported scope & limitations
- **Validation status.** All behaviour is currently validated against mocked v4
REST responses; it has not yet been run against a live Prism Central. The
fastest live check is `nutanix-aiops doctor`. See
[`docs/VERIFICATION.md`](docs/VERIFICATION.md) for the full live-verification
checklist.
- **Self-testable free** on **Nutanix Community Edition (CE)**: a single-node CE
cluster + an X-Small Prism Central VM.
- **Least-verified paths:** LCM update (`lcm_update`), protection-domain failover
(`pd_failover`), and **ESXi-VM listing** in particular need live validation.
- **Out of scope this release:** IAM / users / roles, Files / Objects / Volumes
services, reports, X-Play playbooks, and anything outside Prism Central v4.
## Missing a capability?
Missing a tool, an API dialect, or a workflow? **Open an issue or PR** —
feedback and contributions are welcome.
</content>
Lo que la gente pregunta sobre Nutanix-AIops
¿Qué es AIops-tools/Nutanix-AIops?
+
AIops-tools/Nutanix-AIops es skills para el ecosistema de Claude AI. Governed Nutanix Prism Central v4 ops: clusters/VMs/storage/DR/LCM, ETag-safe, 47 MCP tools (preview) Tiene 0 estrellas en GitHub y se actualizó por última vez yesterday.
¿Cómo se instala Nutanix-AIops?
+
Puedes instalar Nutanix-AIops clonando el repositorio (https://github.com/AIops-tools/Nutanix-AIops) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar AIops-tools/Nutanix-AIops?
+
AIops-tools/Nutanix-AIops aún no ha sido auditado por nuestro agente de seguridad. Revisa el repositorio original en GitHub antes de usarlo en producción.
¿Quién mantiene AIops-tools/Nutanix-AIops?
+
AIops-tools/Nutanix-AIops es mantenido por AIops-tools. La última actividad registrada en GitHub es de yesterday, con 0 issues abiertos.
¿Hay alternativas a Nutanix-AIops?
+
Sí. En ClaudeWave puedes explorar skills similares en /categories/skills, ordenados por popularidad o actividad reciente.
Despliega Nutanix-AIops en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
[](https://claudewave.com/repo/aiops-tools-nutanix-aiops)<a href="https://claudewave.com/repo/aiops-tools-nutanix-aiops"><img src="https://claudewave.com/api/badge/aiops-tools-nutanix-aiops" alt="Featured on ClaudeWave: AIops-tools/Nutanix-AIops" width="320" height="64" /></a>Más Skills
A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io
Graphs that teach > graphs that impress. Turn any code into an interactive knowledge graph you can explore, search, and ask questions about. Works with Claude Code, Codex, Cursor, Copilot, Gemini CLI, and more.
omo/lazycodex: The coding agent for tokenmaxxers;the one and only agent harness for complex codebases. For your Codex, for your OpenCode
Turn any AI agent into an AI Scientist. The #1 Agent Skills library for science, used by 160,000+ scientists worldwide. 148 ready-to-use skills plus 100+ scientific databases covering biology, chemistry, medicine, and drug discovery. Compatible with Cursor, Claude Code, Codex, Pi, Antigravity, and the open Agent Skills standard.
A lightweight alternative to OpenClaw that runs in containers for security. Connects to WhatsApp, Telegram, Slack, Discord, Gmail and other messaging apps,, has memory, scheduled jobs, and runs directly on Anthropic's Agents SDK
A curated collection of 1000+ agent skills from official dev teams and the community, compatible with Claude Code, Codex, Gemini CLI, Cursor, and more.