arr-mcp
arr-mcp
Un pequeño servidor de Model Context Protocol que pone la pila de medios *arr (Sonarr, Radarr, Prowlarr, Jellyseerr, Bazarr) detrás de herramientas limpias y tipadas. Un cliente MCP como Claude llama a esas herramientas directamente a través de la API REST de cada aplicación — sin navegador, sin extracción de pantalla, sin VPN a la LAN.
El servidor guarda las claves de API él mismo; el cliente nunca las ve. Se ejecuta en el
host docker .104 y se accede desde la nube a través de un Cloudflare Tunnel autenticado,
por lo que funciona tanto si estás en casa como si usas Claude desde tu teléfono.
Por qué existe esto
Todo lo que Claude hacía antes en la pila de medios pasaba por una extensión de navegador en el Mac — lo que provocaba cambios de identidad de conexión ("¿qué navegador?"), fricción con sesiones/2FA, y el baile de VPN + control remoto. Este servidor elimina el navegador y el Mac del bucle por completo, y sustituye el raspado de la interfaz por llamadas API rápidas y estructuradas.
Related MCP server: mcp-arr-suite
Herramientas
Área | Herramientas |
Resumen |
|
Sonarr |
|
Radarr |
|
Prowlarr |
|
Jellyseerr |
|
Bazarr |
|
* = acción de escritura (dispara una búsqueda, o limpia la lista de bloqueo de una serie). Todo lo demás
es de solo lectura. Deliberadamente no hay herramientas de borrado/eliminación ni de mutación de configuración —
eso mantiene el radio de impacto pequeño. Añade más más adelante según sea necesario.
Configuración
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 --buildComprobación local rápida (debería devolver un 400/406 sobre una sesión MCP faltante — eso significa que está activo y que tu token fue aceptado; un 401 significa que el token es incorrecto):
curl -s -o /dev/null -w "%{http_code}\n" \
-H "Authorization: Bearer <your MCP_AUTH_TOKEN>" \
http://localhost:8787/mcpEjecutar sin Docker (para desarrollo)
pip install -r requirements.txt
set -a; source .env; set +a
python server.pyExponerlo a Claude
El endpoint MCP es https://<tu-hostname>/mcp.
Tunelízalo. O descomenta el servicio
cloudflaredendocker-compose.ymly dale su propio túnel, o añade un hostname a tu túnel Jellyfin existente apuntando ahttp://arr-mcp:8787(ohttp://localhost:8787desde el host). Pon Cloudflare Access delante de el hostname, o confía en el token bearer — idealmente ambos.Añádelo como conector personalizado en Claude. Configuración → Personalizar → Conectores → Añadir conector personalizado → URL
https://<tu-hostname>/mcp. Proporciona el token bearer como cabeceraAuthorization: Bearer <token>. Claude listará entonces las herramientas anteriores.
Notas de seguridad
El token bearer (
MCP_AUTH_TOKEN) es obligatorio antes de que el endpoint sea accesible desde internet. Si está vacío, el servidor imprime una advertencia y sirve sin autenticación — solo aceptable vinculado a localhost.El contenedor se vincula a
127.0.0.1:8787por defecto, por lo que nada queda expuesto excepto a través del túnel que elijas.Las claves de API viven solo en
.env(ignorado por git, ignorado por docker). Rota las claves en cada aplicación si alguna vez se filtran.El alcance es intencionadamente pesado en lectura. Antes de añadir herramientas destructivas (borrar series, eliminar de la cola, editar ajustes), decide si la conveniencia vale el riesgo en un endpoint accesible desde internet.
Archivos
server.py— el servidor MCP y todas las herramientas (transporte HTTP streamable + autenticación bearer)arr_client.py— cliente REST asíncrono ligero compartido por cada servicioconfig.py— construye un cliente por servicio a partir de variables de entorno (faltante = deshabilitado)Dockerfile/docker-compose.yml— contenedor + túnel opcionalconfig.example.env— copia a.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