Files
unraid-mcp/skills/unraid/references/quick-reference.md
Jacob Magar efaab031ae fix: address all 17 PR review comments
Resolves review threads:
- PRRT_kwDOO6Hdxs50fewG (setup.py): non-eliciting clients now return True
  from elicit_reset_confirmation so they can reconfigure without being blocked
- PRRT_kwDOO6Hdxs50fewM (test-tools.sh): add notification/recalculate smoke test
- PRRT_kwDOO6Hdxs50fewP (test-tools.sh): add system/array smoke test
- PRRT_kwDOO6Hdxs50fewT (resources.py): surface manager error state instead of
  reporting 'connecting' for permanently failed subscriptions
- PRRT_kwDOO6Hdxs50feAj (resources.py): use is not None check for empty cached dicts
- PRRT_kwDOO6Hdxs50fewY (integration tests): remove duplicate snapshot-registration
  tests already covered in test_resources.py
- PRRT_kwDOO6Hdxs50fewe (test_resources.py): replace brittle import-detail test
  with behavior tests for connecting/error states
- PRRT_kwDOO6Hdxs50fewh (test_customization.py): strengthen public_theme assertion
- PRRT_kwDOO6Hdxs50fewk (test_customization.py): strengthen theme assertion
- PRRT_kwDOO6Hdxs50fewo (__init__.py): correct subaction count ~88 -> ~107
- PRRT_kwDOO6Hdxs50fewx (test_oidc.py): assert providers list value directly
- PRRT_kwDOO6Hdxs50fewz (unraid.py): remove unreachable raise after vm handler
- PRRT_kwDOO6Hdxs50few2 (unraid.py): remove unreachable raise after docker handler
- PRRT_kwDOO6Hdxs50fev8 (CLAUDE.md): replace legacy 15-tool table with unified
  unraid action/subaction table
- PRRT_kwDOO6Hdxs50fev_ (test_oidc.py): assert providers + defaultAllowedOrigins
- PRRT_kwDOO6Hdxs50feAz (CLAUDE.md): update tool categories to unified API shape
- PRRT_kwDOO6Hdxs50feBE (CLAUDE.md/setup.py): update unraid_health refs to
  unraid(action=health, subaction=setup)
2026-03-16 02:58:54 -04:00

4.2 KiB

Unraid MCP — Quick Reference

All operations use: unraid(action="<domain>", subaction="<operation>", [params])

Most Common Operations

Health & Status

unraid(action="health",  subaction="setup")            # First-time credential setup
unraid(action="health",  subaction="check")            # Full health check
unraid(action="health",  subaction="test_connection")  # Quick connectivity test
unraid(action="system",  subaction="overview")         # Complete server summary
unraid(action="system",  subaction="metrics")          # CPU / RAM / I/O usage
unraid(action="system",  subaction="online")           # Online status

Array & Disks

unraid(action="system",  subaction="array")             # Array status overview
unraid(action="disk",    subaction="disks")             # All disks with temps & health
unraid(action="array",   subaction="parity_status")     # Current parity check
unraid(action="array",   subaction="parity_history")    # Past parity results
unraid(action="array",   subaction="parity_start")      # Start parity check
unraid(action="array",   subaction="stop_array",  confirm=True)   # ⚠️ Stop array

Logs

unraid(action="disk", subaction="log_files")                          # List available logs
unraid(action="disk", subaction="logs", path="syslog", lines=50)      # Read syslog
unraid(action="disk", subaction="logs", path="/var/log/syslog")       # Full path also works

Docker Containers

unraid(action="docker", subaction="list")
unraid(action="docker", subaction="details",  container_id="plex")
unraid(action="docker", subaction="start",    container_id="nginx")
unraid(action="docker", subaction="stop",     container_id="nginx")
unraid(action="docker", subaction="restart",  container_id="sonarr")
unraid(action="docker", subaction="networks")

Virtual Machines

unraid(action="vm", subaction="list")
unraid(action="vm", subaction="details",    vm_id="<id>")
unraid(action="vm", subaction="start",      vm_id="<id>")
unraid(action="vm", subaction="stop",       vm_id="<id>")
unraid(action="vm", subaction="reboot",     vm_id="<id>")
unraid(action="vm", subaction="force_stop", vm_id="<id>", confirm=True)   # ⚠️

Notifications

unraid(action="notification", subaction="overview")
unraid(action="notification", subaction="unread")
unraid(action="notification", subaction="list",    filter="UNREAD", limit=10)
unraid(action="notification", subaction="archive", notification_id="<id>")
unraid(action="notification", subaction="create",  title="Test", subject="Subject",
                                                   description="Body", importance="normal")

API Keys

unraid(action="key", subaction="list")
unraid(action="key", subaction="create", name="my-key", roles=["viewer"])
unraid(action="key", subaction="delete", key_id="<id>", confirm=True)   # ⚠️

Plugins

unraid(action="plugin", subaction="list")
unraid(action="plugin", subaction="add",    names=["community.applications"])
unraid(action="plugin", subaction="remove", names=["old.plugin"], confirm=True)   # ⚠️

rclone

unraid(action="rclone", subaction="list_remotes")
unraid(action="rclone", subaction="delete_remote", name="<remote>", confirm=True)   # ⚠️

Live Subscriptions (real-time)

unraid(action="live", subaction="cpu")
unraid(action="live", subaction="memory")
unraid(action="live", subaction="parity_progress")
unraid(action="live", subaction="log_tail")
unraid(action="live", subaction="notification_feed")
unraid(action="live", subaction="ups_status")

Returns {"status": "connecting"} on first call — retry momentarily.


Domain → action= Mapping

Old tool name (pre-v1.0) New action=
unraid_info system
unraid_health health
unraid_array array
unraid_storage disk
unraid_docker docker
unraid_vm vm
unraid_notifications notification
unraid_keys key
unraid_plugins plugin
unraid_rclone rclone
unraid_settings setting
unraid_customization customization
unraid_oidc oidc
unraid_users user
unraid_live live