Token导航 LogoToken导航TokenDH.com
Sonarr & Radarr MCP Server logo
运维云端stdio官方级别未说明来源级核验

Sonarr & Radarr MCP Server

MCP Server

一个安全、生产就绪的模型上下文协议(MCP)服务器,用于与Sonarr和Radarr API交互,支持查询媒体库、检查新增内容、查看即将发布的内容及执行基本管理任务。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
PythonClaude容器化Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

bdfrost

提供方

bdfrost

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv venv

详细介绍

Sonarr&Radarr MCP服务器

一个安全的、生产就绪的模型上下文协议(MCP)服务器,用于与Sonarr和Radarr API交互。此服务器使Claude能够查询您的媒体库,检查最近添加的内容,查看即将发布的版本,并执行基本的管理任务。

特性

索纳尔

  • 获取最近添加的电视剧
  • 查看即将播出的剧集日历
  • 在您的库中搜索系列
  • 检查系统状态和磁盘空间
  • 查看下载队列
  • 刷新系列元数据
  • 触发事件搜索

雷达

  • 获取最近添加的电影
  • 查看即将上映的电影
  • 在您的库中搜索电影
  • 检查系统状态和磁盘空间
  • 查看下载队列
  • 刷新电影元数据
  • 触发电影搜索

安全特性

此MCP服务器在构建时优先考虑安全性:

  • 非根容器执行:以用户ID 1000(非root)运行
  • 只读根文件系统:容器文件系统是不可变的
  • 无特权升级:容器无法获得其他特权
  • 能力下降:所有Linux功能都下降了
  • 秘密管理:存储在Kubernetes机密中的API密钥
  • 网络策略:仅限制网络访问必要的服务
  • 资源限制:CPU和内存限制可防止资源耗尽
  • 安全默认值:从头开始遵循安全最佳做法

先决条件

  • Docker(用于容器化)
  • Kubernetes集群(用于部署)
  • 具有API访问权限的Sonarr实例
  • 具有API访问权限的Radarr实例
  • Python 3.12+(用于本地开发)

快速开始

1.克隆和配置

git clone 
cd mcp-servarr

2.设置环境变量

复制示例环境文件:

cp .env.example .env

编辑 .env 根据您的实际值:

# Sonarr Configuration
SONARR_URL=http://your-sonarr-host:8989
SONARR_API_KEY=your-sonarr-api-key

# Radarr Configuration
RADARR_URL=http://your-radarr-host:7878
RADARR_API_KEY=your-radarr-api-key

查找API密钥:

  • 声纳:设置→ 将军→ 安全→ API密钥
  • 雷达:设置→ 将军→ 安全→ API密钥

3.构建Docker镜像

docker build -t mcp-servarr:latest .

4.使用Docker Compose进行本地测试

docker-compose up

Kubernetes部署

1.更新机密

编辑 k8s/deployment.yaml 并替换Secret中的占位符API密钥:

stringData:
  SONARR_URL: "http://sonarr.media.svc.cluster.local:8989"
  SONARR_API_KEY: "your-actual-sonarr-api-key"
  RADARR_URL: "http://radarr.media.svc.cluster.local:7878"
  RADARR_API_KEY: "your-actual-radarr-api-key"

安全说明: 用于生产,使用 kubectl create secret 而不是将秘密存储在YAML中:

kubectl create secret generic mcp-servarr-secrets \
  --namespace=mcp-servarr \
  --from-literal=SONARR_URL='http://sonarr:8989' \
  --from-literal=SONARR_API_KEY='your-key' \
  --from-literal=RADARR_URL='http://radarr:7878' \
  --from-literal=RADARR_API_KEY='your-key'

2.部署到Kubernetes

kubectl apply -f k8s/deployment.yaml

3.验证部署

kubectl get pods -n mcp-servarr
kubectl logs -n mcp-servarr deployment/mcp-servarr

连接到克劳德

要将此MCP服务器与Claude Desktop一起使用,请将其添加到您的MCP设置中:

使用Docker

添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "mcp-servarr": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--env-file", "/path/to/your/.env",
        "mcp-servarr:latest"
      ]
    }
  }
}

使用Python(开发)

