Skip to main content
Glama
Unraid MCP Server

Unraid MCP Server

Unraid MCP

PyPI ghcr.io

基于 GraphQL 的 Unraid MCP 服务器。提供统一的 unraid 工具,用于系统检查、管理操作、实时遥测以及需要明确确认的破坏性操作。

概述

该服务器将 MCP 工具调用转换为通过 HTTP 和 WebSocket 进行的 Unraid GraphQL 查询和变更。所有操作共享一个由 action + subaction 路由的 unraid 工具。实时遥测使用 WebSocket 订阅,从 Unraid API 流式传输实时数据。

Related MCP server: unraid-mcp-server

本仓库包含内容

  • unraid_mcp/ — 服务器、GraphQL 客户端、WebSocket 订阅、配置和工具处理程序

  • skills/unraid/ — 面向客户端的技能文档

  • docs/ — 身份验证、破坏性操作和发布参考

  • .claude-plugin/, .codex-plugin/, gemini-extension.json — 客户端清单

  • docker-compose.yaml, Dockerfile, entrypoint.sh — 容器部署

  • tests/ — 单元测试、安全性、模式、HTTP 层和实时覆盖测试

工具

工具索引

工具

用途

unraid

所有操作的统一 action/subaction 路由器

unraid_help

以 Markdown 格式返回此参考文档

diagnose_subscriptions

WebSocket 订阅系统的完整诊断转储

test_subscription_query

探测原始 GraphQL 订阅以进行模式/调试工作

unraid — 操作组

所有操作都通过一个工具进行。选择一个 action,然后在其中选择一个 subaction。

system — 18 个子操作

服务器信息、指标、网络和 UPS。

子操作

描述

所需参数

overview

操作系统、CPU、内存布局、版本、机器 ID

—

array

阵列状态、容量、磁盘健康状况摘要

—

network

访问 URL、HTTP/HTTPS 端口、LAN/WAN IP

—

registration

许可证类型、密钥文件、过期时间

—

variables

完整的 Unraid 变量集(时区、共享等)

—

metrics

实时 CPU % 和内存使用率

—

services

正在运行的服务(名称、在线状态、版本)

—

display

当前 UI 主题名称

—

config

配置有效性和错误状态

—

online

布尔值可达性检查

—

owner

所有者用户名、头像、个人资料 URL

—

settings

统一设置键/值映射

—

server

单次调用摘要:主机名、运行时间、Unraid 版本、阵列状态

—

servers

所有已注册服务器(带 LAN/WAN IP 和 URL)

—

flash

闪存驱动器供应商和产品信息

—

ups_devices

所有带电池和电源指标的 UPS 设备

—

ups_device

单个 UPS 设备详情

device_id

ups_config

UPS 守护进程配置

—

health — 4 个子操作

连接和系统健康诊断。

子操作

描述

所需参数

check

全面健康检查:API 延迟、阵列状态、警报、Docker 容器摘要

—

test_connection

Ping Unraid API 并返回延迟(毫秒)

—

diagnose

订阅系统状态、错误计数、重新连接状态

—

setup

交互式凭据设置(支持 MCP 引导)

—

array — 13 个子操作

奇偶校验和阵列磁盘操作。破坏性子操作标有 *。

子操作

描述

所需参数

破坏性

parity_status

当前奇偶校验进度、速度、错误

—

—

parity_history

过去的奇偶校验结果

—

—

parity_start

开始奇偶校验

correct (bool)

—

parity_pause

暂停正在进行的奇偶校验

—

—

parity_resume

恢复已暂停的奇偶校验

—

—

parity_cancel

取消正在进行的奇偶校验

—

—

start_array

启动 Unraid 阵列

—

—

stop_array

停止 Unraid 阵列

confirm=True

*

add_disk

向阵列添加磁盘

disk_id; 可选 slot

—

remove_disk

从阵列中移除磁盘(阵列必须已停止)

disk_id, confirm=True

*

mount_disk

挂载阵列磁盘

disk_id

—

unmount_disk

卸载阵列磁盘

disk_id

—

clear_disk_stats

清除磁盘的 I/O 统计信息(不可逆)

disk_id, confirm=True

*

disk — 6 个子操作

共享、物理磁盘、日志文件和闪存备份。破坏性子操作标有 *。

子操作

描述

所需参数

破坏性

shares

所有用户共享(带大小、分配设置、LUKS 状态)

—

—

disks

物理磁盘列表(ID、设备、名称)

—

—

disk_details

单个磁盘:序列号、大小、温度

disk_id

—

log_files

列出可用日志文件(名称、路径、大小、修改时间)

—

—

logs

读取带行范围的日志文件内容

log_path; 可选 tail_lines (默认 100, 最大 10000)

—

flash_backup

启动闪存驱动器到远程的 rclone 备份

remote_name, source_path (必须以 /boot 开头), destination_path, confirm=True

*

flash_backup 详情: 调用 Unraid initiateFlashBackup GraphQL 变更,触发从闪存驱动器到已配置 rclone 远程的 rclone 复制。如果远程目标已存在,则会被覆盖。返回 { status, jobId }。恢复方法:使用 rclone 将备份复制回闪存驱动器,或提取单个配置文件。请先通过 rclone/create_remote 配置 rclone 远程。

docker — 7 个子操作

容器生命周期和网络检查。无破坏性子操作。

子操作

描述

所需参数

list

所有容器:ID、名称、镜像、状态、运行状态、自动启动

