arr-mcp
Integration with Jellyfin for checking media availability and playback status across the media stack.
Integration with Radarr for movie library management and health monitoring, enabling queries about movie requests and download status.
Integration with Sonarr for TV series library management and monitoring, supporting queries about series requests and episode availability.
Integration with Transmission for managing and monitoring torrent downloads, contributing to cross-service diagnostics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@arr-mcpWhy isn't my requested movie showing up in Jellyfin?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
arr-mcp
One MCP server for your whole self-hosted media stack — not one per service.
Ask questions no single service can answer. "Why isn't the film I requested on Tuesday showing up in Jellyfin?" spans Seerr, Radarr, Prowlarr, SABnzbd and Jellyfin. arr-mcp correlates them and gives you the causal chain.
A web config page that diagnoses connections instead of printing pass/fail, and shows live logs while you debug.
Tool output is treated as untrusted data, never instruction. Release names from public indexers are attacker-controllable and flow straight into model context; arr-mcp fences them.
Safe by default. Deletion is off until you deliberately enable it, and then still asks per call.
Status: 0.3 — all eight services
Every service reachable, with
stack_healthreporting versions, disk space, failing checks and library scan staleness across the whole stack. The read tools that answer questions about your library land in the same release; the cross-servicediagnosearrives in 0.4. See the roadmap.
Services
Radarr · Sonarr · Prowlarr · Bazarr · Jellyfin · Seerr · SABnzbd · Transmission
All eight are supported as of 0.3.
Related MCP server: arr-stack-mcp
Tools
Tool | Answers |
| Is anything broken, out of disk, or not scanning? |
| What do I have, what exists, what can I get? |
| Everything about one item |
| What is downloading, across all four download paths |
| What is due, and what just aired |
| What is missing subtitles, and which providers are throttled |
| What am I watching, and what can I continue |
| Which indexers are healthy, and what they recently rejected |
| What has been requested, and what is still pending |
| Tell me about this, without adding it |
| What exists in this genre, year, or rating band |
Every tool takes detail (minimal/standard/full) and limit, and reports
{ total, returned, truncated } — a truncated answer always says so. Tools
spanning several services also report which ones they could not reach, and how
many results each contributed, so a long answer from one service can never
silently hide another.
Reads only. Writes arrive in 0.5, behind per-service permission toggles and per-call confirmation.
Quick start
services:
arr-mcp:
image: ghcr.io/bardesss/arr-mcp:0.3
ports: ['6060:6060']
volumes: ['./config:/config']
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Amsterdam
restart: unless-stoppedTags are X.Y.Z, X.Y, X and latest for releases, plus main for
bleeding edge. Pin a minor while the tool surface is still moving.
On first start, config/config.yaml is created and the bearer token for the
MCP endpoint is printed to the container log — docker logs arr-mcp. Add
your services to that file:
services:
radarr:
url: http://192.168.1.20:7878
api_key: "…"
jellyfin:
url: http://192.168.1.20:8096
api_key: "…"
default_user: "you" # whose watched state `watched` means
transmission:
url: http://192.168.1.20:9091
username: "…" # Transmission has no API key
password: "…"All eight are supported: radarr, sonarr, prowlarr, bazarr, jellyfin,
seerr, sabnzbd, transmission. Configure only what you run — anything you
leave out is simply absent, not broken.
A misspelled key, an unknown service, or an api_key on Transmission fails at
startup with the offending field named, rather than being silently ignored.
Until the config UI arrives in 0.6, edit the file by hand and restart the container to pick up changes.
Roadmap
Version | Delivers |
0.1 / 0.2 | Walking skeleton: stateless MCP transport, bearer auth, Radarr, |
0.3 | The remaining seven service adapters and ten read tools |
0.4 | Cross-service correlation: identity resolver, three-way library join, |
0.5 | Writes: permission tiers, |
0.6 | Web config page: dashboard, diagnosing connection tests, log streams |
0.7 → 1.0 | Metadata providers, MCP resources and prompts |
Each version is a self-contained, shippable slice — the goal is that 0.4 already answers questions no individual service can, with 0.5–0.7 making it complete.
0.1 and 0.2 are the same code under two tags. Dropping the component prefix from the release configuration made the release tooling treat the package as new and re-cut it; the changelog shows the same features twice. Not two releases.
Requirements
A LAN-reachable install of at least one supported service, at or above its minimum version
Docker, or Node 24+ to run from source
An MCP client speaking protocol revision
2026-07-28
Service | Minimum |
Radarr | 4.0.0 |
Sonarr | 4.0.0 |
Prowlarr | 1.0.0 |
Bazarr | 1.4.0 |
Jellyfin | 10.8.0 |
Seerr | 1.0.0 |
SABnzbd | 3.0.0 |
Transmission | 3.0.0 |
A service below its floor is reported unhealthy — no disk space, no failing
health checks, no scan state, not just a version complaint — and
contributes nothing to stack_health until it is upgraded.
Security
arr-mcp is not designed to be exposed to the internet. The /mcp endpoint
requires a bearer token because "LAN-only" is a network assumption rather than a
security control — the endpoint fronts up to eight API keys and, once enabled,
file deletion, and a home network contains guest phones and IoT devices.
Thanks
arr-mcp is glue. The hard parts belong to other people.
The services it speaks to — none of this exists without them, and every one is free software maintained largely by volunteers:
Radarr · Sonarr · Prowlarr · Bazarr · Jellyfin · Seerr · SABnzbd · Transmission
The libraries it is built on:
the protocol, and a stateless transport that made this simple | |
the HTTP server | |
config validation and tool input schemas | |
logging | |
tests | |
the log ring buffer and write audit | |
reading | |
the language |
If you find arr-mcp useful, consider supporting the services above first.
Licence
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server for managing a media server stack (Plex, Radarr, Overseerr, Bazarr, Prowlarr, Trakt.tv) using natural language to browse, request, and discover content.Last updated12MIT
- Alicense-qualityAmaintenanceA Model Context Protocol server that exposes Sonarr, Radarr, Lidarr, and Jellyfin to any MCP client through a curated tool layer for LLM consumption.Last updatedMIT
- FlicenseAqualityAmaintenanceMCP server to manage your *ARR media stack (Radarr, Sonarr, Lidarr, Readarr, Prowlarr) for searching, adding, and managing movies, TV shows, music, books, and indexers.Last updated1
- Alicense-qualityBmaintenanceUnified MCP server for media acquisition, subtitle automation, and agent-run media workflows, enabling downloads via Prowlarr/qBittorrent and subtitle translation/sidecar creation.Last updated1MIT
Related MCP Connectors
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Local-first RAG engine with MCP server for AI agent integration.
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/bardesss/arr-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server