Unraid MCP Server
Unraid MCP
基于 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 层和实时覆盖测试
工具
工具索引
工具 | 用途 |
| 所有操作的统一 action/subaction 路由器 |
| 以 Markdown 格式返回此参考文档 |
| WebSocket 订阅系统的完整诊断转储 |
| 探测原始 GraphQL 订阅以进行模式/调试工作 |
unraid — 操作组
所有操作都通过一个工具进行。选择一个 action,然后在其中选择一个 subaction。
system — 18 个子操作
服务器信息、指标、网络和 UPS。
子操作 | 描述 | 所需参数 |
| 操作系统、CPU、内存布局、版本、机器 ID | — |
| 阵列状态、容量、磁盘健康状况摘要 | — |
| 访问 URL、HTTP/HTTPS 端口、LAN/WAN IP | — |
| 许可证类型、密钥文件、过期时间 | — |
| 完整的 Unraid 变量集(时区、共享等) | — |
| 实时 CPU % 和内存使用率 | — |
| 正在运行的服务(名称、在线状态、版本) | — |
| 当前 UI 主题名称 | — |
| 配置有效性和错误状态 | — |
| 布尔值可达性检查 | — |
| 所有者用户名、头像、个人资料 URL | — |
| 统一设置键/值映射 | — |
| 单次调用摘要:主机名、运行时间、Unraid 版本、阵列状态 | — |
| 所有已注册服务器(带 LAN/WAN IP 和 URL) | — |
| 闪存驱动器供应商和产品信息 | — |
| 所有带电池和电源指标的 UPS 设备 | — |
| 单个 UPS 设备详情 |
|
| UPS 守护进程配置 | — |
health — 4 个子操作
连接和系统健康诊断。
子操作 | 描述 | 所需参数 |
| 全面健康检查:API 延迟、阵列状态、警报、Docker 容器摘要 | — |
| Ping Unraid API 并返回延迟(毫秒) | — |
| 订阅系统状态、错误计数、重新连接状态 | — |
| 交互式凭据设置(支持 MCP 引导) | — |
array — 13 个子操作
奇偶校验和阵列磁盘操作。破坏性子操作标有 *。
子操作 | 描述 | 所需参数 | 破坏性 |
| 当前奇偶校验进度、速度、错误 | — | — |
| 过去的奇偶校验结果 | — | — |
| 开始奇偶校验 |
| — |
| 暂停正在进行的奇偶校验 | — | — |
| 恢复已暂停的奇偶校验 | — | — |
| 取消正在进行的奇偶校验 | — | — |
| 启动 Unraid 阵列 | — | — |
| 停止 Unraid 阵列 |
| * |
| 向阵列添加磁盘 |
| — |
| 从阵列中移除磁盘(阵列必须已停止) |
| * |
| 挂载阵列磁盘 |
| — |
| 卸载阵列磁盘 |
| — |
| 清除磁盘的 I/O 统计信息(不可逆) |
| * |
disk — 6 个子操作
共享、物理磁盘、日志文件和闪存备份。破坏性子操作标有 *。
子操作 | 描述 | 所需参数 | 破坏性 |
| 所有用户共享(带大小、分配设置、LUKS 状态) | — | — |
| 物理磁盘列表(ID、设备、名称) | — | — |
| 单个磁盘:序列号、大小、温度 |
| — |
| 列出可用日志文件(名称、路径、大小、修改时间) | — | — |
| 读取带行范围的日志文件内容 |
| — |
| 启动闪存驱动器到远程的 rclone 备份 |
| * |
flash_backup 详情: 调用 Unraid initiateFlashBackup GraphQL 变更,触发从闪存驱动器到已配置 rclone 远程的 rclone 复制。如果远程目标已存在,则会被覆盖。返回 { status, jobId }。恢复方法:使用 rclone 将备份复制回闪存驱动器,或提取单个配置文件。请先通过 rclone/create_remote 配置 rclone 远程。
docker — 7 个子操作
容器生命周期和网络检查。无破坏性子操作。
子操作 | 描述 | 所需参数 |
| 所有容器:ID、名称、镜像、状态、运行状态、自动启动 | — |
| 完整容器详情:端口、挂载、标签、网络设置 |
|
| 启动容器 |
|
| 停止容器 |
|
| 重启容器(按顺序停止并启动) |
|
| 所有 Docker 网络:ID、名称、驱动程序、范围 | — |
| 单个网络(带 IPv6、容器、选项、标签) |
|
容器标识符接受完整 ID、短 ID 前缀、确切名称或无歧义的名称前缀。变更操作(start, stop, restart)需要确切名称或完整 ID。
vm — 9 个子操作
虚拟机生命周期。破坏性子操作标有 *。
子操作 | 描述 | 所需参数 | 破坏性 |
| 所有虚拟机:ID、名称、状态、UUID | — | — |
| 单个虚拟机详情 |
| — |
| 启动虚拟机 |
| — |
| 优雅停止虚拟机 |
| — |
| 暂停正在运行的虚拟机 |
| — |
| 恢复已暂停的虚拟机 |
| — |
| 重启虚拟机 |
| — |
| 强制关闭虚拟机电源(可能导致数据丢失) |
| * |
| 强制重置虚拟机,不进行优雅关机 |
| * |
vm_id 接受 UUID、带前缀的 ID 或虚拟机名称。
notification — 12 个子操作
系统通知 CRUD。破坏性子操作标有 *。
子操作 | 描述 | 所需参数 | 破坏性 |
| 按重要性(INFO/WARNING/ALERT)分类的未读和存档计数 | — | — |
| 分页通知列表 |
| — |
| 创建通知 |
| — |
| 存档单个通知 |
| — |
| 将已存档通知移回未读 |
| — |
| 重新计算概览计数 | — | — |
| 存档所有未读通知 | 可选 | — |
| 按 ID 存档特定通知 |
| — |
| 按 ID 取消存档特定通知 |
| — |
| 将所有已存档通知移回未读 | 可选 | — |
| 永久删除单个通知 |
| * |
| 永久删除所有已存档通知 |
| * |
key — 7 个子操作
API 密钥管理。破坏性子操作标有 *。
子操作 | 描述 | 所需参数 | 破坏性 |
| 所有带角色和权限的 API 密钥 | — | — |
| 单个 API 密钥详情 |
| — |
| 创建 API 密钥 |
| — |
| 更新名称、角色或权限 |
| — |
| 删除 API 密钥(立即撤销访问权限) |
| * |
| 向现有密钥添加角色 |
| — |
| 从现有密钥移除角色 |
| — |
plugin — 3 个子操作
Unraid 插件管理。破坏性子操作标有 *。
子操作 | 描述 | 所需参数 | 破坏性 |
| 所有已安装插件(带版本和模块标志) | — | — |
| 按名称安装插件 |
| — |
| 按名称卸载插件(不重新安装不可逆) |
| * |
rclone — 4 个子操作
云存储远程管理。破坏性子操作标有 *。
子操作 | 描述 | 所需参数 | 破坏性 |
| 所有已配置的 rclone 远程(带类型和参数) | — | — |
| 提供程序类型的配置表单模式 | 可选 | — |
| 创建新的 rclone 远程 |
| — |
| 删除 rclone 远程配置(不删除远程数据) |
| * |
setting — 2 个子操作
系统设置。破坏性子操作标有 *。
子操作 | 描述 | 所需参数 | 破坏性 |
| 更新系统设置(JSON 键/值输入) |
| — |
| 覆盖 UPS 监控配置 |
| * |
customization — 5 个子操作
UI 主题和 SSO 状态。
子操作 | 描述 | 所需参数 |
| 完整主题、合作伙伴信息和激活码 | — |
| 面向公众的主题和合作伙伴信息(未认证视图) | — |
| 是否已完成初始设置向导 | — |
| 是否启用了 SSO | — |
| 设置活动 UI 主题 |
|
oidc — 5 个子操作
OpenID Connect / SSO 提供程序管理。
子操作 | 描述 | 所需参数 |
| 所有带客户端 ID、作用域、身份验证规则的 OIDC 提供程序 | — |
| 单个提供程序详情 |
|
| 带默认允许来源的 OIDC 配置 | — |
| 公共提供程序列表(按钮文本、图标、样式) | — |
| 验证 OIDC 会话令牌 |
|
user — 1 个子操作
子操作 | 描述 | 所需参数 |
| 已认证用户:ID、名称、描述、角色 | — |
live — 11 个子操作(WebSocket 订阅)
live 操作组从 Unraid GraphQL API 的活动 WebSocket 订阅中读取数据。它不发出 HTTP 查询,而是打开一个 graphql-transport-ws 连接,并等待一个快照或在一段时间内收集事件。
两种交付模式:
快照 (
SNAPSHOT_ACTIONS):打开订阅并返回在timeout秒内收
This server cannot be deployed
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Official Fibery MCP server: query and update your workspace from any AI client via OAuth.
Related MCP Servers
- AlicenseAqualityCmaintenanceA 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.21MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to manage Unraid OS via Docker, system calls, and file system access for automating array, share, and container operations.-
- AlicenseNot gradedqualityDmaintenanceAn 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.3MIT
- AlicenseBqualityBmaintenanceA 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.88MIT