/unraid
This skill should be used when the user mentions Unraid, asks to check server health, monitor array or disk status, list or restart Docker containers, start or stop VMs, read system logs, check parity status, view notifications, manage API keys, configure rclone remotes, check
$ npx -y skills add dinglebear-ai/unraid --skill unraid --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/unraid
Context preview
The summary Claude sees to decide when to auto-load this skill.
This skill should be used when the user mentions Unraid, asks to check server health, monitor array or disk status, list or restart Docker containers, start or stop VMs, read system logs, check parity status, view notifications, manage API keys, configure rclone remotes, check
SKILL.md
unraid.SKILL.mdname: unraid
description: "This skill should be used when the user mentions Unraid, asks to check server health, monitor array or disk status, list or restart Docker containers, start or stop VMs, read system logs, check parity status, view notifications, manage API keys, configure rclone remotes, check UPS or power status, get live CPU or memory data, force stop a VM, check disk temperatures, or perform any operation on an Unraid NAS server. Also use when the user needs to set up or configure Unraid MCP credentials."
Unraid MCP Skill
Mode Detection
**MCP mode** (preferred): Use when `mcp__unraid-mcp__unraid` tool is available.
**HTTP fallback**: Use when MCP tools are unavailable. Credentials live in the file `~/.unraid-mcp/.env`; load it before running `curl` (see "HTTP Fallback Mode" below). Do NOT use `$CLAUDE_PLUGIN_OPTION_*` in the Bash tool — Claude Code injects those vars only into plugin subprocesses (hooks/MCP/LSP), not the Bash tool. The plugin's setup hook reads them and materializes `~/.unraid-mcp/.env`; the skill loads that file via `load-env.sh` (which parses it, never executes it).
---
Use the single `unraid` MCP tool with `action` (domain) + `subaction` (operation) for all Unraid operations.
Setup
Credentials come from the plugin's configuration form (*Unraid GraphQL API URL* / *Unraid API Key*) or a hand-edited `~/.unraid-mcp/.env`. They are read once at server startup, so after changing them you must restart the server / MCP client.
To check whether credentials are configured and the connection works:
unraid(action="health", subaction="setup") # read-only status + instructions
unraid(action="health", subaction="test_connection") # verify connectivity
`setup` does not prompt for or write credentials — it only reports the current status and explains how to set them.
Calling Convention
unraid(action="<domain>", subaction="<operation>", [additional params])
**Examples:**
unraid(action="system", subaction="overview")
unraid(action="docker", subaction="list")
unraid(action="health", subaction="check")
unraid(action="array", subaction="parity_status")
unraid(action="disk", subaction="disks")
unraid(action="vm", subaction="list")
unraid(action="notification", subaction="overview")
unraid(action="live", subaction="cpu")
---
All Domains and Subactions
`system` — Server Information
| Subaction | Description | |-----------|-------------| | `overview` | Complete system summary (recommended starting point) | | `server` | Hostname, version, uptime | | `servers` | All known Unraid servers | | `array` | Array status and disk list | | `network` | Network interfaces and config | | `registration` | License and registration status | | `variables` | Environment variables | | `metrics` | Real-time CPU, memory, I/O usage | | `services` | Running services status | | `display` | Display settings | | `display_details` | Direct `display` root metadata: case, theme, temperature display settings, thresholds, locale | | `config` | System configuration | | `online` | Quick online status check | | `owner` | Server owner information | | `settings` | User settings and preferences | | `server_details` | Direct `server` root details with owner and URLs; API key omitted | | `network_access_urls` | Direct `network.accessUrls` entries with type, name, IPv4, and IPv6 | | `flash` | USB flash drive details | | `ups_devices` | List all UPS devices | | `ups_device` | Single UPS device (requires `device_id`) | | `ups_config` | UPS configuration | | `server_time` | Current server time, time zone, and NTP config | | `timezones` | Available IANA time-zone options |
`health` — Diagnostics
| Subaction | Description | |-----------|-------------| | `check` | Comprehensive health check — connectivity, array, disks, containers, VMs, resources | | `test_connection` | Test API connectivity and authentication | | `diagnose` | Detailed diagnostic report with troubleshooting recommendations | | `setup` | Report credential status + setup instructions (read-only; does not write or prompt) |
`array` — Array & Parity
| Subaction | Description | |-----------|-------------| | `parity_status` | Current parity check progress and status | | `parity_history` | Historical parity check results | | `assignable_disks` | Physical disks not yet in the array (discovery counterpart to `add_disk`) | | `parity_start` | Start a parity check (requires `correct` — `True` writes corrections, `False` checks only) | | `parity_pause` | Pause a running parity check | | `parity_resume` | Resume a paused parity check | | `parity_cancel` | Cancel a running parity check | | `start_array` | Start the array | | `stop_array` | ⚠️ Stop the array (requires `confirm=True`) | | `add_disk` | Add a disk to the array (requires `slot`, `id`) | | `remove_disk` | ⚠️ Remove a disk (requires `slot`, `confirm=True`) | | `mount_disk` | Mount a disk | | `unmount_disk` | Unmount a disk | | `clear_disk_stats` | ⚠️ Clear disk statistics (requires `confirm=True`) |
`disk` — Storage & Logs
| Subaction | Description | |-----------|-------------| | `shares` | List network shares | | `disks` | All physical disks with health and temperatures | | `disk_details` | Detailed info for a specific disk (requires `disk_id`) | | `log_files` | List available log files | | `logs` | Read log content (requires `log_path`; optional `tail_lines`) | | `flash_backup` | ⚠️ Trigger a flash backup (requires `confirm=True`) |
`docker` — Containers
| Subaction | Description | |-----------|-------------| | `list` | All containers with status, image, state | | `details` | Single container details (requires container identifier) | | `start` | Start a container (requires container identifier) | | `stop` | Stop a container (requires container identifier) | | `restart` | Restart a container (requires container identifier; stop+start composite) | | `unpause` | Unpause a paused contain
Read more
name: unraid description: "This skill should be used when the user mentions Unraid, asks to check server health, monitor array or disk status, list or restart Docker containers, start or stop VMs, read system logs, check parity status, view notifications, manage API keys, configure rclone remotes, check UPS or power status, get live CPU or memory data, force stop a VM, check disk temperatures, or perform any operation on an Unraid NAS server. Also use when the user needs to set up or configure Unraid MCP credentials."
Unraid MCP Skill
Mode Detection
**MCP mode** (preferred): Use when `mcp__unraid-mcp__unraid` tool is available.
**HTTP fallback**: Use when MCP tools are unavailable. Credentials live in the file `~/.unraid-mcp/.env`; load it before running `curl` (see "HTTP Fallback Mode" below). Do NOT use `$CLAUDE_PLUGIN_OPTION_*` in the Bash tool — Claude Code injects those vars only into plugin subprocesses (hooks/MCP/LSP), not the Bash tool. The plugin's setup hook reads them and materializes `~/.unraid-mcp/.env`; the skill loads that file via `load-env.sh` (which parses it, never executes it).
---
Use the single `unraid` MCP tool with `action` (domain) + `subaction` (operation) for all Unraid operations.
Setup
Credentials come from the plugin's configuration form (*Unraid GraphQL API URL* / *Unraid API Key*) or a hand-edited `~/.unraid-mcp/.env`. They are read once at server startup, so after changing them you must restart the server / MCP client.
To check whether credentials are configured and the connection works:
unraid(action="health", subaction="setup") # read-only status + instructions unraid(action="health", subaction="test_connection") # verify connectivity
`setup` does not prompt for or write credentials — it only reports the current status and explains how to set them.
Calling Convention
unraid(action="<domain>", subaction="<operation>", [additional params])
**Examples:**
unraid(action="system", subaction="overview") unraid(action="docker", subaction="list") unraid(action="health", subaction="check") unraid(action="array", subaction="parity_status") unraid(action="disk", subaction="disks") unraid(action="vm", subaction="list") unraid(action="notification", subaction="overview") unraid(action="live", subaction="cpu")
---
All Domains and Subactions
`system` — Server Information
| Subaction | Description | |-----------|-------------| | `overview` | Complete system summary (recommended starting point) | | `server` | Hostname, version, uptime | | `servers` | All known Unraid servers | | `array` | Array status and disk list | | `network` | Network interfaces and config | | `registration` | License and registration status | | `variables` | Environment variables | | `metrics` | Real-time CPU, memory, I/O usage | | `services` | Running services status | | `display` | Display settings | | `display_details` | Direct `display` root metadata: case, theme, temperature display settings, thresholds, locale | | `config` | System configuration | | `online` | Quick online status check | | `owner` | Server owner information | | `settings` | User settings and preferences | | `server_details` | Direct `server` root details with owner and URLs; API key omitted | | `network_access_urls` | Direct `network.accessUrls` entries with type, name, IPv4, and IPv6 | | `flash` | USB flash drive details | | `ups_devices` | List all UPS devices | | `ups_device` | Single UPS device (requires `device_id`) | | `ups_config` | UPS configuration | | `server_time` | Current server time, time zone, and NTP config | | `timezones` | Available IANA time-zone options |
`health` — Diagnostics
| Subaction | Description | |-----------|-------------| | `check` | Comprehensive health check — connectivity, array, disks, containers, VMs, resources | | `test_connection` | Test API connectivity and authentication | | `diagnose` | Detailed diagnostic report with troubleshooting recommendations | | `setup` | Report credential status + setup instructions (read-only; does not write or prompt) |
`array` — Array & Parity
| Subaction | Description | |-----------|-------------| | `parity_status` | Current parity check progress and status | | `parity_history` | Historical parity check results | | `assignable_disks` | Physical disks not yet in the array (discovery counterpart to `add_disk`) | | `parity_start` | Start a parity check (requires `correct` — `True` writes corrections, `False` checks only) | | `parity_pause` | Pause a running parity check | | `parity_resume` | Resume a paused parity check | | `parity_cancel` | Cancel a running parity check | | `start_array` | Start the array | | `stop_array` | ⚠️ Stop the array (requires `confirm=True`) | | `add_disk` | Add a disk to the array (requires `slot`, `id`) | | `remove_disk` | ⚠️ Remove a disk (requires `slot`, `confirm=True`) | | `mount_disk` | Mount a disk | | `unmount_disk` | Unmount a disk | | `clear_disk_stats` | ⚠️ Clear disk statistics (requires `confirm=True`) |
`disk` — Storage & Logs
| Subaction | Description | |-----------|-------------| | `shares` | List network shares | | `disks` | All physical disks with health and temperatures | | `disk_details` | Detailed info for a specific disk (requires `disk_id`) | | `log_files` | List available log files | | `logs` | Read log content (requires `log_path`; optional `tail_lines`) | | `flash_backup` | ⚠️ Trigger a flash backup (requires `confirm=True`) |
`docker` — Containers
| Subaction | Description | |-----------|-------------| | `list` | All containers with status, image, state | | `details` | Single container details (requires container identifier) | | `start` | Start a container (requires container identifier) | | `stop` | Stop a container (requires container identifier) | | `restart` | Restart a container (requires container identifier; stop+start composite) | | `unpause` | Unpause a paused contain
A monorepo of Unraid tooling: two MCP servers (Python and Rust) and three Unraid OS plugins, plus the Claude/Codex agent integrations that surface them. Repo name.

