arrstack-mcp

arrstack-mcp

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

Category
Visit Server

README

🎬 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

Service Tools
Sonarr List series, search & add shows, upcoming episodes, download queue
Radarr List movies, search & add movies, download queue
Prowlarr List/test indexers, search releases, health check
qBittorrent List/pause/resume/delete torrents, add magnets, transfer stats
Jellyfin List 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:

Variable Required Description
SONARR_URL No Sonarr base URL (e.g. http://localhost:8989)
SONARR_API_KEY If Sonarr Sonarr API key (Settings → General)
RADARR_URL No Radarr base URL (e.g. http://localhost:7878)
RADARR_API_KEY If Radarr Radarr API key (Settings → General)
QBT_URL No qBittorrent Web UI URL (e.g. http://localhost:8080)
QBT_USER If qBt qBittorrent username (default: admin)
QBT_PASS If qBt qBittorrent password
JELLYFIN_URL No Jellyfin base URL (e.g. http://localhost:8096)
JELLYFIN_API_KEY No Jellyfin API key (optional, for authenticated endpoints)
PROWLARR_URL No Prowlarr base URL (e.g. http://localhost:9696)
PROWLARR_API_KEY If Prowlarr Prowlarr API key (Settings → General)

Available Tools

Sonarr (TV Shows)

Tool Description
sonarr_list_series List all series with episode counts and disk usage
sonarr_get_series Get detailed info about a specific series
sonarr_search Search for new shows to add
sonarr_add_series Add a show by TVDB ID
sonarr_upcoming Show upcoming episodes
sonarr_queue Show current download queue

Radarr (Movies)

Tool Description
radarr_list_movies List all movies with download status
radarr_get_movie Get detailed info about a specific movie
radarr_search Search for new movies to add
radarr_add_movie Add a movie by TMDB ID
radarr_queue Show current download queue

Prowlarr (Indexers)

Tool Description
prowlarr_list_indexers List all indexers with status
prowlarr_test_indexer Test a specific indexer connection
prowlarr_test_all_indexers Test all enabled indexers
prowlarr_search Search across indexers for releases
prowlarr_health Check system health warnings

qBittorrent (Downloads)

Tool Description
qbt_list_torrents List torrents with progress and speed
qbt_torrent_details Get detailed torrent info
qbt_add_magnet Add a magnet link
qbt_pause Pause a torrent
qbt_resume Resume a torrent
qbt_delete Delete a torrent (optionally with files)
qbt_transfer_info Global transfer statistics

Jellyfin (Media Server)

Tool Description
jellyfin_libraries List media libraries
jellyfin_recent Recently added items
jellyfin_system_info Server 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

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured