Skip to main content
Glama
Unraid MCP Server

Unraid MCP Server

Unraid MCP

PyPI ghcr.io

GraphQL-basierter MCP-Server für Unraid. Stellt ein einheitliches unraid-Tool für Systeminspektion, Verwaltungsaufgaben, Live-Telemetrie und destruktive Aktionen bereit, die durch explizite Bestätigung geschützt sind.

Übersicht

Der Server übersetzt MCP-Tool-Aufrufe in Unraid GraphQL-Abfragen und -Mutationen über HTTP und WebSocket. Alle Operationen nutzen ein einziges unraid-Tool, das über action + subaction gesteuert wird. Live-Telemetrie verwendet WebSocket-Abonnements, die Echtzeitdaten von der Unraid-API streamen.

Related MCP server: unraid-mcp-server

Was dieses Repository enthält

  • unraid_mcp/ — Server, GraphQL-Client, WebSocket-Abonnements, Konfiguration und Tool-Handler

  • skills/unraid/ — Dokumentation der Skills für den Client

  • docs/ — Referenzen zu Authentifizierung, destruktiven Aktionen und Veröffentlichung

  • .claude-plugin/, .codex-plugin/, gemini-extension.json — Client-Manifeste

  • docker-compose.yaml, Dockerfile, entrypoint.sh — Container-Bereitstellung

  • tests/ — Unit-, Sicherheits-, Schema-, HTTP-Layer- und Live-Tests

Tools

Tool-Index

Tool

Zweck

unraid

Einheitlicher Action/Subaction-Router für alle Operationen

unraid_help

Gibt diese Referenz als Markdown zurück

diagnose_subscriptions

Vollständiger Diagnose-Dump des WebSocket-Abonnementsystems

test_subscription_query

Testet ein rohes GraphQL-Abonnement für Schema-/Debug-Arbeiten

unraid — Aktionsgruppen

Alle Operationen laufen über ein Tool. Wählen Sie eine action und dann eine subaction innerhalb dieser.

system — 18 Subactions

Serverinformationen, Metriken, Netzwerk und USV.

Subaction

Beschreibung

Erforderliche Parameter

overview

OS, CPU, Speicherlayout, Versionen, Maschinen-ID

—

array

Array-Status, Kapazität, Zusammenfassung des Festplattenzustands

—

network

Zugriffs-URLs, HTTP/HTTPS-Ports, LAN/WAN-IPs

—

registration

Lizenztyp, Schlüsseldatei, Ablaufdatum

—

variables

Vollständiger Unraid-Variablensatz (Zeitzone, Freigaben, etc.)

—

metrics

Live-CPU-% und Speicherauslastung

—

services

Laufende Dienste mit Name, Online-Status, Version

—

display

Name des aktuellen UI-Themes

—

config

Konfigurationsgültigkeit und Fehlerstatus

—

online

Boolesche Erreichbarkeitsprüfung

—

owner

Benutzername des Eigentümers, Avatar, Profil-URL

—

settings

Einheitliche Schlüssel/Wert-Karte der Einstellungen

—

server

Zusammenfassung in einem Aufruf: Hostname, Uptime, Unraid-Version, Array-Status

—

servers

Alle registrierten Server mit LAN/WAN-IPs und URLs

—

flash

Hersteller- und Produktinformationen des Flash-Laufwerks

—

ups_devices

Alle USV-Geräte mit Batterie- und Leistungsmetriken

—

ups_device

Details eines einzelnen USV-Geräts

device_id

ups_config

Konfiguration des USV-Daemons

—

health — 4 Subactions

Diagnose der Verbindungs- und Systemgesundheit.

Subaction

Beschreibung

Erforderliche Parameter

check

Umfassender Gesundheitscheck: API-Latenz, Array-Status, Warnungen, Docker-Container-Zusammenfassung

—

test_connection

Ping an die Unraid-API und Rückgabe der Latenz in ms

—

diagnose

Status des Abonnementsystems, Fehleranzahl, Verbindungsstatus

—

setup

Interaktive Einrichtung der Anmeldedaten (unterstützt MCP-Elicitation)

—

array — 13 Subactions

Paritätsprüfungen und Array-Festplattenoperationen. Destruktive Subactions sind mit * markiert.

Subaction

Beschreibung

Erforderliche Parameter

Destruktiv

parity_status

Aktueller Fortschritt der Paritätsprüfung, Geschwindigkeit, Fehler

—

—

parity_history

Ergebnisse vergangener Paritätsprüfungen

—

—

parity_start

