Skip to main content
Glama

arr-mcp

Ein kleiner Model Context Protocol-Server, der den *arr-Medienstapel (Sonarr, Radarr, Prowlarr, Jellyseerr, Bazarr) hinter saubere, typisierte Tools stellt. Ein MCP-Client wie Claude ruft diese Tools direkt über die REST-API jeder App auf – kein Browser, kein Screen-Scraping, kein VPN ins LAN.

Der Server verwahrt die API-Schlüssel selbst; der Client sieht sie nie. Er läuft auf dem .104-Docker-Host und wird aus der Cloud über einen authentifizierten Cloudflare-Tunnel erreicht, sodass er funktioniert, egal ob du zu Hause bist oder Claude vom Handy aus steuerst.

Warum es das gibt

Alles, was Claude zuvor im Medienstapel erledigte, lief über eine Browser-Erweiterung auf dem Mac – was zu Verbindungsidentitäts-Chaos („Welcher Browser?“), Session-/2FA-Reibung und dem VPN-+Fernsteuerungs-Tanz führte. Dieser Server entfernt Browser und Mac vollständig aus dem Kreislauf und ersetzt UI-Scraping durch schnelle, strukturierte API-Aufrufe.

Related MCP server: mcp-arr-suite

Tools

Bereich

Tools

Übersicht

stack_health

Sonarr

sonarr_health, sonarr_series, sonarr_series_detail, sonarr_missing_episodes, sonarr_search_episodes, sonarr_search_season, sonarr_queue, sonarr_blocklist_clear*, sonarr_lookup

Radarr

radarr_health, radarr_movies, radarr_search_movies*, radarr_queue

Prowlarr

prowlarr_health, prowlarr_indexers

Jellyseerr

jellyseerr_requests

Bazarr

bazarr_status

* = Schreibaktion (löst eine Suche aus oder leert die Blocklist einer Serie). Alles andere ist schreibgeschützt. Es gibt bewusst keine Lösch-/Entfernungs- oder Konfigurationsänderungs-Tools – das hält den Schadensradius klein. Später bei Bedarf mehr hinzufügen.

Setup

cp config.example.env .env
# edit .env: real API keys (Settings > General > Security > API Key in each app)
# and a strong MCP_AUTH_TOKEN:  python3 -c "import secrets; print(secrets.token_urlsafe(48))"

docker compose up -d --build

Schneller lokaler Check (sollte eine 400/406 über eine fehlende MCP-Sitzung zurückgeben – das bedeutet, es ist aktiv und dein Token wurde akzeptiert; eine 401 bedeutet, das Token ist falsch):

curl -s -o /dev/null -w "%{http_code}\n" \
  -H "Authorization: Bearer <your MCP_AUTH_TOKEN>" \
  http://localhost:8787/mcp

Ohne Docker ausführen (für die Entwicklung)

pip install -r requirements.txt
set -a; source .env; set +a
python server.py

Claude verfügbar machen

Der MCP-Endpunkt ist https://<your-hostname>/mcp.

  1. Tunnel einrichten. Entweder den cloudflared-Dienst in docker-compose.yml auskommentieren und ihm einen eigenen Tunnel geben, oder einen Hostnamen zu deinem bestehenden Jellyfin-Tunnel hinzufügen, der auf http://arr-mcp:8787 (oder vom Host aus http://localhost:8787) zeigt. Setze Cloudflare Access vor den Hostnamen oder verlasse dich auf das Bearer-Token – idealerweise beides.

  2. Als benutzerdefinierten Connector in Claude hinzufügen. Einstellungen → Anpassen → Connectors → Benutzerdefinierten Connector hinzufügen → URL https://<your-hostname>/mcp. Gib das Bearer-Token als Authorization: Bearer <token>-Header an. Claude listet dann die obigen Tools auf.

Sicherheitshinweise

  • Das Bearer-Token (MCP_AUTH_TOKEN) ist erforderlich, bevor der Endpunkt überhaupt aus dem Internet erreichbar ist. Wenn es leer ist, gibt der Server eine Warnung aus und bedient ohne Authentifizierung – nur akzeptabel, wenn an localhost gebunden.

  • Der Container bindet standardmäßig an 127.0.0.1:8787, sodass nichts außer durch den von dir gewählten Tunnel exponiert ist.

  • API-Schlüssel liegen nur in .env (git-ignoriert, docker-ignoriert). Rotiere sie in jeder App, falls sie jemals leaken.

  • Der Umfang ist bewusst leselastig. Bevor du destruktive Tools hinzufügst (Serie löschen, aus Warteschlange entfernen, Einstellungen bearbeiten), entscheide, ob der Komfort das Risiko auf einem aus dem Internet erreichbaren Endpunkt wert ist.

Dateien

  • server.py — der MCP-Server und alle Tools (Streamable-HTTP-Transport + Bearer-Auth)

  • arr_client.py — dünner asynchroner REST-Client, der von jedem Dienst gemeinsam genutzt wird

  • config.py — baut einen Client pro Dienst aus Umgebungsvariablen (fehlend = deaktiviert)

  • Dockerfile / docker-compose.yml — Container + optionaler Tunnel

  • config.example.env — Kopiere nach .env

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    A
    quality
    A
    maintenance
    An MCP server for the Servarr stack — Sonarr, Radarr, Lidarr, Readarr, and Prowlarr — packaged as a Docker container. Lets an MCP client (Claude Desktop, etc.) browse and search whichever \*arr apps you're running.
    29
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables interaction with the *arr media management suite (Sonarr, Radarr, Lidarr, Prowlarr, SABnzbd) and TRaSH Guides through MCP tools, allowing media library management, searching, and configuration via natural language.
    70
    8
    1
    MIT
  • F
    license
    A
    quality
    A
    maintenance
    MCP server to manage your *ARR media stack (Radarr, Sonarr, Lidarr, Readarr, Prowlarr) for searching, adding, and managing movies, TV shows, music, books, and indexers.
    1

View all related MCP servers

Related MCP Connectors

  • Jikan MCP — wraps the Jikan v4 API (anime/manga data, free, no auth)

  • AniList MCP — wraps AniList GraphQL API (free, no auth)

  • Podcast Index MCP — wraps the Podcast Index API (podcastindex.org)

View all MCP Connectors

Latest Blog Posts

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/dogeared/arr-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server