Unraid RMCP

ai.dinglebear由 dinglebear.ai 發布v0.6.3更新於 Oct 25, 2026

Rust MCP server and CLI for Unraid GraphQL operations across NAS, Docker, VM, and storage workflows.

發布方自己的服務:RMCP

概覽

AI 產生的概覽

在本機執行的 Rust MCP 伺服器兼命令列工具,讓助理透過 Unraid 的 GraphQL API 查詢與管理 NAS,涵蓋陣列、Docker、虛擬機與儲存。

可以做什麼
查詢 Unraid 陣列狀態及 NAS 端點上的其他 GraphQL 資料,包括儲存與系統資訊,透過 Rust 伺服器的讀取動作與命令列指令(例如檢視陣列狀態)完成。管理 Docker 容器與虛擬機,包括生命週期操作,以及啟動或停止陣列。寫入通知及其他變更操作,需要管理員權限範圍。在不修復檔案的情況下檢查設定,並以可設定的綁定位址與驗證方式透過 MCP HTTP 執行伺服器。
適用情境
當你執行 Unraid,並希望助理從本機 MCP 用戶端檢視或操作 NAS(陣列狀態、容器、虛擬機與儲存)時使用。適合已擁有 Unraid API 金鑰與端點、並願意為生命週期操作授予管理員權限的管理員。
執行需求
以本機程序執行,可透過 npm 啟動器套件安裝,或從 Rust crate 建置;README 另提到分開發布的 Python 伺服器。需要 UNRAID_API_URL(完整的 Unraid GraphQL 端點)與 UNRAID_API_KEY(作為 x-api-key 標頭送出)。選用變數涵蓋略過 TLS 驗證、MCP 主機/連接埠、bearer 權杖或 OAuth 驗證模式,以及發布下載覆寫。
安裝前請注意
並非唯讀:伺服器提供變更操作,如虛擬機與 Docker 生命週期、陣列啟停與通知寫入,需要 unraid:admin 權限範圍。API 金鑰是透過環境變數傳入的機密。略過 TLS 驗證會接受自簽憑證。MCP HTTP 伺服器預設綁定 0.0.0.0:40010,對外暴露前請先設定驗證。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Unraid RMCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

Unraid

[PyPI] [ghcr.io]

A monorepo of Unraid tooling: two MCP servers (Python and Rust) and three Unraid OS plugins, plus the Claude/Codex agent integrations that surface them.

Repo name. This repo was renamed unraid-mcp → unraid on 2026-07-27, and the former standalone runraid and incus-unraid repos were merged in here. Some deployed plugin install/update URLs still depend on the old-name redirect; migrating those runtime URLs requires a deliberate release. The PyPI package, the container image, the Claude plugin, and the Unraid .plg are all still named unraid-mcp — only the repo changed.

Components

PathWhat it isToolchainBuild / test
unraid-py/unraid-mcp — Python MCP server (GraphQL), the flagship. Published to PyPI as unraid-mcp.Python / uv / hatchlingcd unraid-py && uv run pytest && uv build --wheel
unraid-rs/runraid — Rust MCP server + CLI (single static binary). Crate unraid-rmcp on crates.io, plus the compatibility npm launcher @dinglebear/unraid.Rust / cargocd unraid-rs && cargo fmt --check && cargo clippy --all-targets --features test-support -- -D warnings && cargo test
plugins/mcp/Unraid OS plugin that ships the Rust runraid MCP server onto an Unraid box.shell .plg + Rust + Vuebash plugins/mcp/scripts/build-txz.sh <ver> <runraid-binary>
plugins/incus/Unraid OS plugin running Incus system containers ("dev containers") firewalled off the LAN. Includes a NestJS/GraphQL unraid-api backend.shell .plg + NestJS/Vuecd plugins/incus && ./scripts/verify-classic-package.sh && ./tests/classic-contract.sh
plugins/codex/Unraid OS plugin embedding a Codex chathead app-server.shell .plg + Reactcd plugins/codex && ./tests/contract.sh
agents/unraid-py/Claude Code / Codex plugin (name: unraid-mcp) for the Python server.——
agents/unraid-rs/Claude Code / Codex plugin (name: runraid) for the Rust server.——

Install the agent plugins (one marketplace command, two manifests)

