One MCP server for the whole self-hosted media stack: Radarr, Sonarr, Whisparr, Lidarr, Prowlarr, Bazarr, Jellyfin, Plex, Seerr, SABnzbd, NZBGet, Transmission, qBittorrent, Profilarr, Cleanuparr, Reclaimerr and Dispatcharr.
// readme
arr-mcp
Talk to your entire media stack. One server, one endpoint, one conversation.
Radarr · Sonarr · Whisparr · Lidarr · Prowlarr · Bazarr · Jellyfin · Plex · Seerr · SABnzbd · NZBGet · Transmission · qBittorrent · Profilarr · Cleanuparr · Reclaimerr · Dispatcharr
Everyone else ships one MCP server per service. This is one for the stack.
That difference is the whole point, because the interesting questions live between services:
“Why isn’t the film I requested on Tuesday showing up in Jellyfin?”
No single service can answer that. It spans Seerr, Radarr, Prowlarr, SABnzbd and Jellyfin — five APIs, five sets of ids, five half-answers. arr-mcp correlates them and hands back the causal chain:
diagnose { query: "Blade" }
No file on disk yet. Trigger a search in Radarr or Sonarr — nothing is downloading and no indexer reported a failure.
One call. One answer. It even answers with a service down, and tells you which part it could not check rather than guessing across the hole.
Why people run it
🔍 diagnose answers what no single service can | Walks the whole chain — requested, managed, monitored, downloaded,… |