PluginBench
MCP Server
Active
MIT

Unraid RMCP MCP Server

ai.dinglebear/unraid

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

What is the Unraid RMCP MCP server?

The Unraid RMCP server is a Rust-based MCP server and CLI tool that exposes Unraid GraphQL operations for managing NAS, Docker containers, virtual machines, and storage. It provides both read and mutating actions across Unraid infrastructure, accessible via HTTP MCP protocol or as a standalone CLI.

Unraid RMCP enables AI agents to query and control Unraid systems through GraphQL, supporting array management, Docker lifecycle operations, VM control, and storage workflows. It's part of a larger monorepo that includes a Python MCP server variant, Unraid OS plugins, and Claude/Codex agent integrations.

How to install Unraid RMCP

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • UNRAID_API_URL
    required

    Full Unraid GraphQL endpoint URL.

  • UNRAID_API_KEY
    required
    secret

    Unraid API key.

  • UNRAID_RMCP_VERSION

    Optional GitHub release tag override for the downloaded Unraid RMCP binary.

  • UNRAID_RMCP_REPO

    Optional GitHub owner/repo override for release asset downloads.

  • UNRAID_RMCP_RELEASE_BASE_URL

    Optional release download base URL override.

  • RUST_LOG

    Tracing filter for Unraid RMCP logs.

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "unraid": {
      "command": "npx",
      "args": [
        "-y",
        "@dinglebear/unraid",
        "mcp"
      ],
      "env": {
        "UNRAID_API_URL": "<YOUR_UNRAID_API_URL>",
        "UNRAID_API_KEY": "<YOUR_UNRAID_API_KEY>",
        "UNRAID_RMCP_VERSION": "<YOUR_UNRAID_RMCP_VERSION>",
        "UNRAID_RMCP_REPO": "<YOUR_UNRAID_RMCP_REPO>",
        "UNRAID_RMCP_RELEASE_BASE_URL": "<YOUR_UNRAID_RMCP_RELEASE_BASE_URL>",
        "RUST_LOG": "<YOUR_RUST_LOG>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • array — Query and manage Unraid array status and operations
  • docker — Docker container lifecycle management (start, stop, create, remove)
  • vm — Virtual machine lifecycle management
  • storage — Storage and disk management operations
  • notifications — Write and manage Unraid notifications

Use cases

  • Query Unraid array status, disk health, and storage capacity from Claude or Cursor
  • Start, stop, and manage Docker containers on your Unraid system via AI commands
  • Control virtual machines (create, start, stop, remove) through natural language
  • Monitor and receive alerts about NAS events and system status
  • Automate Unraid administrative tasks like array start/stop through AI agents

Unraid RMCP MCP server FAQ

What is the Unraid RMCP server?

It's a Rust-based MCP server that exposes Unraid GraphQL operations for querying and controlling NAS, Docker, VMs, and storage. It runs as an HTTP MCP server on port 40010 or as a standalone CLI tool.

Is it free?

Yes, the Unraid RMCP server is open source under the MIT license.

How do I install it?

Install via npm with `npm install @dinglebear/unraid`, or build from source with `cargo build --release`. For Claude/Codex integration, use `/plugin marketplace add dinglebear-ai/unraid` and install the `runraid@unraid-mcp` plugin.

What authentication does it require?

You need an Unraid API URL and API key (x-api-key). Optionally configure TLS verification, bearer tokens, or OAuth2 for MCP access via environment variables.

Is it read-only?

No, it supports both queries and mutations. Read actions need `unraid:read` scope; mutating actions (VM/Docker lifecycle, array control, notifications) need `unraid:admin` scope.

Can I use it without the Claude plugin?

Yes, you can run it standalone as a CLI tool (`runraid array`, `runraid serve mcp`) or integrate it into other systems via HTTP MCP on port 40010.

README (reference)

Source of truth, from the repository.

Unraid

<!-- mcp-name: tv.tootie/unraid-mcp -->

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. The old GitHub name still redirects, so existing plugin install/update URLs keep working. 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 a legacy npm wrapper of the same name.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)

/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 10 keys (endpoint, API key, TLS skip, bearer token, four OAuth vars); 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)

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)

cd unraid-rs && cargo build --release      # → target/release/runraid
runraid setup plugin-hook                  # writes ~/.unraid/.env
runraid array                              # CLI
runraid serve mcp                          # MCP over HTTP on :40010
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/CLAUDE.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.

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.

Related MCP servers

UNUnraid MCP logo

MCP server for Unraid API — interact with your Unraid server's GraphQL API from Claude and Cursor.

126
Python
MIT
View repository →

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

View repository →
YAYarr MCP logo

Yarr MCP

Active

Self-hosted media fleet operations across Sonarr, Radarr, Plex, and related apps over MCP and CLI.

6
Rust
AGPL-3.0
View repository →
YAYarr MCP logo

Yarr MCP

Active

Rust MCP and CLI server for Sonarr, Radarr, Prowlarr, Plex, Jellyfin, and download clients.

6
Rust
AGPL-3.0
View repository →
YTYTDL RMCP logo

YTDL RMCP

Active

Rust MCP server and CLI for yt-dlp search, downloads, metadata, transfers, and Plex playlists.

2
Rust
AGPL-3.0
View repository →

Search national and EU case law, legislation and regulation, with citations you can verify.