MCP Hub
Back to servers

arrstack-mcp

An MCP server that gives AI assistants control over your Sonarr, Radarr, Prowlarr, qBittorrent, and Jellyfin homelab media stack.

glama
Updated
May 9, 2026

🎬 arrstack-mcp

An MCP server that gives AI assistants control over your Sonarr, Radarr, Prowlarr, qBittorrent, and Jellyfin homelab media stack.

Works with Claude Desktop, Cursor, VS Code Copilot, OpenClaw, and any other MCP-compatible client.

Demo

Adding a movie with natural language

Features

ServiceTools
SonarrList series, search & add shows, upcoming episodes, download queue
RadarrList movies, search & add movies, download queue
ProwlarrList/test indexers, search releases, health check
qBittorrentList/pause/resume/delete torrents, add magnets, transfer stats
JellyfinList libraries, recent additions, system info

Only configure the services you use — unconfigured services are gracefully skipped.

Quick Start

Option 1: Claude Desktop / Cursor / VS Code (stdio)

  1. Install dependencies:

    pip install "mcp[cli]>=1.9.0" httpx
    
  2. Add to your MCP client config (e.g. claude_desktop_config.json):

    {
      "mcpServers": {
        "arrstack": {
          "command": "python",
          "args": ["/path/to/arrstack-mcp/server.py"],
          "env": {
            "SONARR_URL": "http://localhost:8989",
            "SONARR_API_KEY": "your-api-key",
            "RADARR_URL": "http://localhost:7878",
            "RADARR_API_KEY": "your-api-key",
            "QBT_URL": "http://localhost:8080",
            "QBT_USER": "admin",
            "QBT_PASS": "your-password",
            "JELLYFIN_URL": "http://localhost:8096"
          }
        }
      }
    }
    
  3. Restart your MCP client. Done!

Option 2: Docker (HTTP transport)

For remote setups or when running alongside your *arr stack:

git clone https://github.com/ct4nk3r/arrstack-mcp.git
cd arrstack-mcp
cp .env.example .env
# Edit .env with your service URLs and API keys
docker compose up -d

The server runs on port 8000 with Streamable HTTP transport.

Connect to OpenClaw

openclaw mcp set arrstack '{"url":"http://arrstack-mcp:8000/mcp","transport":"streamable-http"}'

Connect to other HTTP MCP clients

Point your client to http://<host>:8000/mcp using Streamable HTTP transport.

Option 3: Docker on the same network as your *arr stack

If your media services run in Docker, add arrstack-mcp to the same network:

services:
  arrstack-mcp:
    build: .
    container_name: arrstack-mcp
    ports:
      - "8000:8000"
    environment:
      - SONARR_URL=http://sonarr:8989
      - SONARR_API_KEY=your-key
      - RADARR_URL=http://radarr:7878
      - RADARR_API_KEY=your-key
      - QBT_URL=http://qbittorrent:8080
      - QBT_USER=admin
      - QBT_PASS=your-password
      - JELLYFIN_URL=http://jellyfin:8096
    networks:
      - your-media-network

Configuration

All configuration is done via environment variables:

VariableRequiredDescription
SONARR_URLNoSonarr base URL (e.g. http://localhost:8989)
SONARR_API_KEYIf SonarrSonarr API key (Settings → General)
RADARR_URLNoRadarr base URL (e.g. http://localhost:7878)
RADARR_API_KEYIf RadarrRadarr API key (Settings → General)
QBT_URLNoqBittorrent Web UI URL (e.g. http://localhost:8080)
QBT_USERIf qBtqBittorrent username (default: admin)
QBT_PASSIf qBtqBittorrent password
JELLYFIN_URLNoJellyfin base URL (e.g. http://localhost:8096)
JELLYFIN_API_KEYNoJellyfin API key (optional, for authenticated endpoints)
PROWLARR_URLNoProwlarr base URL (e.g. http://localhost:9696)
PROWLARR_API_KEYIf ProwlarrProwlarr API key (Settings → General)

Available Tools

Sonarr (TV Shows)

ToolDescription
sonarr_list_seriesList all series with episode counts and disk usage
sonarr_get_seriesGet detailed info about a specific series
sonarr_searchSearch for new shows to add
sonarr_add_seriesAdd a show by TVDB ID
sonarr_upcomingShow upcoming episodes
sonarr_queueShow current download queue

Radarr (Movies)

ToolDescription
radarr_list_moviesList all movies with download status
radarr_get_movieGet detailed info about a specific movie
radarr_searchSearch for new movies to add
radarr_add_movieAdd a movie by TMDB ID
radarr_queueShow current download queue

Prowlarr (Indexers)

ToolDescription
prowlarr_list_indexersList all indexers with status
prowlarr_test_indexerTest a specific indexer connection
prowlarr_test_all_indexersTest all enabled indexers
prowlarr_searchSearch across indexers for releases
prowlarr_healthCheck system health warnings

qBittorrent (Downloads)

ToolDescription
qbt_list_torrentsList torrents with progress and speed
qbt_torrent_detailsGet detailed torrent info
qbt_add_magnetAdd a magnet link
qbt_pausePause a torrent
qbt_resumeResume a torrent
qbt_deleteDelete a torrent (optionally with files)
qbt_transfer_infoGlobal transfer statistics

Jellyfin (Media Server)

ToolDescription
jellyfin_librariesList media libraries
jellyfin_recentRecently added items
jellyfin_system_infoServer version and system info

Transport Options

# stdio (default) — for Claude Desktop, Cursor, VS Code
python server.py

# Streamable HTTP — for Docker / remote
python server.py --transport streamable-http --port 8000

# SSE — legacy HTTP transport
python server.py --transport sse --port 8000

Finding Your API Keys

  • Sonarr: Settings → General → API Key
  • Radarr: Settings → General → API Key
  • Prowlarr: Settings → General → API Key
  • qBittorrent: Settings → Web UI → Authentication
  • Jellyfin: Dashboard → API Keys → Add

License

MIT

Reviews

No reviews yet

Sign in to write a review