Startet eine Paritätsprüfung

correct (bool)

—

parity_pause

Pausiert eine laufende Paritätsprüfung

—

—

parity_resume

Setzt eine pausierte Paritätsprüfung fort

—

—

parity_cancel

Bricht eine laufende Paritätsprüfung ab

—

—

start_array

Startet das Unraid-Array

—

—

stop_array

Stoppt das Unraid-Array

confirm=True

*

add_disk

Fügt eine Festplatte zum Array hinzu

disk_id; optional slot

—

remove_disk

Entfernt eine Festplatte aus dem Array (Array muss gestoppt sein)

disk_id, confirm=True

*

mount_disk

Mountet eine Array-Festplatte

disk_id

—

unmount_disk

Unmountet eine Array-Festplatte

disk_id

—

clear_disk_stats

Löscht I/O-Statistiken für eine Festplatte (irreversibel)

disk_id, confirm=True

*

disk — 6 Subactions

Freigaben, physische Festplatten, Protokolldateien und Flash-Backup. Destruktive Subactions sind mit * markiert.

Subaction

Beschreibung

Erforderliche Parameter

Destruktiv

shares

Alle Benutzerfreigaben mit Größe, Zuweisungseinstellungen, LUKS-Status

—

—

disks

Liste der physischen Festplatten (ID, Gerät, Name)

—

—

disk_details

Einzelne Festplatte: Seriennummer, Größe, Temperatur

disk_id

—

log_files

Liste der verfügbaren Protokolldateien (Name, Pfad, Größe, geändert)

—

—

logs

Liest den Inhalt einer Protokolldatei mit Zeilenbereich

log_path; optional tail_lines (Standard 100, max 10000)

—

flash_backup

Initiiert rclone-Backup des Flash-Laufwerks auf ein Remote

remote_name, source_path (muss mit /boot beginnen), destination_path, confirm=True

*

Details zu flash_backup: Ruft die Unraid initiateFlashBackup GraphQL-Mutation auf, die einen rclone-Kopiervorgang vom Flash-Laufwerk auf ein konfiguriertes rclone-Remote auslöst. Das Ziel auf dem Remote wird überschrieben, falls es existiert. Gibt { status, jobId } zurück. Zur Wiederherstellung: Verwenden Sie rclone, um das Backup zurück auf das Flash-Laufwerk zu kopieren, oder extrahieren Sie einzelne Konfigurationsdateien. Konfigurieren Sie das rclone-Remote zuerst über rclone/create_remote.

docker — 7 Subactions

Container-Lebenszyklus und Netzwerk-Inspektion. Keine destruktiven Subactions.

Subaction

Beschreibung

Erforderliche Parameter

list

Alle Container: ID, Namen, Image, Zustand, Status, autoStart

—

details

Vollständige Container-Details: Ports, Mounts, Labels, Netzwerkeinstellungen

container_id

start

Startet einen Container

container_id

stop

Stoppt einen Container

container_id

restart

Stoppt und startet einen Container (Stopp + Start nacheinander)

container_id

networks

Alle Docker-Netzwerke: ID, Name, Treiber, Scope

—

network_details

Einzelnes Netzwerk mit IPv6, Containern, Optionen, Labels

network_id

Container-Identifikatoren akzeptieren die vollständige ID, ein kurzes ID-Präfix, den exakten Namen oder ein eindeutiges Namenspräfix. Mutationen (start, stop, restart) erfordern einen exakten Namen oder die vollständige ID.

vm — 9 Subactions

Lebenszyklus virtueller Maschinen. Destruktive Subactions sind mit * markiert.

Subaction

Beschreibung

Erforderliche Parameter

Destruktiv

list

Alle VMs: ID, Name, Zustand, UUID

—

—

details

Details einer einzelnen VM

vm_id

—

start

Startet eine VM

vm_id

—

stop

Stoppt eine VM ordnungsgemäß

vm_id

—

pause

Pausiert eine laufende VM

vm_id

—

resume

Setzt eine pausierte VM fort

vm_id

—

reboot

Startet eine VM neu

vm_id

—

force_stop

Hartes Ausschalten einer VM (Datenverlust möglich)

vm_id, confirm=True

*

reset

Hartes Zurücksetzen einer VM ohne ordnungsgemäßes Herunterfahren

vm_id, confirm=True

*

vm_id akzeptiert UUID, präfixierte ID oder VM-Namen.

notification — 12 Subactions

CRUD für Systembenachrichtigungen. Destruktive Subactions sind mit * markiert.

Subaction

Beschreibung

