Unraid MCP

MCP servers for Unraid in Python and Rust: array state, Docker, virtual machines and telemetry over the GraphQL API

  • 153 ★ on the repository
  • Last commit
  • MIT
MCP server

Broad access

Why this level

  • An agent with write rights can stop the array and break running services
  • The Unraid API key gives access to the system, so keep it in plugin settings and not in a repository
  • The Rust server listens on all interfaces on port 40010 by default
All reasons and checks

dinglebear-ai/unraid

Install

Manual install

/plugin marketplace add dinglebear-ai/unraid

Adds the repository marketplace, then `unraid-mcp@unraid-mcp` installs.

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • An agent with write rights can stop the array and break running services
  • The Unraid API key gives access to the system, so keep it in plugin settings and not in a repository
  • The Rust server listens on all interfaces on port 40010 by default

This is third-party code. Review the repository files before installing.

What it does

The repository bundles two MCP servers for a home Unraid server and three plugins for the OS itself. The Python server `unraid-mcp` is published to PyPI and starts with `uvx unraid-mcp`, while the Rust server `runraid` builds into one static binary together with a CLI client. Both call the Unraid GraphQL API with the `UNRAID_API_KEY` key. The agent gets data on the system, the disk array, Docker containers, virtual machines and notifications, plus live telemetry. The Python server exposes a single `unraid` tool, and dangerous operations there need explicit confirmation. In the Rust server reading maps to the `unraid:read` scope, and starting and stopping virtual machines, containers and the array maps to `unraid:admin`. There are plugins for Claude Code and Codex in the repository marketplace and an extension for Gemini CLI.

Who it is for. Owners of home servers and small labs on Unraid who want to ask an agent about the state of disks, containers and virtual machines.

Good fit when

  • The array shows a warning and the agent reads disk state and notifications instead of walking the dashboard by hand
  • A Docker container hung and the agent checks its state and restarts it on an explicit request
  • You want a summary of load and temperature from live telemetry without opening the web interface
  • The server runs in Docker on Unraid itself and the connection goes over HTTP with a token

Not a fit when

  • You want read-only access with no way to change the system: the Rust server can also modify, so issue a read-scope key
  • You manage other NAS systems such as Synology or TrueNAS: the servers are written for the Unraid GraphQL API
  • Unraid is not updated to a version with the GraphQL API: the server has nothing to query without it

Example request

Show the array and disk state in Unraid, the list of stopped Docker containers and the latest notifications

MCP

Transport
stdio, http
Authentication
API key

Environment variables

UNRAID_API_URL required
Unraid GraphQL API address, for example `https://tower.local/graphql`.
UNRAID_API_KEY required, secret
Unraid API key for the `x-api-key` header.
UNRAID_RMCP_TOKEN secret
Static bearer token for `/mcp` in the Rust server.

Limitations

The `UNRAID_API_URL` address and the `UNRAID_API_KEY` key are both required. The Rust server is not read-only: it has both queries and mutations. By default it listens on `0.0.0.0:40010`, so the network needs the `UNRAID_RMCP_TOKEN` token or OAuth. The `UNRAID_API_SKIP_TLS_VERIFY` flag accepts a self-signed certificate and should be enabled only on a trusted network. The repository was renamed from `unraid-mcp` to `unraid` on July 27, 2026, and the PyPI package and the ghcr.io image kept the old name.

How to disable. Remove the plugin (`/plugin uninstall unraid-mcp@unraid-mcp`) or the server registration in the client, revoke the key in Unraid settings and stop the container if you ran it in Docker.

FAQ

How do I connect the server to Claude Code?

Add the marketplace with `/plugin marketplace add dinglebear-ai/unraid` and install `/plugin install unraid-mcp@unraid-mcp`. Claude Code will ask for the GraphQL API address and the key.

How does the Python server differ from the Rust server?

The Python server `unraid-mcp` is the main one and installs from PyPI, while the Rust server `runraid` ships one binary and a CLI client, supports token and OAuth and separates read and admin scopes.

Can the agent change the state of the server?

Yes, both servers contain mutating operations: starting and stopping virtual machines, containers and the array. In the Python server dangerous actions need confirmation and in the Rust server they need the `unraid:admin` scope.

Which environment variables are required?

`UNRAID_API_URL` with the GraphQL address, for example `https://tower.local/graphql`, and `UNRAID_API_KEY` with the Unraid API key.

Can I run the server in Docker?

Yes, the repository has `docker compose up -d` for the Python server and the image sits in ghcr.io as `unraid-mcp`. Claude Desktop connects through the `mcp-remote` proxy when needed.

Discussion

No questions or reviews yet.

A set of MCP servers for UniFi: the agent works with Ubiquiti Network, Protect and Access controllers

MCP serverBroad access1KRepository stars

A Node.js manager for MCP servers: it starts local servers, connects remote ones and gives a client one address, with a REST API for control

MCP serverBroad access525Repository stars
Official

The official TrueNAS MCP server: ask about pools, snapshots, virtual machines and apps in plain language.

MCP serverBroad access117Repository stars

An MCP server connects agents to UniFi infrastructure for device diagnostics, configuration reviews and approved changes

MCP serverBroad access351Repository stars

maintenant monitoring MCP server: an agent reads container logs, check history and alerts but never touches the containers

MCP serverExtended access548Repository stars

Docker MCP: an agent creates containers, deploys Docker Compose stacks from YAML, reads logs and lists containers. Runs through uvx for Claude Desktop

MCP serverBroad access504Repository stars

README in short

The repository is described as a monorepo of two MCP servers and three Unraid plugins with Claude and Codex integrations. Then come a component table, plugin install steps, quick starts for the Python and Rust servers, an environment variable table, a warning that the Rust server does more than read, and release notes.

README badge

Report a problem