arr-mcp
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 |
|
Sonarr |
|
Radarr |
|
Prowlarr |
|
Jellyseerr |
|
Bazarr |
|
* = 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 --buildSchneller 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/mcpOhne Docker ausführen (für die Entwicklung)
pip install -r requirements.txt
set -a; source .env; set +a
python server.pyClaude verfügbar machen
Der MCP-Endpunkt ist https://<your-hostname>/mcp.
Tunnel einrichten. Entweder den
cloudflared-Dienst indocker-compose.ymlauskommentieren und ihm einen eigenen Tunnel geben, oder einen Hostnamen zu deinem bestehenden Jellyfin-Tunnel hinzufügen, der aufhttp://arr-mcp:8787(oder vom Host aushttp://localhost:8787) zeigt. Setze Cloudflare Access vor den Hostnamen oder verlasse dich auf das Bearer-Token – idealerweise beides.Als benutzerdefinierten Connector in Claude hinzufügen. Einstellungen → Anpassen → Connectors → Benutzerdefinierten Connector hinzufügen → URL
https://<your-hostname>/mcp. Gib das Bearer-Token alsAuthorization: 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 wirdconfig.py— baut einen Client pro Dienst aus Umgebungsvariablen (fehlend = deaktiviert)Dockerfile/docker-compose.yml— Container + optionaler Tunnelconfig.example.env— Kopiere nach.env
This server cannot be installed
Maintenance
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
- AlicenseAqualityAmaintenanceAn 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.29MIT
- AlicenseAqualityCmaintenanceEnables 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.7081MIT
- FlicenseAqualityAmaintenanceMCP 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
- AlicenseBqualityBmaintenanceEnables control and management of a self-hosted media stack (Radarr, Sonarr, Prowlarr, SABnzbd, qBittorrent) through natural language via MCP.15GPL 3.0
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)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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