Unraid Mcp
MCP server for Unraid API — provides tools to interact with an Unraid server's GraphQL API.
- Transport
- Not stated
- Package
- —
- Registry id
- ai.dinglebear/unraid-mcp
No install snippet on purpose. A working MCP config is a command, its arguments and an environment block — the last two are where API keys live, so this catalogue never stores them and cannot publish them. Follow the link above for the authors' own instructions.
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→unraidon 2026-07-27, and the former standalonerunraidandincus-unraidrepos 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.plgare all still namedunraid-mcp— only the repo changed.
Components
| Path | What it is | Toolchain | Build / test |
|---|---|---|---|
unraid-py/ |
unraid-mcp — Python MCP server (GraphQL), the flagship. Published to PyPI as unraid-mcp. |
Python / uv / hatchling | cd 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 / cargo | cd 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 + Vue |
bash 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/Vue |
cd plugins/incus && ./scripts/verify-classic-package.sh && ./tests/classic-contract.sh |
plugins/codex/ |
Unraid OS plugin embedding a Codex chathead app-server. | shell .plg + React |
cd 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)
/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:
runraid setup plugin-hook # or: npx -y @dinglebear/unraid setup plugin-hook
unraid-py quickstart (Python MCP server)
From the project's README.