Back to MCP directory
publicPublicdnsLocal runtime

mcp-arr

MCP服务器用于统一管理Sonarr、Radarr、Lidarr、Readarr和Prowlarr等媒体管理套件,支持自然语言查询、跨服务搜索、下载监控和配置分析。

article

README

🚀 MCP *arr Server

MCP *arr Server 是一款适用于 *arr 媒体管理套件(包括 Sonarr、Radarr、Lidarr、Readarr 和 Prowlarr)的服务器。它提供了统一的媒体管理接口,支持自然语言查询、跨服务搜索等功能,能帮助用户更高效地管理媒体资源。

🚀 快速开始

MCP *arr Server 为 *arr 媒体管理套件(如 Sonarr、Radarr、Lidarr、Readarr 和 Prowlarr)提供了 MCP 服务器支持。你可以通过以下步骤快速开始使用:

  1. 确保满足 先决条件
  2. 按照 安装指南 进行安装。
  3. 完成 配置 步骤。
  4. 参考 使用示例 进行操作。

✨ 主要特性

  • 统一媒体管理:通过一个界面控制所有 *arr 应用程序。
  • 自然语言查询:使用自然英语询问你的媒体库信息。
  • 跨服务搜索:同时在电视、电影、音乐和书籍中查找内容。
  • 下载监控:检查所有服务的队列状态和进度。
  • 日历集成:查看所有媒体类型的即将发布内容。
  • 配置审查:获取由 AI 提供的优化设置建议。
  • 灵活配置:仅启用你使用的服务。

各服务功能详情

| 类别 | 功能 | |------|------| | Sonarr (电视) | 列出剧集、查看剧集信息、搜索节目、触发下载、检查队列、查看日历、审查设置 | | Radarr (电影) | 列出电影、搜索影片、触发下载、检查队列、查看发布信息、审查设置 | | Lidarr (音乐) | 列出艺术家、查看专辑、搜索音乐家、触发下载、检查队列、查看日历、审查设置 | | Readarr (书籍) | 列出作者、查看书籍、搜索作家、触发下载、检查队列、查看日历、审查设置 | | Prowlarr (索引器) | 列出索引器、在所有跟踪器中搜索、测试健康状况、查看统计信息 | | 跨服务 | 状态检查、在所有配置的服务中进行统一搜索 | | 配置 | 质量配置文件、下载客户端、命名约定、健康检查、存储信息 | | TRaSH 指南 | 参考质量配置文件、自定义格式、命名约定,并与建议进行比较 |

📦 安装指南

使用 npm(推荐)

npx mcp-arr-server

从源代码安装

git clone https://github.com/aplaceforallmystuff/mcp-arr.git
cd mcp-arr
npm install
npm run build

🔧 配置

获取 API 密钥

每个 *arr 应用程序在“设置 > 常规 > 安全”中都有一个 API 密钥。获取步骤如下:

  1. 打开你的 *arr 应用程序的 Web 界面。
  2. 转到“设置”>“常规”。
  3. 在安全部分找到“API 密钥”。
  4. 复制 API 密钥以用于配置。

针对 Claude Desktop 的配置

将以下内容添加到你的 Claude Desktop 配置文件中: macOS~/Library/Application Support/Claude/claude_desktop_config.json Windows%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "arr": {
      "command": "npx",
      "args": ["-y", "mcp-arr-server"],
      "env": {
        "SONARR_URL": "http://localhost:8989",
        "SONARR_API_KEY": "your-sonarr-api-key",
        "RADARR_URL": "http://localhost:7878",
        "RADARR_API_KEY": "your-radarr-api-key",
        "LIDARR_URL": "http://localhost:8686",
        "LIDARR_API_KEY": "your-lidarr-api-key",
        "READARR_URL": "http://localhost:8787",
        "READARR_API_KEY": "your-readarr-api-key",
        "PROWLARR_URL": "http://localhost:9696",
        "PROWLARR_API_KEY": "your-prowlarr-api-key"
      }
    }
  }
}

针对 Claude Code 的配置

将以下内容添加到 ~/.claude.json 文件中:

{
  "mcpServers": {
    "arr": {
      "command": "npx",
      "args": ["-y", "mcp-arr-server"],
      "env": {
        "SONARR_URL": "http://localhost:8989",
        "SONARR_API_KEY": "your-sonarr-api-key",
        "RADARR_URL": "http://localhost:7878",
        "RADARR_API_KEY": "your-radarr-api-key"
      }
    }
  }
}

注意:仅配置你正在运行的服务。服务器会根据你提供的环境变量自动检测可用的服务。

💻 使用示例

基础用法

以下是一些常见的使用示例:

