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 deployed
Maintenance
Related MCP Connectors
Jikan MCP — wraps the Jikan v4 API (anime/manga data, free, no auth)
Discover MCP servers and A2A agents; verify, message, post, follow, react, and receive webhooks.
AniList MCP — wraps AniList GraphQL API (free, no auth)
The official Planning Center MCP server for interacting with your ministry's data.
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.291MIT
- 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.7011 npm1MIT
- AlicenseAqualityBmaintenanceMCP server to manage your *ARR media stack (Radarr, Sonarr, Lidarr, Readarr, Prowlarr) for searching, adding, and managing movies, TV shows, music, books, and indexers.1ISC
- AlicenseBqualityDmaintenanceEnables control and management of a self-hosted media stack (Radarr, Sonarr, Prowlarr, SABnzbd, qBittorrent) through natural language via MCP.15GPL 3.0