# mcp-arr

An MCP server that lets your agent run a media library: search shows, films and music, trigger downloads, check queues and release calendars.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 234
- Author: aplaceforallmystuff
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/aplaceforallmystuff/mcp-arr
- Updated: 2026-10-16
- HTML: https://affpapa.org/en/nevibecode/mcp/mcp-arr

## What it 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.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `SONARR_URL`, `SONARR_API_KEY`, `RADARR_URL`, `RADARR_API_KEY`, `LIDARR_URL`, `LIDARR_API_KEY`, `READARR_URL`, `READARR_API_KEY`, `PROWLARR_URL`, `PROWLARR_API_KEY` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
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
```
Replace <…> with your own values. 5 more environment variables are in the server README

### Codex

**Platform CLI**
```bash
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-server
```
Replace <…> with your own values. 5 more environment variables are in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "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

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "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

### Gemini CLI

**Platform CLI**
```bash
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-server
```
Replace <…> with your own values. 5 more environment variables are in the server README

## When to use it
- 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
- 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

## Similar
- [Spotify Automation](https://affpapa.org/en/nevibecode/skills/spotify-automation.md) — skill · 4600 installs
- [wonda-cli](https://affpapa.org/en/nevibecode/skills/wonda-cli.md) — skill · 74600 installs
- [video-to-gif](https://affpapa.org/en/nevibecode/skills/video-to-gif.md) — skill · 3900 installs
- [video-batch-runner](https://affpapa.org/en/nevibecode/skills/video-batch-runner.md) — skill · 1000 installs
- [cloudinary-transformations](https://affpapa.org/en/nevibecode/skills/cloudinary-transformations.md) — skill · 852 installs
- [media-transcoding](https://affpapa.org/en/nevibecode/skills/media-transcoding.md) — skill · 335 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
