arr-mcp
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
Инструменты
Область | Инструменты |
Обзор |
|
Sonarr |
|
Radarr |
|
Prowlarr |
|
Jellyseerr |
|
Bazarr |
|
* = действие записи (запускает поиск или очищает блок-лист серии). Всё остальное — только чтение. Здесь намеренно нет инструментов удаления/изменения конфигурации — это ограничивает радиус поражения. Добавляйте больше позже по мере необходимости.
Настройка
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.
Туннелируйте его. Либо раскомментируйте сервис
cloudflaredвdocker-compose.ymlи дайте ему собственный туннель, либо добавьте имя хоста в существующий туннель Jellyfin, указывающий наhttp://arr-mcp:8787(илиhttp://localhost:8787с хоста). Поставьте Cloudflare Access перед именем хоста или полагайтесь на bearer-токен — в идеале и то, и другое.Добавьте его как пользовательский коннектор в 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
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