Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
TRUENAS_AIOPS_MASTER_PASSWORDYesMaster password to unlock the encrypted API key store for non-interactive use (MCP server, CI, cron)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
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.

state is the replication task's own state — PENDING / RUNNING / FINISHED / ERROR / HOLD, matching what the appliance UI shows — and is never absent, PENDING being what a task reports before its first run. An ERROR row carries the appliance's error sentence naming what to fix. Also returns lastSnapshot and lastRun (epoch milliseconds).

Args: target: TrueNAS target name from config; omit to use the default.

cloudsync_listA

[READ] List cloud-sync tasks with description, direction, path, state.

state here is the last run's job state (SUCCESS / FAILED / RUNNING) and is null until the task has run — cloud-sync records, unlike replication ones, carry no state of their own.

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 undo_apply would run, and a human note. Use the undoId with undo_apply.

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 effectVerified. False means the original write lost its response, so the change it reverses is PROBABLE, not confirmed — check the live state before applying, and do not report the result as a restore of a state that may never have been reached.

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 _undo_id in a write result). dry_run: If True, preview the inverse tool + params without running it. target: Passed through to the inverse tool when it accepts a target.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/AIops-tools/TrueNAS-AIops'

If you have feedback or need assistance with the MCP directory API, please join our Discord server