truenas-aiops
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| TRUENAS_AIOPS_MASTER_PASSWORD | Yes | Master password to unlock the encrypted API key store for non-interactive use (MCP server, CI, cron) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| alert_listB | [READ] List active TrueNAS alerts with level, message, class, dismissed. Args: target: TrueNAS target name from config; omit to use the default. |
| dataset_listA | [READ] List ZFS datasets with id, name, type, pool, used/available. Args: target: TrueNAS target name from config; omit to use the default. |
| dataset_getA | [READ] Return detail for a single dataset by id (e.g. 'tank/data'). Args: dataset_id: TrueNAS dataset id (see dataset_list). target: TrueNAS target name from config. |
| dataset_createA | [WRITE] Create a ZFS dataset. Non-destructive (creates new storage). Pass dry_run=True to preview. No undo descriptor — dataset deletion is intentionally out of scope. Args: name: Full dataset path including the pool, e.g. 'tank/projects'. pool: Optional pool name for context/labelling. dry_run: If True, preview without creating. target: TrueNAS target name from config. |
| pool_health_rcaA | [READ] Flag ZFS pools by state, error counters, and capacity. Pulls the /pool listing (with topology + scan) and flags pools that are DEGRADED/FAULTED/OFFLINE, pools with non-zero read/write/checksum/scan error counters, and pools over the 80%/90% capacity thresholds — worst-first, each finding citing the measured status/counts/percent and a concrete action. Args: target: TrueNAS target name from config; omit to use the default. |
| alert_and_capacity_rcaA | [READ] Surface active TrueNAS alerts by level and datasets near full. Collects the active alert list and the /pool/dataset listing, then reports worst-first findings: one per active (non-dismissed) alert at WARNING+ and one per dataset whose usage is near its quota/available ceiling (80%/90%), each citing the measured level/percent. Args: target: TrueNAS target name from config; omit to use the default. |
| disk_listA | [READ] List physical disks with name, serial, model, size, pool. Args: target: TrueNAS target name from config; omit to use the default. |
| smart_test_resultsA | [READ] Recent S.M.A.R.T. self-test results per disk (status/description). Args: target: TrueNAS target name from config. |
| overviewA | [READ] One-shot health summary: pools (capacity/health), alerts, services. Call this first to triage a TrueNAS system before drilling into a specific pool, dataset, or service. Args: target: TrueNAS target name from config; omit to use the default. |
| pool_listA | [READ] List ZFS pools with id, name, status, health, capacity. Args: target: TrueNAS target name from config; omit to use the default. |
| pool_getA | [READ] Return detail for a single pool by id. Args: pool_id: TrueNAS pool id (see pool_list). target: TrueNAS target name from config. |
| pool_statusC | [READ] Health and scan/topology status of a single pool. Args: pool_id: TrueNAS pool id. target: TrueNAS target name from config. |
| scrub_statusA | [READ] Current scrub scan state (function/state/percentage) for a pool. Args: pool_id: TrueNAS pool id. target: TrueNAS target name from config. |
| pool_capacityB | [READ] Capacity summary per pool: size/allocated/free and used percent. Args: target: TrueNAS target name from config. |
| pool_scrub_startA | [WRITE] Start a scrub (integrity check) on a pool. Non-destructive. Pass dry_run=True to preview. No undo descriptor (a scrub has no clean inverse beyond cancellation). Poll progress with scrub_status; do not re-issue. Args: pool_name: ZFS pool name (e.g. 'tank'). dry_run: If True, preview without starting the scrub. target: TrueNAS target name from config. |
| replication_listA | [READ] List replication tasks with name, direction, transport, state.
Args: target: TrueNAS target name from config; omit to use the default. |
| cloudsync_listA | [READ] List cloud-sync tasks with description, direction, path, state.
Args: target: TrueNAS target name from config. |
| service_listA | [READ] List system services with name, state (RUNNING/STOPPED), enable. Args: target: TrueNAS target name from config; omit to use the default. |
| service_restartA | [WRITE] Restart a system service (e.g. 'smb', 'nfs'). Pass dry_run=True to preview. Captures the prior service state for the audit record; declares no undo (a restart is not cleanly reversible). Refuses a service name that is not present in service_list, and refuses 'ssh' unless confirm=True — SSH is the out-of-band recovery path, and bouncing it can strand whoever is working over it. Both refusals apply under dry_run too, which must report a refusal rather than preview a call that will be refused. Args: service: TrueNAS service name (see service_list). confirm: Required (True) only to restart 'ssh'; ignored otherwise. dry_run: If True, preview without restarting. target: TrueNAS target name from config. |
| snapshot_listA | [READ] List ZFS snapshots, optionally filtered to one dataset. Returns {"snapshots": [...], "returned": N, "limit": L, "truncated": bool}. When "truncated" is true there are more snapshots than were returned — re-run with a higher limit or filter to one dataset. Args: dataset: Optional dataset path to filter (e.g. 'tank/data'). limit: Max snapshot rows to return (default 200). target: TrueNAS target name from config. |
| snapshot_createA | [WRITE] Create a ZFS snapshot 'dataset@name'. Inverse: snapshot_delete. Pass dry_run=True to preview. Args: dataset: Dataset path to snapshot (e.g. 'tank/data'). name: Snapshot name (e.g. 'manual-2026-06-28'). dry_run: If True, preview without creating (and without an undo token). target: TrueNAS target name from config. |
| snapshot_deleteA | [WRITE] Delete a ZFS snapshot by id ('dataset@name'). IRREVERSIBLE. Pass dry_run=True to preview. Captures the snapshot's prior state for the audit record; declares no undo. Args: snapshot_id: Full snapshot id 'dataset@name' (see snapshot_list). dry_run: If True, preview without deleting. target: TrueNAS target name from config. |
| system_infoA | [READ] TrueNAS system summary: version, hostname, memory, cores, uptime. Args: target: TrueNAS target name from config; omit to use the default. |
| undo_listA | [READ] List recorded, not-yet-applied undo tokens (most recent first). Each entry names the original tool, the inverse tool that Returns {"undos": [...], "returned": N, "limit": L, "truncated": bool}. When "truncated" is true there are more recorded tokens than were shown — re-run with a higher limit rather than treating the list as complete. One extra row is fetched so "truncated" is measured, not guessed from a length coincidence. Each entry carries Args: limit: Max rows to return (default 50, hard cap 500). target: Unused (undo state is host-local); accepted for CLI uniformity. |
| undo_applyA | [WRITE][risk=medium] Apply a recorded undo by dispatching its inverse tool. The inverse runs through its own governed tool, so it is audited under its own risk tier. Pass dry_run=True to preview the inverse call without executing it. A token can only be applied once. Args:
undo_id: The undoId from undo_list (or an |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 25 tools
Most tools target distinct resource-action pairs (alert_list, dataset_get, pool_scrub_start, snapshot_delete). However, the two RCA tools (pool_health_rca and alert_and_capacity_rca) overlap in purpose, and pool_list/pool_capacity both report capacity, though descriptions are clear enough to tell them apart.
Tool names follow a loose resource_action pattern (dataset_list, snapshot_create), but there are inconsistencies: scrub_status vs. pool_scrub_start, compound names like alert_and_capacity_rca, and generic names like overview and system_info. The mixture is readable but not uniform.
At 25 tools, the server is on the heavy side but each tool addresses a distinct aspect of TrueNAS monitoring and operations (pools, datasets, snapshots, services, disks, replication, cloud sync, undo). A few reads could be consolidated, but the count is appropriate for the broad scope.
The surface covers core read/monitoring and several write actions (create dataset, snapshot, start scrub, restart service). Notable gaps remain: no dataset update/delete, no pool create/delete, no alert management, no snapshot rollback, and only list operations for replication/cloud sync. These are significant but partly intentional for an AIOps server.