Skip to main content
Glama

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

工具

区域

工具

概览

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

快速本地检查(应返回关于缺少 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

  1. 隧道化。 要么取消注释 docker-compose.yml 中的 cloudflared 服务并给它自己的隧道,要么在你的现有 Jellyfin 隧道中添加一个主机名,指向 http://arr-mcp:8787(或从主机指向 http://localhost:8787)。将 Cloudflare Access 放在主机名前面,或依赖 bearer token——理想情况下两者都做。

  2. 在 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

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • 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
    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
    8
    1
    MIT
  • F
    license
    A
    quality
    A
    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

View all related MCP servers

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)

View all MCP Connectors

Latest Blog Posts

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