媒体库管理

  • "Show me all my TV series"(显示我所有的电视剧)
  • "What movies do I have in Radarr?"(我在 Radarr 中有哪些电影?)
  • "List all artists in my music library"(列出我音乐库中的所有艺术家)
  • "How many books do I have by Stephen King?"(我有多少本斯蒂芬·金的书?)

内容搜索

  • "Search for Breaking Bad on Sonarr"(在 Sonarr 中搜索《绝命毒师》)
  • "Find the movie Inception"(查找电影《盗梦空间》)
  • "Search for Taylor Swift albums"(搜索泰勒·斯威夫特的专辑)
  • "Look up books by Brandon Sanderson"(查找布兰登·桑德森的书籍)

下载队列

  • "What's downloading right now?"(现在正在下载什么?)
  • "Check the Sonarr queue"(检查 Sonarr 队列)
  • "Show Radarr download progress"(显示 Radarr 的下载进度)

即将发布内容

  • "What TV episodes are coming this week?"(本周有哪些电视剧集即将发布?)
  • "Show upcoming movie releases"(显示即将上映的电影)
  • "Any new albums coming out this month?"(本月有新专辑发布吗?)
  • "Show me upcoming book releases"(显示即将发布的书籍)

内容下载

  • "What episodes of Severance am I missing?"(我错过了《人生切割术》的哪些剧集?)
  • "Download the missing episodes for that show"(下载该电视剧缺失的剧集)
  • "Search for this specific movie"(搜索这部特定的电影)
  • "Grab that Japanese Breakfast album"(获取那张 Japanese Breakfast 的专辑)
  • "Download all missing books by Brandon Sanderson"(下载布兰登·桑德森所有缺失的书籍)

索引器管理

  • "Are my indexers healthy?"(我的索引器健康吗?)
  • "How are my indexers performing?"(我的索引器表现如何?)
  • "Test all my Prowlarr indexers"(测试我所有的 Prowlarr 索引器)

配置审查(新增)

  • "Review my Sonarr setup and suggest improvements"(审查我的 Sonarr 设置并提出改进建议)
  • "Show me my quality profiles in Radarr"(显示我在 Radarr 中的质量配置文件)
  • "Are there any health issues with my Lidarr?"(我的 Lidarr 有健康问题吗?)
  • "What naming convention am I using for TV shows?"(我对电视剧使用的命名约定是什么?)
  • "Help me understand my quality profiles - why am I not getting 4K?"(帮助我理解我的质量配置文件 - 为什么我没有获得 4K 内容?)
  • "Check my download client configuration"(检查我的下载客户端配置)
  • "How much free space do I have on my root folders?"(我的根文件夹有多少可用空间?)

跨服务操作

  • "Check status of all my *arr services"(检查我所有 *arr 服务的状态)
  • "Search for 'The Office' across all services"(在所有服务中搜索《办公室》)

🔧 技术细节

可用工具

通用工具

| 工具 | 描述 | |------|------| | arr_status | 获取所有配置的 *arr 服务的连接状态 | | arr_search_all | 同时在所有配置的服务中进行搜索 |

Sonarr 工具(电视)

| 工具 | 描述 | |------|------| | sonarr_get_series | 列出你媒体库中的所有电视剧 | | sonarr_search | 搜索要添加的电视剧 | | sonarr_get_queue | 查看当前下载队列 | | sonarr_get_calendar | 查看即将发布的剧集 | | sonarr_get_episodes | 列出某部电视剧的剧集(显示缺失和可用的剧集) | | sonarr_search_missing | 触发搜索某部电视剧的所有缺失剧集 | | sonarr_search_episode | 触发搜索特定的剧集 |

Radarr 工具(电影)

| 工具 | 描述 | |------|------| | radarr_get_movies | 列出你媒体库中的所有电影 | | radarr_search | 搜索要添加的电影 | | radarr_get_queue | 查看当前下载队列 | | radarr_get_calendar | 查看即将发布的电影 | | radarr_search_movie | 触发搜索并下载你媒体库中的某部电影 |

Lidarr 工具(音乐)

| 工具 | 描述 | |------|------| | lidarr_get_artists | 列出你媒体库中的所有艺术家 | | lidarr_search | 搜索要添加的艺术家 | | lidarr_get_queue | 查看当前下载队列 | | lidarr_get_albums | 列出某艺术家的专辑(显示缺失和可用的专辑) | | lidarr_search_album | 触发搜索特定的专辑 | | lidarr_search_missing | 触发搜索某艺术家的所有缺失专辑 | | lidarr_get_calendar | 查看即将发布的专辑 |

Readarr 工具(书籍)

| 工具 | 描述 | |------|------| | readarr_get_authors | 列出你媒体库中的所有作者 | | readarr_search | 搜索要添加的作者 | | readarr_get_queue | 查看当前下载队列 | | readarr_get_books | 列出某作者的书籍(显示缺失和可用的书籍) | | readarr_search_book | 触发搜索特定的书籍 | | readarr_search_missing | 触发搜索某作者的所有缺失书籍 | | readarr_get_calendar | 查看即将发布的书籍 |