{
  "mcpServers": {
    "mcp-servarr": {
      "command": "python",
      "args": [
        "/path/to/mcp-servarr/src/server.py"
      ],
      "env": {
        "SONARR_URL": "http://localhost:8989",
        "SONARR_API_KEY": "your-key",
        "RADARR_URL": "http://localhost:7878",
        "RADARR_API_KEY": "your-key"
      }
    }
  }
}

使用示例

连接到Claude后,您可以提出以下问题:

  • “本周Sonarr增加了哪些电视节目?”
  • “未来30天有什么电影上映?”
  • “在我的图书馆里搜索《绝命毒师》”
  • “Radarr中当前正在下载什么?”
  • “显示Sonarr的系统状态”
  • “刷新序列ID 123的元数据”

api参考

环境变量

变量必填默认描述
SONARR_URL没有\*-Sonarr基本URL(例如。,http://sonarr:8989)
SONARR_API_KEY无\*-Sonarr API密钥
RADARR_URL无\*-Radarr基本URL(例如。,http://radarr:7878)
RADARR_API_KEY无\*-Radarr API密钥
REQUEST_TIMEOUT30HTTP请求超时(秒)

\*必须至少配置一个服务(Sonarr或Radarr)

可用工具

Sonarr工具

  • sonarr_get_recent_series -获取最近添加的系列
  • sonarr_get_calendar -获取即将播出的剧集
  • sonarr_search_series -搜索系列
  • sonarr_get_system_status -获取系统状态
  • sonarr_get_queue -获取下载队列
  • sonarr_refresh_series -刷新系列元数据
  • sonarr_search_episodes -搜索缺失的剧集

雷达工具

  • radarr_get_recent_movies -获取最近添加的电影
  • radarr_get_calendar -获取即将发布的版本
  • radarr_search_movies -搜索电影
  • radarr_get_system_status -获取系统状态
  • radarr_get_queue -获取下载队列
  • radarr_refresh_movie -刷新电影元数据
  • radarr_search_movie -搜索电影

发展

地方发展设置

  1. 创建虚拟环境:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 运行服务器:
export SONARR_URL=http://localhost:8989
export SONARR_API_KEY=your-key
export RADARR_URL=http://localhost:7878
export RADARR_API_KEY=your-key
python src/server.py

测试

使用MCP检查器测试服务器:

npx @modelcontextprotocol/inspector python src/server.py

故障排除

连接问题

问题:无法连接到Sonarr/Radarr

解决方案:

  • 验证URL是否正确(包括http://或https://)
  • 检查API密钥是否有效
  • 确保Sonarr/Radarr可从集装箱进入
  • 检查Kubernetes中的网络策略

权限错误

问题:容器失败,出现权限错误

解决方案:

  • 验证容器是否以非root身份运行(UID 1000)
  • 检查卷装载权限
  • 确保只读文件系统配置正确

API速率限制

问题:获取速率受API限制

解决方案:

  • 增加 REQUEST_TIMEOUT 如果请求超时
  • 减少查询频率
  • 检查Sonarr/Radarr日志是否存在问题

安全考虑

生产部署检查表

  • \[\]将Kubernetes机密用于API密钥(而不是ConfigMaps)
  • \[\]启用Pod安全标准(受限配置文件)
  • \[\]配置网络策略以限制出口流量
  • \[\]设置适当的资源限制
  • \[\]启用审核日志记录
  • \[\]使用私有容器注册表
  • \[\]扫描图像以查找漏洞
  • \[\]定期旋转API键
  • \[\]对Sonarr/Radarr连接使用TLS
  • \[\]实施监控和警报

API密钥安全

永远不要将API密钥提交到版本控制!

生产:

  1. 使用Kubernetes机密
  2. 考虑使用秘密管理器(保险库、密封秘密等)
  3. 定期旋转按键
  4. 针对不同的环境使用单独的API密钥
  5. 在Sonarr/Radarr中启用API密钥身份验证登录

贡献

欢迎投稿!请随时提交拉取请求。

指南

  • 遵循现有代码样式
  • 为新功能添加测试
  • 更新文档
  • 确保安全最佳实践
  • 在Docker和Kubernetes中进行测试

许可证

MIT许可证-有关详细信息,请参阅许可证文件

支持

对于问题、疑问或贡献,请在GitHub上打开问题。

致谢

目录标签

目录标签

PythonClaude容器化媒体管理本地部署自动化工具API集成安全部署

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP