Skip to main content
Glama

arr-mcp

Небольшой сервер Model Context Protocol, который помещает медиа-стек *arr (Sonarr, Radarr, Prowlarr, Jellyseerr, Bazarr) за чистые типизированные инструменты. MCP-клиент, такой как Claude, вызывает эти инструменты напрямую через REST API каждого приложения — без браузера, без скрейпинга экрана, без VPN в локальную сеть.

Сервер сам хранит API-ключи; клиент их никогда не видит. Он работает на docker-хосте .104 и доступен из облака через аутентифицированный Cloudflare Tunnel, так что он работает, дома ли вы или управляете Claude с телефона.

Зачем это существует

Всё, что Claude раньше делал с медиа-стеком, проходило через расширение браузера на Mac — что приводило к проблемам с идентичностью подключения («какой браузер?»), трению с сессиями/2FA и танцам с VPN и удалённым управлением. Этот сервер полностью убирает браузер и Mac из цикла и заменяет скрейпинг интерфейса быстрыми структурированными API-вызовами.

Related MCP server: mcp-arr-suite

Инструменты

Область

Инструменты

Обзор

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

* = действие записи (запускает поиск или очищает блок-лист серии). Всё остальное — только чтение. Здесь намеренно нет инструментов удаления/изменения конфигурации — это ограничивает радиус поражения. Добавляйте больше позже по мере необходимости.

Настройка

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

Быстрая локальная проверка (должна вернуть 400/406 об отсутствующей MCP-сессии — это значит, что сервер работает и ваш токен принят; 401 означает, что токен неверен):

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

Запуск без Docker (для разработки)

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

Доступ к Claude

Конечная точка MCP: https://<your-hostname>/mcp.

  1. Туннелируйте его. Либо раскомментируйте сервис cloudflared в docker-compose.yml и дайте ему собственный туннель, либо добавьте имя хоста в существующий туннель Jellyfin, указывающий на http://arr-mcp:8787 (или http://localhost:8787 с хоста). Поставьте Cloudflare Access перед именем хоста или полагайтесь на bearer-токен — в идеале и то, и другое.

  2. Добавьте его как пользовательский коннектор в Claude. Настройки → Настроить → Коннекторы → Добавить пользовательский коннектор → URL https://<your-hostname>/mcp. Укажите bearer-токен в заголовке Authorization: Bearer <token>. Затем Claude перечислит указанные выше инструменты.

Замечания по безопасности

  • Bearer-токен (MCP_AUTH_TOKEN) обязателен до того, как конечная точка станет доступна из интернета. Если он пуст, сервер выводит предупреждение и работает без аутентификации — это допустимо только при привязке к localhost.

  • Контейнер по умолчанию привязан к 127.0.0.1:8787, так что ничего не открыто, кроме выбранного вами туннеля.

  • API-ключи хранятся только в .env (игнорируется git и docker). Если они утекут, смените их в каждом приложении.

  • Область действия намеренно ориентирована на чтение. Прежде чем добавлять разрушительные инструменты (удаление серий, удаление из очереди, изменение настроек), решите, стоит ли удобство риска на конечной точке, доступной через интернет.

Файлы

  • server.py — MCP-сервер и все инструменты (транспорт streamable-HTTP + bearer-аутентификация)

  • arr_client.py — тонкий асинхронный REST-клиент, общий для всех сервисов

  • config.py — создаёт клиент для каждого сервиса из переменных окружения (отсутствует = отключено)

  • Dockerfile / docker-compose.yml — контейнер + опциональный туннель

  • config.example.env — скопируйте в .env

Related MCP Connectors

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
    1
    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
    11 npm
    1
    MIT
  • A
    license
    A
    quality
    B
    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
    ISC