mcp-arr — Claude Code MCP server: Sonarr, Radarr, Lidarr, Prowlarr
An MCP server that lets your agent run a media library: search shows, films and music, trigger downloads, check queues and release calendars.
claude mcp add mcp-arr -e SONARR_API_KEY=<SONARR_API_KEY> -e RADARR_API_KEY=<RADARR_API_KEY> -e LIDARR_API_KEY=<LIDARR_API_KEY> -e READARR_API_KEY=<READARR_API_KEY> -e PROWLARR_API_KEY=<PROWLARR_API_KEY> -- npx -y mcp-arr-serverWhat mcp-arr does
The server wires a client to the *arr apps: Sonarr handles TV, Radarr films, Lidarr music, Prowlarr indexers. Your agent lists the library, searches across services at once, starts a download, checks queue status and indexer health. A separate set of tools covers TRaSH Guides references — quality profiles, custom formats, naming conventions. Configure no *arr service at all and the server still starts, exposing those reference tools.
Two ways to run it. Locally over stdio with npx mcp-arr-server, which is how Claude, Codex, Cursor, Copilot, Windsurf, Cline and Zed connect. For hosted clients there is HTTP mode: MCP_TRANSPORT=http PORT=3000 npx mcp-arr-server, listening on 127.0.0.1:3000 and serving MCP at /mcp. Prebuilt images live in GitHub Container Registry, so you don't have to build anything.
What you need first: Node.js 18+ and at least one *arr app reachable through its API. Each app keeps its key under Settings > General > Security; URL and key go in as environment variables. Only configure the services you actually run — the server figures out what's available from the variables you pass. Skip the Prowlarr key and cross-tracker search won't work.
What it helps with
- search for a show or film across several services at once
- queue a download without opening the Sonarr web UI
- check queue and download progress across all apps
- see upcoming releases for shows and albums in one calendar
- compare quality profiles and naming against TRaSH Guides
Example prompts for the agent
- what's downloading in Sonarr and Radarr right now?
- find this show and add it to the queue
- compare my quality profile with the TRaSH Guides recommendations
How to install mcp-arr
Platform CLI
claude mcp add mcp-arr -e SONARR_API_KEY=<SONARR_API_KEY> -e RADARR_API_KEY=<RADARR_API_KEY> -e LIDARR_API_KEY=<LIDARR_API_KEY> -e READARR_API_KEY=<READARR_API_KEY> -e PROWLARR_API_KEY=<PROWLARR_API_KEY> -- npx -y mcp-arr-serverReplace <…> with your own values. 5 more environment variables are in the server README
Platform CLI
codex mcp add mcp-arr --env SONARR_URL=<SONARR_URL> --env SONARR_API_KEY=<SONARR_API_KEY> --env RADARR_URL=<RADARR_URL> --env RADARR_API_KEY=<RADARR_API_KEY> --env LIDARR_URL=<LIDARR_URL> -- npx -y mcp-arr-serverReplace <…> with your own values. 5 more environment variables are in the server README
Config file
{
"mcpServers": {
"mcp-arr": {
"command": "npx",
"args": [
"-y",
"mcp-arr-server"
],
"env": {
"SONARR_URL": "<SONARR_URL>",
"SONARR_API_KEY": "<SONARR_API_KEY>",
"RADARR_URL": "<RADARR_URL>",
"RADARR_API_KEY": "<RADARR_API_KEY>",
"LIDARR_URL": "<LIDARR_URL>"
}
}
}
}Replace <…> with your own values. 5 more environment variables are in the server README
Config file
{
"servers": {
"mcp-arr": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-arr-server"
],
"env": {
"SONARR_URL": "<SONARR_URL>",
"SONARR_API_KEY": "<SONARR_API_KEY>",
"RADARR_URL": "<RADARR_URL>",
"RADARR_API_KEY": "<RADARR_API_KEY>",
"LIDARR_URL": "<LIDARR_URL>"
}
}
}
}Replace <…> with your own values. 5 more environment variables are in the server README
Platform CLI
gemini mcp add -e SONARR_URL=<SONARR_URL> -e SONARR_API_KEY=<SONARR_API_KEY> -e RADARR_URL=<RADARR_URL> -e RADARR_API_KEY=<RADARR_API_KEY> -e LIDARR_URL=<LIDARR_URL> mcp-arr npx -y mcp-arr-serverReplace <…> with your own values. 5 more environment variables are in the server README
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about mcp-arr
How do I install mcp-arr in Claude?
Run `claude mcp add mcp-arr -e SONARR_API_KEY=<SONARR_API_KEY> -e RADARR_API_KEY=<RADARR_API_KEY> -e LIDARR_API_KEY=<LIDARR_API_KEY> -e READARR_API_KEY=<READARR_API_KEY> -e PROWLARR_API_KEY=<PROWLARR_API_KEY> -- npx -y mcp-arr-server. If you need custom service URLs, use the other form: claude mcp add --env SONARR_URL=<SONARR_URL> --env SONARR_API_KEY=<SONARR_API_KEY> --env RADARR_URL=<RADARR_URL> --env RADARR_API_KEY=<RADARR_API_KEY> --env LIDARR_URL=<LIDARR_URL> --transport stdio mcp-arr -- npx -y mcp-arr-server`.
What does mcp-arr do?
It gives your agent access to Sonarr, Radarr, Lidarr and Prowlarr: library listings, search, download triggers, queues, calendars and indexer checks. It also ships TRaSH Guides reference tools for quality profiles and naming.
What do I need to run mcp-arr?
Node.js 18+ and at least one *arr app with API access. Each service's URL and key are passed as environment variables, and you only need to configure the apps you run.