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.

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), unraid-rmcp on npm. Rust / cargo cd unraid-rs && cargo fmt --check && cargo clippy --all-targets -- -D warnings && cargo test
plugins/mcp/ Unraid OS plugin that ships the Python MCP server onto an Unraid box. shell .plg + Python bash plugins/mcp/scripts/build-txz.sh <ver> <wheel>
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-mcp
/plugin install unraid-mcp@unraid-mcp   # Python server
/plugin install runraid@unraid-mcp      # Rust server

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) and persists them to ~/.unraid-mcp/.env.

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.

Releases

Versioning is driven by release-please across all four release units. The Python server keeps unprefixed vX.Y.Z tags (the existing audience's scheme); the other components use prefixed tags: unraid-rs-vX.Y.Z, incus-vX.Y.Z, codex-vX.Y.Z. Plugin .txz payloads ship as GitHub release assets, not tracked in git.

License

MIT — see LICENSE.