Erforderliche Parameter

Destruktiv

overview

Anzahl der ungelesenen und archivierten Benachrichtigungen nach Wichtigkeit (INFO/WARNING/ALERT)

—

—

list

Paginierte Liste der Benachrichtigungen

list_type (UNREAD oder ARCHIVE, Standard UNREAD); optional importance, offset, limit

—

create

Erstellt eine Benachrichtigung

title (≤200), subject (≤500), description (≤2000), importance (INFO/WARNING/ALERT)

—

archive

Archiviert eine einzelne Benachrichtigung

notification_id

—

mark_unread

Verschiebt eine archivierte Benachrichtigung zurück zu ungelesen

notification_id

—

recalculate

Berechnet die Übersichtszahlen neu

—

—

archive_all

Archiviert alle ungelesenen Benachrichtigungen

optional importance zum Filtern

—

archive_many

Archiviert spezifische Benachrichtigungen nach ID

notification_ids (Liste)

—

unarchive_many

De-archiviert spezifische Benachrichtigungen nach ID

notification_ids (Liste)

—

unarchive_all

Verschiebt alle archivierten Benachrichtigungen zurück zu ungelesen

optional importance zum Filtern

—

delete

Löscht eine einzelne Benachrichtigung dauerhaft

notification_id, notification_type, confirm=True

*

delete_archived

Löscht alle archivierten Benachrichtigungen dauerhaft

confirm=True

*

key — 7 Subactions

API-Schlüsselverwaltung. Destruktive Subactions sind mit * markiert.

Subaction

Beschreibung

Erforderliche Parameter

Destruktiv

list

Alle API-Schlüssel mit Rollen und Berechtigungen

—

—

get

Details eines einzelnen API-Schlüssels

key_id

—

create

Erstellt einen API-Schlüssel

name; optional roles, permissions

—

update

Aktualisiert Name, Rollen oder Berechtigungen

key_id; optional name, roles, permissions

—

delete

Löscht einen API-Schlüssel (widerruft sofort den Zugriff)

key_id, confirm=True

*

add_role

Fügt einem bestehenden Schlüssel eine Rolle hinzu

key_id, roles (erstes Element wird verwendet)

—

remove_role

Entfernt eine Rolle von einem bestehenden Schlüssel

key_id, roles (erstes Element wird verwendet)

—

plugin — 3 Subactions

Unraid-Plugin-Verwaltung. Destruktive Subactions sind mit * markiert.

Subaction

Beschreibung

Erforderliche Parameter

Destruktiv

list

Alle installierten Plugins mit Version und Modul-Flags

—

—

add

Installiert Plugins nach Namen

names (Liste); optional bundled, restart

—

remove

Deinstalliert Plugins nach Namen (irreversibel ohne Neuinstallation)

names (Liste), confirm=True

*

rclone — 4 Subactions

Verwaltung von Cloud-Speicher-Remotes. Destruktive Subactions sind mit * markiert.

Subaction

Beschreibung

Erforderliche Parameter

Destruktiv

list_remotes

Alle konfigurierten rclone-Remotes mit Typ und Parametern

—

—

config_form

Konfigurationsformular-Schema für einen Anbietertyp

optional provider_type

—

create_remote

Erstellt ein neues rclone-Remote

name, provider_type, config_data (dict von string/number/bool; max 50 Schlüssel)

—

delete_remote

Löscht eine rclone-Remote-Konfiguration (löscht keine Remote-Daten)

name, confirm=True

*

setting — 2 Subactions

Systemeinstellungen. Destruktive Subactions sind mit * markiert.

Subaction

Beschreibung

Erforderliche Parameter

Destruktiv

update

Aktualisiert Systemeinstellungen (JSON-Schlüssel/Wert-Eingabe)

settings_input (dict; max 100 Schlüssel, nur skalare Werte)

—

configure_ups

Überschreibt die USV-Überwachungskonfiguration

ups_config (dict), confirm=True

*

customization — 5 Subactions

UI-Theme und SSO-Status.

| Subaction | Beschreibung | Erforder

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    A code-mode MCP server for the Unraid 7.2+ GraphQL API that exposes search and execute tools, allowing LLM agents to introspect and call any GraphQL field via sandboxed JavaScript.
    2
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that enables AI assistants like Claude to manage Unraid servers through natural language. Install it from Community Applications and control your homelab from any MCP-compatible AI client.
    3
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    A Model Context Protocol server that enables AI clients to inspect and manage an Unraid server via its GraphQL API, with read-only defaults and optional enabled mutations.
    88
    MIT