mcpField
U
unraid-management-agent

unraid-management-agent

github.com/tinkerologieCloud & DevOps7353 installsUpdated 2d ago
Repository

About unraid-management-agent

Unraid Management Agent is an Unraid plugin that exposes system monitoring and control through MCP, REST, and WebSocket interfaces. This skill guides AI agents to inspect current state first, use appropriate tools, and obtain approval for high-risk actions.

Key features

  1. 01Monitors system, storage, containers, and VMs
  2. 02Controls array, containers, VMs, and services
  3. 03Provides diagnostic prompts and live resources
  4. 04Streams near-real-time events over WebSocket
  5. 05Requires confirmation for high-risk operations

Use cases

  1. 01Check disk, array, or system health
  2. 02Find and manage a container or VM
  3. 03Investigate performance and maintenance issues
  4. 04Review impact before a destructive operation

MCP support

The plugin exposes 126 tools, 5 resources, and 6 prompts through an MCP endpoint. Clients can connect over Streamable HTTP or use STDIO locally.

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/tinkerologie/unraid-management-agent --skill unraid-management-agent

After installing, type/unraid-management-agentin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

references/
connection.md
diagnostics.md
mcp-tools.md
rest-api.md
workflows.md

Details

From the project README

Unraid Management Agent

The Unraid Management Agent is a plugin that runs on an Unraid server and exposes its full state and control surface over three interfaces:

InterfaceEndpointUse for
MCP (Model Context Protocol)http://<unraid-ip>:8043/mcpAI agents — 126 tools, 5 resources, 6 prompts
REST APIhttp://<unraid-ip>:8043/api/v1Scripts, Custom GPT Actions, integrations
WebSocketws://<unraid-ip>:8043/api/v1/wsLive event streaming (near real-time)

Core principle: prefer the MCP tools when acting as an AI agent — they are purpose-built, validated, and named for discovery. Fall back to the REST API only for clients that cannot speak MCP (e.g. ChatGPT Custom GPTs). Never invent tool names or paths; the real catalogs are in the reference files below.

Decision Workflow

1. Connect

If the client is not yet connected, read references/connection.md. In short:

  • Streamable HTTP (remote/LAN): point the client at http://<unraid-ip>:8043/mcp.
  • STDIO (local on the server): run unraid-management-agent mcp-stdio.
  • The agent has no authentication by default — it is designed for a trusted LAN or behind a VPN/reverse proxy. Do not assume an API key exists unless the user says so.
2. Read before you write

Always establish current state with a read-only tool before taking action:

  • System snapshot → get_system_info, or get_diagnostic_summary for a broad view
  • Array → get_array_status; Disks → list_disks / get_disk_info
  • Containers → list_containers / search_containers / get_container_info
  • VMs → list_vms / search_vms / get_vm_info

Read-only tools are marked ReadOnlyHint: true. The full catalog is in references/mcp-tools.md.

3. Pick the narrowest tool
  • Looking for one container/VM among many? Use search_containers / search_vms, not a full list_ dump.
  • Want a specific subsystem? Use the dedicated getter (get_ups_status, get_gpu_metrics, get_zfs_pools, …) rather than scraping get_diagnostic_summary.
  • Need history/metrics over time? Use query_metric_history, get_parity_history, get_alert_history, get_health_check_history.
4. Confirm destructive actions

Control tools (ReadOnlyHint: false) change the system. The high-risk ones require confirm=true and must be confirmed with the user first:

ToolEffect
array_action (stop)Makes all array data inaccessible
system_reboot / system_shutdownRestarts / powers off the whole server
execute_user_script / run_runbookRuns arbitrary user-defined actions
delete_vm_snapshot / restore_vm_snapshotIrreversible VM state change
delete_alert_rule / delete_health_checkRemoves configuration
set_fan_speed / set_fan_modeChanges fan speeds / control modes
set_fan_profile / create_fan_profileChanges temperature curves
restore_fan_defaultsResets all fan controls to BIOS defaults
remote_share_actionMounts / unmounts network storage

Note: container_action (remove) and vm_action (reset) enforce confirm=true server-side for the destructive action only, so a client reading only the schema cannot see the requirement.

Always state what will happen and wait for explicit user approval before sending confirm=true. See references/mcp-tools.md for the full read/write breakdown.

5. Use live data correctly

For continuously changing values (CPU, container state), do not poll the REST API in a tight loop. Use the MCP resources (references/diagnostics.md) or the WebSocket stream. One MCP tool call returns the latest cached value already.

6. Diagnose with prompts, not ad-hoc chains

The agent ships 6 built-in diagnostic prompts that orchestrate the right tools for common investigations (disk health, performance, maintenance, array state, overview, troubleshooting). Prefer them over reinventing the analysis. See references/diagnostics.md.


Critical Anti-Patterns

Anti-patternUse insteadWhy
Inventing tool names (docker_restart, getArray)The exact names in references/mcp-tools.mdWrong names just fail
Stopping the array / rebooting without confirmationRead state, explain impact, then confirm=trueData loss / downtime
Polling GET /api/v1/system in a loopMCP resources or WebSocket ws://…/api/v1/wsThe agent already caches; polling wastes CPU
list_containers then filtering in-contextsearch_containers / get_container_infoLess context, faster, more accurate
Hand-rolling a disk-health analysisdiagnose_disk_health promptBuilt-in prompt covers SMART, temps, wear, errors
Assuming an API key / auth headerTreat as unauthenticated LAN/VPN unless told otherwiseDefault deploy has no auth
Using REST from an MCP-capable clientThe MCP toolsValidated args, richer results, fewer round-trips
Editing Unraid config files directlyThe agent's control tools / settings endpointsTools match the WebUI's own logic and validation

Reference Files

Read these when you need detail. Keep SKILL.md itself in context; pull references on demand.

FileWhen to read
references/connection.mdConnecting any client (Claude Code/Desktop, claude.ai, Cursor, Copilot, Gemini CLI, ChatGPT) via MCP HTTP/STDIO; troubleshooting connectivity
references/mcp-tools.mdThe full catalog of all 126 MCP tools grouped by category, with read/write (destructive) flags and arguments
references/diagnostics.mdThe 6 diagnostic prompts and 5 real-time resources — what each analyses and when to use it
references/rest-api.mdREST API surface for non-MCP clients (Custom GPT Actions, scripts): base path, key endpoints, path/body conventions
references/workflows.mdNatural-language request → tool/endpoint mappings and end-to-end examples (monitoring, container/VM/array control, maintenance)

Capabilities at a Glance

  • Monitoring (read-only): system, array, disks + SMART, shares, Docker (containers, networks, stats, logs, update checks), VMs + snapshots, GPU, UPS, NUT, ZFS (pools/datasets/snapshots/ARC), network + access URLs, hardware, notifications, parity history, logs, collectors, settings, unassigned devices, remote SMB/NFS shares.
  • Control: container & VM lifecycle, array start/stop, parity check start/stop/pause/resume, disk spin up/down, container updates, plugin update checks (read-only), VM snapshot create/delete/restore, VM clone, service start/stop/restart, user scripts, collector enable/disable + intervals, reboot/shutdown.
  • Observability & automation: alert rules (expr-lang) + templates, health checks (HTTP/TCP/container), remediation runbooks, an optional autonomous agent, fan control (profiles/curves), CPU governor, and system tuning (turbo boost, disk cache, inotify).

Comments

Markdown supported