arr-mcp
arr-mcp
一个小的 Model Context Protocol 服务器,将 *arr 媒体栈(Sonarr、Radarr、Prowlarr、Jellyseerr、Bazarr)置于干净、类型化的工具之后。MCP 客户端(如 Claude)直接通过每个应用的 REST API 调用这些工具——无需浏览器、无需屏幕抓取、无需 VPN 进入局域网。
服务器自己持有 API 密钥;客户端永远看不到它们。它运行在 .104 docker 主机上,并通过经过身份验证的 Cloudflare Tunnel 从云端访问,因此无论你是在家还是用手机驱动 Claude,它都能工作。
为什么存在
Claude 之前在媒体栈上所做的一切都是通过 Mac 上的浏览器扩展完成的——这带来了连接身份混乱(“哪个浏览器?”)、会话/2FA 摩擦,以及 VPN + 远程控制的舞蹈。这个服务器完全将浏览器和 Mac 从循环中移除,并用快速、结构化的 API 调用取代了 UI 抓取。
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快速本地检查(应返回关于缺少 MCP 会话的 400/406——这意味着它已启动并且你的令牌被接受;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。
隧道化。 要么取消注释
docker-compose.yml中的cloudflared服务并给它自己的隧道,要么在你的现有 Jellyfin 隧道中添加一个主机名,指向http://arr-mcp:8787(或从主机指向http://localhost:8787)。将 Cloudflare Access 放在主机名前面,或依赖 bearer token——理想情况下两者都做。在 Claude 中将其添加为自定义连接器。 设置 → 自定义 → 连接器 → 添加自定义连接器 → URL
https://<your-hostname>/mcp。提供 bearer token 作为Authorization: Bearer <token>头。Claude 将随后列出上述工具。
安全说明
bearer token(
MCP_AUTH_TOKEN)在端点从互联网可达之前是必需的。如果为空,服务器会打印警告并以未认证方式服务——仅可接受绑定到 localhost。容器默认绑定到
127.0.0.1:8787,因此除了你选择的隧道外,不会暴露任何内容。API 密钥仅存在于
.env(git 忽略,docker 忽略)中。如果泄露,请在每个应用中轮换它们。范围故意以读取为主。在添加破坏性工具(删除系列、从队列中移除、编辑设置)之前,请决定在互联网可达的端点上,便利是否值得冒险。
文件
server.py— MCP 服务器和所有工具(流式 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