—

details

完整容器详情:端口、挂载、标签、网络设置

container_id

start

启动容器

container_id

stop

停止容器

container_id

restart

重启容器(按顺序停止并启动)

container_id

networks

所有 Docker 网络:ID、名称、驱动程序、范围

—

network_details

单个网络(带 IPv6、容器、选项、标签)

network_id

容器标识符接受完整 ID、短 ID 前缀、确切名称或无歧义的名称前缀。变更操作(start, stop, restart)需要确切名称或完整 ID。

vm — 9 个子操作

虚拟机生命周期。破坏性子操作标有 *。

子操作

描述

所需参数

破坏性

list

所有虚拟机:ID、名称、状态、UUID

—

—

details

单个虚拟机详情

vm_id

—

start

启动虚拟机

vm_id

—

stop

优雅停止虚拟机

vm_id

—

pause

暂停正在运行的虚拟机

vm_id

—

resume

恢复已暂停的虚拟机

vm_id

—

reboot

重启虚拟机

vm_id

—

force_stop

强制关闭虚拟机电源(可能导致数据丢失)

vm_id, confirm=True

*

reset

强制重置虚拟机,不进行优雅关机

vm_id, confirm=True

*

vm_id 接受 UUID、带前缀的 ID 或虚拟机名称。

notification — 12 个子操作

系统通知 CRUD。破坏性子操作标有 *。

子操作

描述

所需参数

破坏性

overview

按重要性(INFO/WARNING/ALERT)分类的未读和存档计数

—

—

list

分页通知列表

list_type (UNREAD 或 ARCHIVE, 默认 UNREAD); 可选 importance, offset, limit

—

create

创建通知

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

—

archive

存档单个通知

notification_id

—

mark_unread

将已存档通知移回未读

notification_id

—

recalculate

重新计算概览计数

—

—

archive_all

存档所有未读通知

可选 importance 进行过滤

—

archive_many

按 ID 存档特定通知

notification_ids (列表)

—

unarchive_many

按 ID 取消存档特定通知

notification_ids (列表)

—

unarchive_all

将所有已存档通知移回未读

可选 importance 进行过滤

—

delete

永久删除单个通知

notification_id, notification_type, confirm=True

*

delete_archived

永久删除所有已存档通知

confirm=True

*

key — 7 个子操作

API 密钥管理。破坏性子操作标有 *。

子操作

描述

所需参数

破坏性

list

所有带角色和权限的 API 密钥

—

—

get

单个 API 密钥详情

key_id

—

create

创建 API 密钥

name; 可选 roles, permissions

—

update

更新名称、角色或权限

key_id; 可选 name, roles, permissions

—

delete

删除 API 密钥(立即撤销访问权限)

key_id, confirm=True

*

add_role

向现有密钥添加角色

key_id, roles (使用第一个元素)

—

remove_role

从现有密钥移除角色

key_id, roles (使用第一个元素)

—

plugin — 3 个子操作

Unraid 插件管理。破坏性子操作标有 *。

子操作

描述

所需参数

破坏性

list

所有已安装插件(带版本和模块标志)

—

—

add

按名称安装插件

names (列表); 可选 bundled, restart

—

remove

按名称卸载插件(不重新安装不可逆)

names (列表), confirm=True

*

rclone — 4 个子操作

云存储远程管理。破坏性子操作标有 *。

子操作

描述

所需参数

破坏性

list_remotes

所有已配置的 rclone 远程(带类型和参数)

—

—

config_form

提供程序类型的配置表单模式

可选 provider_type

—

create_remote

创建新的 rclone 远程

name, provider_type, config_data (字符串/数字/布尔值的字典; 最大 50 个键)

—

delete_remote

删除 rclone 远程配置(不删除远程数据)

name, confirm=True

*

setting — 2 个子操作

系统设置。破坏性子操作标有 *。

子操作

描述

所需参数

破坏性

update

更新系统设置(JSON 键/值输入)

settings_input (字典; 最大 100 个键,仅限标量值)

—

configure_ups

覆盖 UPS 监控配置

ups_config (字典), confirm=True

*

customization — 5 个子操作

UI 主题和 SSO 状态。

子操作

描述

所需参数

theme

完整主题、合作伙伴信息和激活码

—

public_theme

面向公众的主题和合作伙伴信息(未认证视图)

—

is_initial_setup

是否已完成初始设置向导

—

sso_enabled

是否启用了 SSO

—

set_theme

设置活动 UI 主题

theme_name

oidc — 5 个子操作

OpenID Connect / SSO 提供程序管理。

子操作

描述

所需参数

providers

所有带客户端 ID、作用域、身份验证规则的 OIDC 提供程序

—

provider

单个提供程序详情

provider_id

configuration

带默认允许来源的 OIDC 配置

—

public_providers

公共提供程序列表(按钮文本、图标、样式)

—

validate_session

验证 OIDC 会话令牌

token

user — 1 个子操作

子操作

描述

所需参数

me

已认证用户:ID、名称、描述、角色

—

live — 11 个子操作(WebSocket 订阅)

live 操作组从 Unraid GraphQL API 的活动 WebSocket 订阅中读取数据。它不发出 HTTP 查询,而是打开一个 graphql-transport-ws 连接,并等待一个快照或在一段时间内收集事件。

两种交付模式:

  • 快照 (SNAPSHOT_ACTIONS):打开订阅并返回在 timeout 秒内收

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