# Mikes ARR-MCP Ein kleiner, eigenständiger Docker-Container für **Sonarr und Radarr**. Das Dockerfile basiert bereits auf Debian Slim; ein leerer Debian-Container muss nicht vorher angelegt oder nachträglich verändert werden. MCP-Endpunkt nach der Standardinstallation: ```text http://:8207/mcp ``` ## Warum nicht einfach der unveränderte Knuckles-MCP? Stand 28. August 2026 wurde `Knuckles-Team/arr-mcp` 2.1.0 geprüft. Übernommen werden dessen Python-3.14-Slim-Basis, `/health`-Check, Prozess-Init und begrenzte Docker-Logs. Nicht übernommen wird die generische Oberfläche mit `sonarr_action(action, params_json)` und `radarr_action(action, params_json)`. Ein kleines Modell muss dabei Methodennamen und Parameter erraten und kann versehentlich eine Schreibaktion wählen. Das Paket 2.1.0 selbst wird noch nicht als Basis verwendet: Seine veröffentlichte PyPI-Version verlangt derzeit ein nicht öffentlich verfügbares `agent-utilities >=2.0.0`. Die reproduzierbar installierbare Basis bleibt deshalb vorläufig `arr-mcp[mcp]==1.0.1`. Dieser Fork bietet stattdessen eindeutige Werkzeuge mit festen Parametern: ```text sonarr_find_series sonarr_get_season_summary sonarr_search_releases sonarr_system_status radarr_find_movie radarr_movie_codec_inventory radarr_search_releases ``` Alle sieben sind rein lesend. Es gibt keinen Raw-Request und kein generisches Action-Werkzeug. `sonarr_search_releases` ändert insbesondere kein Monitoring und startet weder automatische Suche noch Download. Nur mit `ARR_MCP_WRITE=1` erscheinen zusätzlich: ```text sonarr_preview_release_grab sonarr_grab_release sonarr_preview_episode_search sonarr_start_episode_search ``` Die beiden ausführenden Werkzeuge verlangen eine vorherige Vorschau, eine ausdrückliche Bestätigung und ein kurzlebiges Ticket. Radarr-Schreibwerkzeuge sind absichtlich nicht enthalten. ## Installation auf Unraid Im vollständigen Checkout als root genau einen Befehl ausführen: ```bash ./services/arr-mcp/install-on-unraid.sh ``` Beim ersten Lauf wird nur diese Datei angelegt: ```text /mnt/nvme-storage/appdata/ARR-MCP/arr-mcp.env ``` Dort `SONARR_TOKEN` und `RADARR_TOKEN` eintragen und denselben Befehl erneut starten. Das Skript baut `mike-ai/arr-mcp:1.1.0`, startet ausschließlich `ARR-MCP` und installiert die vorhandene Unraid-DockerMan-Vorlage. Eine vorhandene Env-Datei wird weder angezeigt noch überschrieben. ### Kurzer Auftrag für Hermes/Qwen ```text Installiere Mikes ARR-MCP aus ssh://git@192.168.1.2:33/michael/AI-Profile-Router.git auf Unraid. Lies dazu services/arr-mcp/README.md und führe ausschließlich services/arr-mcp/install-on-unraid.sh aus. Erfinde keinen eigenen Container und keine andere ARR-Konfiguration. Falls SONARR_TOKEN oder RADARR_TOKEN fehlen, stoppe und nenne mir nur die fehlenden Variablennamen; zeige keine vorhandenen Werte an. Melde am Ende nur Containerstatus, Healthcheck, MCP-URL und die angebotenen Werkzeugnamen. ``` ## Vorhandener nackter Debian-Slim-Container Nur als Alternative, wenn bewusst bereits ein persistenter Debian-Slim- Container mit dem kompletten Repository läuft: ```bash ./services/arr-mcp/install-in-debian-slim.sh ``` Danach startet `/usr/local/bin/run-arr-mcp` den Server. Dieser Weg ist weniger reproduzierbar; bei Neuerstellung des Containers geht die nachträgliche Installation verloren. Der Dockerfile-Build oben ist deshalb empfohlen. ## MCP-Client eintragen ```yaml mcp_servers: arr: url: http://192.168.1.2:8207/mcp timeout: 600 ``` Danach die Werkzeugliste neu laden oder einen neuen Chat öffnen. ## Test, Update und Entfernung Offline-Tests: ```bash python3 -m unittest dev/test_sonarr_release_grab.py dev/test_radarr_patch.py ``` Update nach `git pull`: denselben Installationsbefehl erneut ausführen. Entfernung: ```bash ./services/arr-mcp/install-on-unraid.sh uninstall ``` Die Appdata-Konfiguration bleibt dabei als Rückfall erhalten.