Prowlarr 工具(索引器)

| 工具 | 描述 | |------|------| | prowlarr_get_indexers | 列出所有配置的索引器 | | prowlarr_search | 在所有索引器中进行搜索 | | prowlarr_test_indexers | 测试所有索引器并返回健康状态 | | prowlarr_get_stats | 获取索引器统计信息(查询、抓取、失败情况) |

配置审查工具

这些工具适用于 Sonarr、Radarr、Lidarr 和 Readarr。将 {service} 替换为服务名称(例如,sonarr_get_quality_profiles)。 | 工具 | 描述 | |------|------| | {service}_get_quality_profiles | 获取详细的质量配置文件信息,包括允许的质量和自定义格式分数 | | {service}_get_health | 获取应用程序检测到的健康检查警告和问题 | | {service}_get_root_folders | 获取存储路径、可用空间和可访问性状态 | | {service}_get_download_clients | 获取下载客户端配置和设置 | | {service}_get_naming | 获取文件和文件夹的命名约定 | | {service}_get_tags | 获取用于内容组织的标签定义 | | {service}_review_setup | 获取全面的配置信息,以便进行 AI 辅助的设置分析 |

{service}_review_setup 工具可以一次性返回所有配置信息,从而支持通过自然语言对话来优化你的设置。Claude 可以分析你的质量配置文件、提出改进建议、解释为什么某些内容无法获取,并帮助配置复杂的设置,如自定义格式。

⚠️ 重要提示

配置审查工具仅提供对你 *arr 设置的 只读 访问权限。任何对配置的更改都必须直接在 *arr 应用程序界面中进行。AI 提供的建议仅为参考 - 在进行重大更改之前,请务必备份你的配置。维护者不对因遵循 AI 生成的建议而可能出现的任何配置更改、数据丢失或其他问题负责。

TRaSH 指南工具

你可以通过 Claude 直接访问 TRaSH 指南 中社区整理的质量配置文件、自定义格式和命名约定。这些工具无需 *arr 配置 - 它们从 TRaSH 指南的 GitHub 存储库中获取参考数据。 | 工具 | 描述 | |------|------| | trash_list_profiles | 列出 Radarr 或 Sonarr 可用的 TRaSH 质量配置文件 | | trash_get_profile | 获取包含自定义格式、分数和质量设置的详细配置文件 | | trash_list_custom_formats | 列出自定义格式,可选择按类别过滤(如 hdr、音频、分辨率等) | | trash_get_naming | 获取 Plex、Emby、Jellyfin 或标准的推荐命名约定 | | trash_get_quality_sizes | 获取每个质量级别推荐的最小/最大/首选大小 | | trash_compare_profile | 将你的配置文件与 TRaSH 建议进行比较(需要配置 *arr) | | trash_compare_naming | 将你的命名配置与 TRaSH 建议进行比较(需要配置 *arr) |

示例用法

  • "What quality profiles does TRaSH recommend for 4K movies?"(TRaSH 为 4K 电影推荐哪些质量配置文件?)
  • "Show me the remux-web-1080p profile details"(显示 remux-web-1080p 配置文件的详细信息)
  • "Compare my Radarr profile 4 against the TRaSH uhd-bluray-web profile"(将我的 Radarr 配置文件 4 与 TRaSH 的 uhd-bluray-web 配置文件进行比较)
  • "What naming convention should I use for Plex?"(我应该为 Plex 使用什么命名约定?)
  • "List HDR-related custom formats for Radarr"(列出 Radarr 中与 HDR 相关的自定义格式)

数据会缓存 1 小时,以减少对 GitHub API 的调用。

开发

# 开发时的监视模式
npm run watch

# Build TypeScript
npm run build

# 本地运行
SONARR_URL="http://localhost:8989" SONARR_API_KEY="your-key" node dist/index.js

故障排除

"No *arr services configured"

确保你至少设置了一对 URL 和 API_KEY 环境变量:

SONARR_URL="http://localhost:8989"
SONARR_API_KEY="your-api-key"

"API error: 401 Unauthorized"

API 密钥不正确。请在你的 *arr 应用程序的“设置 > 常规 > 安全”中验证。

"fetch failed" or "ECONNREFUSED"

*arr 应用程序未运行或 URL 不正确。请验证:

  • 应用程序正在运行。
  • URL 和端口正确。
  • 没有防火墙阻止连接。

"Sonarr/Radarr/etc not configured"

你尝试使用未配置的服务的工具。请添加相应的 URL 和 API_KEY 环境变量。

🤝 贡献

欢迎贡献代码!请参阅 CONTRIBUTING.md 了解贡献指南。

📄 许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE

🔗 链接

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client