text
/plugin marketplace add dinglebear-ai/unraid/plugin install unraid-mcp@unraid-mcp   # Python server/plugin install runraid@unraid-mcp      # Rust server

The @unraid-mcp suffix is the marketplace name declared in .claude-plugin/marketplace.json, not the repo name — it stays unraid-mcp even though the repo is now dinglebear-ai/unraid.

Both plugins are published from a single repo. Claude reads .claude-plugin/marketplace.json; Codex reads .agents/plugins/marketplace.json. meta-ci.yml asserts the two list the same plugin set, so they cannot drift.

marketplace add accepts the owner/repo shorthand (or a full git URL / local path). After install, Claude Code prompts for the connection settings (the plugin's userConfig).

Plugin credentials need no manual step

The agent plugins ship no Claude Code hooks, and none are needed: both .mcp.json files map your plugin settings into the server environment directly via ${user_config.*}. agents/unraid-rs wires endpoint, TLS, authentication, and tool-selector settings; agents/unraid-py wires UNRAID_API_URL and UNRAID_API_KEY. Set them in plugin settings and the server picks them up on next launch.

Optional, for non-plugin installs (systemd, Docker) that want ~/.unraid/.env written to disk:

bash
runraid setup plugin-hook          # or: npx -y @dinglebear/unraid setup plugin-hook

unraid-py quickstart (Python MCP server)

The Python server is the flagship. Full documentation — installation, Claude Code / Codex / Gemini setup, configuration, authentication, guardrails, and the tool surface — lives in unraid-py/README.md and unraid-py/docs/. It publishes to PyPI as unraid-mcp (import package unraid_mcp) and launches with uvx unraid-mcp.

unraid-rs quickstart (Rust MCP server + CLI)

bash
cargo install --path unraid-rs --locked     # from the repository root# Configure UNRAID_API_URL and UNRAID_API_KEY privately before querying.runraid setup check                        # inspect setup without repairing filesrunraid array                              # read array staterunraid serve mcp                          # MCP HTTP (default :40010; configure auth)
Env varPurpose
UNRAID_API_URLUnraid GraphQL endpoint (required)
UNRAID_API_KEYx-api-key for the Unraid API (required)
UNRAID_API_SKIP_TLS_VERIFYAccept a self-signed Unraid cert (default false)
UNRAID_RMCP_HOST / UNRAID_RMCP_PORTMCP bind address (default 0.0.0.0:40010)
UNRAID_RMCP_TOKENStatic bearer token for /mcp
UNRAID_RMCP_AUTH_MODEbearer (default) or oauth

Full list and the OAuth variables: unraid-rs/AGENTS.md.

Not read-only. The Rust server exposes both queries and mutations. Read actions need the unraid:read scope; mutating actions (VM and Docker lifecycle, array start/stop, notification writes) need unraid:admin.

Development and documentation

Start with AGENTS.md, the canonical contributor guide. CLAUDE.md and GEMINI.md are symlinks to it, including within components. The documentation index links to development and verification, architecture, and release procedures.

Rust MCP supports UNRAID_RMCP_PROJECTION=legacy (default), atomic, or both. All projections share enabled-action policy, scopes, and execution; atomic mode is not a second backend. See the Rust README for selectors and migration.

Releases

There are two release lanes. release-please manages only unraid-py and unraid-rs — the Python server keeps unprefixed vX.Y.Z tags (the existing audience's scheme) and Rust uses unraid-rs-vX.Y.Z. The Incus and Codex plugins do not use release-please: they are versioned by .github/scripts/plugin_calver.py with fixed-width YYYYMMDD.NNN versions and incus-v* / codex-v* tags (Unraid compares plugin versions as raw strings, so the fixed width is mandatory).

The native MCP plugin is built from the matching unraid-rs-vX.Y.Z tag, and Community Applications reads its rolling manifest from the unraid-plugin-latest release. Plugin .txz payloads ship as GitHub release assets, never tracked in git.

License

MIT — see LICENSE.

來源:README.md,提交 605e484

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:伺服器未能啟動。

版本歷史

3
  1. v0.6.3最新Oct 25, 2026
  2. v0.6.2Oct 20, 2026
  3. v0.3.0Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Rmcp 整合