Files
unraid-mcp/.claude-plugin

Unraid MCP Plugin

Query, monitor, and manage Unraid servers via GraphQL API using a single consolidated unraid tool with action+subaction routing.

Version: 1.1.3 | Category: Infrastructure | Tags: unraid, homelab, graphql, docker, virtualization


Installation

/plugin marketplace add jmagar/unraid-mcp
/plugin install unraid @unraid-mcp

After install, configure credentials:

unraid(action="health", subaction="setup")

Credentials are stored at ~/.unraid-mcp/.env. Get an API key from Unraid WebUI → Settings → Management Access → API Keys.


Tools

unraid — Primary Tool (107 subactions, 15 domains)

Call as unraid(action="<domain>", subaction="<operation>", [params]).

system — Server Information (18 subactions)

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
config System configuration
online Quick online status check
owner Server owner information
settings User settings and preferences
flash USB flash drive details
ups_devices List all UPS devices
ups_device Single UPS device (requires device_id)
ups_config UPS configuration

health — Diagnostics (4 subactions)

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 Configure credentials interactively (stores to ~/.unraid-mcp/.env)

array — Array & Parity (13 subactions)

Subaction Description
parity_status Current parity check progress and status
parity_history Historical parity check results
parity_start Start a parity check (requires correct)
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 (6 subactions)

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 (7 subactions)

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)
networks List Docker networks
network_details Details for a specific network (requires network_id)

Container identification: name, ID, or partial name (fuzzy match).

vm — Virtual Machines (9 subactions)

Subaction Description
list All VMs with state
details Single VM details (requires vm_id)
start Start a VM (requires vm_id)
stop Gracefully stop a VM (requires vm_id)
pause Pause a VM (requires vm_id)
resume Resume a paused VM (requires vm_id)
reboot Reboot a VM (requires vm_id)
force_stop ⚠️ Force stop a VM (requires vm_id, confirm=True)
reset ⚠️ Hard reset a VM (requires vm_id, confirm=True)

notification — Notifications (12 subactions)

Subaction Description
overview Notification counts (unread, archived by type)
list List notifications (optional filter, limit, offset)
create Create a notification (requires title, subject, description, importance)
archive Archive a notification (requires notification_id)
mark_unread Mark a notification as unread (requires notification_id)
recalculate Recalculate notification counts
archive_all Archive all unread notifications
archive_many Archive multiple (requires ids list)
unarchive_many Unarchive multiple (requires ids list)
unarchive_all Unarchive all archived notifications
delete ⚠️ Delete a notification (requires notification_id, notification_type, confirm=True)
delete_archived ⚠️ Delete all archived (requires confirm=True)

key — API Keys (7 subactions)

Subaction Description
list All API keys
get Single key details (requires key_id)
create Create a new key (requires name; optional roles, permissions)
update Update a key (requires key_id)
delete ⚠️ Delete a key (requires key_id, confirm=True)
add_role Add roles to a key (requires key_id, roles)
remove_role Remove roles from a key (requires key_id, roles)

plugin — Plugins (3 subactions)

Subaction Description
list All installed plugins
add Install plugins (requires names list)
remove ⚠️ Uninstall plugins (requires names list, confirm=True)

rclone — Cloud Storage (4 subactions)

Subaction Description
list_remotes List configured rclone remotes
config_form Get configuration form for a remote type
create_remote Create a new remote (requires name, provider_type, config_data)
delete_remote ⚠️ Delete a remote (requires name, confirm=True)

setting — System Settings (2 subactions)

Subaction Description
update Update system settings (requires settings_input object)
configure_ups ⚠️ Configure UPS settings (requires confirm=True)

customization — Theme & Appearance (5 subactions)

Subaction Description
theme Current theme settings
public_theme Public-facing theme
is_initial_setup Check if initial setup is complete
sso_enabled Check SSO status
set_theme Update theme (requires theme parameters)

oidc — SSO / OpenID Connect (5 subactions)

Subaction Description
providers List configured OIDC providers
provider Single provider details (requires provider_id)
configuration OIDC configuration
public_providers Public-facing provider list
validate_session Validate current SSO session (requires token)

user — Current User (1 subaction)

Subaction Description
me Current authenticated user info

live — Real-Time Subscriptions (11 subactions)

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

Subaction Description
cpu Live CPU utilization
memory Live memory usage
cpu_telemetry Detailed CPU telemetry
array_state Live array state changes
parity_progress Live parity check progress
ups_status Live UPS status
notifications_overview Live notification counts
owner Live owner info
server_status Live server status
log_tail Live log tail stream (requires path)
notification_feed Live notification feed

diagnose_subscriptions — Subscription Diagnostics

Inspect WebSocket subscription connection states, errors, and URLs. No parameters required.


test_subscription_query — Subscription Query Tester

Test a specific GraphQL subscription query against the live Unraid API. Uses an allowlisted set of safe fields only.


Destructive Actions

All require confirm=True. Without it, the action is blocked.

Domain Subaction
array stop_array, remove_disk, clear_disk_stats
vm force_stop, reset
notification delete, delete_archived
rclone delete_remote
key delete
disk flash_backup
setting configure_ups
plugin remove

Support