MCP\*arr服务器
 ](https://www.npmjs.com/package/mcp-arr-server)   
MCP服务器 \*arr媒体管理套件 -索纳尔、拉达、利达和普罗瓦尔。
同时支持本地 stdio Claude/Codex风格客户端的模式和托管MCP客户端(如ChatGPT连接器)的远程HTTP模式。
为什么使用这个?
- 统一媒体管理 -从一个界面控制所有\*arr应用程序
- 自然语言查询 -用简单的英语询问你的图书馆
- 跨服务搜索 -同时在电视、电影和音乐中查找内容
- 下载监控 -检查所有服务的队列状态和进度
- 日历集成 -查看所有媒体类型的最新版本
- 配置审查 -获取基于人工智能的建议,以优化您的设置
- 灵活配置 -仅启用您使用的服务
特性
| 类别 | 功能 |
|---|---|
| 索纳尔(电视) | 列出系列、查看剧集、搜索节目、触发下载、检查队列、查看日历、查看设置 |
| 拉达(电影) | 列出电影、搜索电影、触发下载、检查队列、查看发布、查看设置 |
| 利达(音乐) | 列出艺术家、查看专辑、搜索音乐家、触发下载、检查队列、查看日历、查看设置 |
| Prowlarr(索引器) | 列出索引器、在所有跟踪器中搜索、测试运行状况、查看统计信息 |
| 交叉服务 | 状态检查,跨所有配置的服务进行统一搜索 |
| 配置 | 质量配置文件、下载客户端、命名约定、健康检查、存储信息 |
| TRaSH指南 | 参考质量配置文件、自定义格式、命名约定,与建议进行比较 |
先决条件
- Node.js 18+
- 至少有一个使用API访问权限运行的\*arr应用程序:
- 索纳尔 电视连续剧 - 拉达尔 对于电影 - 利达 为了音乐 - Prowlarr 用于索引器管理
安装
使用npm(推荐)
npx mcp-arr-server远程HTTP模式
MCP_TRANSPORT=http PORT=3000 npx mcp-arr-server默认情况下,远程服务器会监听 127.0.0.1:3000 并为MCP提供服务 /mcp.
远程模式的环境变量:
MCP_TRANSPORT=http启用远程流式HTTP传输HOST覆盖绑定主机(默认127.0.0.1)PORT覆盖端口(默认3000)MCP_PATH覆盖MCP端点路径(默认/mcp)
码头工人
本地构建:
docker build -t mcp-arr .在本地stdio模式下运行:
docker run --rm -i \
-e SONARR_URL=http://host.docker.internal:8989 \
-e SONARR_API_KEY=your-sonarr-api-key \
mcp-arr在远程HTTP模式下运行:
docker run --rm -p 3000:3000 \
-e MCP_TRANSPORT=http \
-e HOST=0.0.0.0 \
-e PORT=3000 \
-e SONARR_URL=http://host.docker.internal:8989 \
-e SONARR_API_KEY=your-sonarr-api-key \
mcp-arr最小化 docker-compose.yml:
services:
mcp-arr:
build: .
ports:
- "3000:3000"
environment:
MCP_TRANSPORT: http
HOST: 0.0.0.0
PORT: 3000
SONARR_URL: http://host.docker.internal:8989
SONARR_API_KEY: your-sonarr-api-key
RADARR_URL: http://host.docker.internal:7878
RADARR_API_KEY: your-radarr-api-key来源
git clone https://github.com/aplaceforallmystuff/mcp-arr.git
cd mcp-arr
npm install
npm run build配置
获取API密钥
在“设置”>“常规”>“安全”中,每个\*arr应用程序都有一个API密钥:
- 打开\*arr应用程序的web界面
- 首选 设置 > 通用
- 找到 API密钥 在安全部分
- 复制API密钥以便在配置中使用
适用于克劳德桌面
添加到您的Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %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",
"PROWLARR_URL": "http://localhost:9696",
"PROWLARR_API_KEY": "your-prowlarr-api-key"
}
}
}
}克劳德代码
添加 ~/.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"
}
}
}
}备注:仅配置您正在运行的服务。服务器会根据您提供的环境变量自动检测哪些服务可用。
仅TRaSH模式:如果不配置任何\*arr服务,服务器仍会启动并公开TRaSH指南参考工具和通用工具 search 和 fetch.
ChatGPT/远程MCP
使用 mcp-arr 使用ChatGPT,在可访问的主机上以远程HTTP模式运行服务器,并将ChatGPT连接到 /mcp 终点。
服务器现在公开通用 search 和 fetch ChatGPT风格的远程MCP集成所需的工具:
search发现匹配的\*arr媒体和TRaSH配置文件fetch返回所选搜索结果的结构化详细信息
现有的特定于服务的工具仍然可用于更丰富的本地或高级用户工作流程。
使用示例
图书馆管理
- “给我看我所有的电视剧”
- “我在拉达有什么电影?”
- “列出我音乐库中的所有艺术家”
搜索和添加内容
- “在Sonarr上搜索科幻节目”
- “寻找90年代的动作片”
- “将此节目添加到我的电视库”
- “将该电影添加到Radarr”
- “搜索爵士乐专辑并添加此艺术家”
- “使用我的'4k'标签添加此电影”
- “我在Sonarr有什么标签?”
下载队列
- “现在正在下载什么?”
- “检查Sonarr队列”
- “显示Radarr下载进度”
即将发布
- “本周有哪些电视节目?”
- “显示即将上映的电影”
- “这个月有新专辑发行吗?”
正在下载内容
- “我错过了这个节目的哪些剧集?”
- “下载该系列缺失的剧集”
- “搜索此特定电影”
- “抓住我丢失的那张专辑”
索引器管理
- “我的索引员健康吗?”
- “我的索引器表现如何?”
- “测试我的所有Prowlarr索引器”
配置审查
- “查看我的Sonarr设置并提出改进建议”
- “在Radarr中显示我的质量配置文件”
- “我的Lidarr有什么健康问题吗?”
- “我对电视节目使用什么命名约定?”
- “帮助我了解我的质量配置文件——为什么我没有获得4K?”
- “检查我的下载客户端配置”
- “我的根文件夹上有多少可用空间?”
交叉服务
- “检查所有my\*arr服务的状态”
- “在所有服务中搜索‘喜剧’”
可用工具
通用工具
| 工具 | 说明 |
|---|---|
arr_status | 获取所有已配置\*arr服务的连接状态 |
arr_search_all | 同时搜索所有已配置的服务 |
search | 用于远程MCP客户端的通用发现工具,如ChatGPT |
fetch | 返回项目的通用详细信息获取工具 search |
声纳工具(电视)
| 工具 | 说明 |
|---|---|
sonarr_get_series | 列出您资料库中的所有电视剧 |
sonarr_search | 按名称搜索电视剧(返回tvdbId进行添加) |
sonarr_add_series | 将电视剧添加到Sonarr(支持标签) |
sonarr_get_root_folders | 获取用于添加系列的可用根文件夹 |
sonarr_get_quality_profiles | 获取可用的质量配置文件以添加系列 |
sonarr_get_queue | 使用查看当前下载队列 limit 和 offset 分页 |
sonarr_get_calendar | 查看即将播出的剧集 |
sonarr_get_episodes | 列出一个系列的剧集(节目缺失与可用) |
sonarr_search_missing | 触发搜索系列中所有缺失的剧集 |
sonarr_search_episode | 触发搜索特定剧集 |
Radarr工具(电影)
| 工具 | 说明 |
|---|---|
radarr_get_movies | 列出库中的所有电影 |
radarr_search | 按名称搜索电影(添加时返回tmdbId) |
radarr_add_movie | 将电影添加到Radarr(支持标签) |
radarr_get_root_folders | 获取用于添加电影的可用根文件夹 |
radarr_get_quality_profiles | 获取可用的质量配置文件以添加电影 |
radarr_get_queue | 使用查看当前下载队列 limit 和 offset 分页 |
radarr_get_calendar | 查看即将发布的版本 |
radarr_search_movie | 触发搜索以下载库中的电影 |
Lidarr工具(音乐)
| 工具 | 说明 |
|---|---|
lidarr_get_artists | 列出库中的所有艺术家 |
lidarr_search | 按名称搜索艺术家(返回foreignArtistId进行添加) |
lidarr_add_artist | 将艺术家添加到Lidarr(支持标签) |
lidarr_get_root_folders | 获取用于添加艺术家的可用根文件夹 |
lidarr_get_quality_profiles | 获取可用的质量配置文件以添加艺术家 |
lidarr_get_metadata_profiles | 获取用于添加艺术家的可用元数据配置文件 |
lidarr_get_queue | 使用查看当前下载队列 limit 和 offset 分页 |
lidarr_get_albums | 列出艺术家的专辑(显示缺失与可用) |
lidarr_search_album | 触发搜索特定相册 |
lidarr_search_missing | 触发搜索艺术家的所有缺失专辑 |
lidarr_get_calendar | 查看即将发行的专辑 |
Prowlarr工具(索引器)
| 工具 | 说明 |
|---|---|
prowlarr_get_indexers | 列出所有已配置的索引器 |
prowlarr_search | 在所有索引器中搜索 |
prowlarr_test_indexers | 测试所有索引器并返回运行状况 |
prowlarr_get_stats | 获取索引器统计信息(查询、抓取、失败) |
配置审查工具
这些工具可用于Sonarr、Radarr和Lidarr。替换 {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的建议只是建议——在做出重大更改之前,请务必备份您的配置。维护人员不对以下人工智能生成的建议可能引起的任何配置更改、数据丢失或其他问题负责。
TRaSH指南工具
访问社区策划的质量配置文件、自定义格式和命名约定 TRaSH指南 直接通过克劳德或ChatGPT。这些工具无需任何\*arr配置即可工作,它们从TRaSH Guides 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) |
示例用法:
- “TRaSH建议4K电影的质量配置文件是什么?”
- “显示remux-web-1080p配置文件详细信息”
- “将我的Radarr配置文件4与TRaSH uhd蓝光网络配置文件进行比较”
- “我应该为Plex使用什么命名约定?”
- “列出Radarr的HDR相关自定义格式”
数据缓存1小时,以最大限度地减少GitHub API调用。
发展
# Watch mode for development
npm run watch
# Build TypeScript
npm run build
# Run locally
SONARR_URL="http://localhost:8989" SONARR_API_KEY="your-key" node dist/index.js故障排除
“未配置\*arr服务”
请确保至少设置了一对URL和API_KEY环境变量:
SONARR_URL="http://localhost:8989"
SONARR_API_KEY="your-api-key"“API错误:401未经授权”
API密钥不正确。在\*arr应用程序的“设置”>“常规”>“安全”下进行验证。
“获取失败”或“ECONNREFUSED”
\*arr应用程序未运行或URL不正确。验证:
- 应用程序正在运行
- URL和端口正确
- 没有防火墙阻止连接
“声纳/雷达等未配置”
您试图为未配置的服务使用工具。添加相应的URL和API_KEY环境变量。
许可证
麻省理工学院-见 许可证 了解详情。
链接
- Servarr维基 -所有\*arr应用程序的文档
- TRaSH指南 -质量配置文件、自定义格式和设置指南
- Sonarr API文件
- 模型上下文协议
-
