媒体栈管理工具

一个基于MCP协议的服务器,提供50种工具用于监控和管理基于Docker的媒体栈,支持Sonarr、Radarr等多种媒体服务。

  • by aderaaij
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aderaaij/mcp-mediastack

使用说明

mcp媒体堆栈

一 主控程序 该服务器提供50个工具,用于监控和管理基于Docker的媒体堆栈。内置于 FastMCP 和 httpx.

支持服务列表

  • 索纳尔 -电视剧管理
  • 拉达尔 -电影管理
  • SABnzbd -Usenet下载器
  • qBittorrent -Torrent客户端
  • Prowlarr -索引器管理
  • Readarr -图书管理
  • 巴扎 -字幕管理
  • 塞尔 -媒体请求
  • 胶屯 -VPN状态监控
  • 斯考特 -批量升级搜索(节省空间的扫描)
  • Cleanuparr -下载清理停滞
  • 加上a 节省空间的扫描进度 基于Radarr/Sonarr标签构建的工具

快速开始

Docker运行

docker run -d \
  --name mediastack-mcp \
  -p 8888:8888 \
  -e MCP_TRANSPORT=sse \
  -e NAS_HOST=192.168.1.100 \
  -e SONARR_API_KEY=your_key \
  -e RADARR_API_KEY=your_key \
  -e SABNZBD_API_KEY=your_key \
  ghcr.io/aderaaij/mcp-mediastack:latest

Docker Compose

services:
  mediastack-mcp:
    image: ghcr.io/aderaaij/mcp-mediastack:latest
    container_name: mediastack-mcp
    restart: unless-stopped
    ports:
      - 8888:8888
    environment:
      - MCP_TRANSPORT=sse
      - MCP_PORT=8888
      - NAS_HOST=192.168.1.100
      - SONARR_API_KEY=${SONARR_API_KEY}
      - RADARR_API_KEY=${RADARR_API_KEY}
      - SABNZBD_API_KEY=${SABNZBD_API_KEY}
      - PROWLARR_API_KEY=${PROWLARR_API_KEY}
      - READARR_API_KEY=${READARR_API_KEY}
      - BAZARR_API_KEY=${BAZARR_API_KEY}
      - SEERR_API_KEY=${SEERR_API_KEY}
      - QBITTORRENT_USERNAME=${QBITTORRENT_USERNAME}
      - QBITTORRENT_PASSWORD=${QBITTORRENT_PASSWORD}

环境变量

变量 默认值 描述
MCP_TRANSPORT stdio 运输方式: stdio 或 sse
MCP_PORT 8888 SSE运输港口
NAS_HOST 192.168.1.100 运行媒体堆栈的服务器的IP/主机名
SONARR_API_KEY Sonarr API键(设置>常规)
SONARR_PORT 8989 索纳尔港
RADARR_API_KEY Radarr API密钥
RADARR_PORT 7878 雷达端口
SABNZBD_API_KEY SABnzbd API密钥
SABNZBD_PORT 8080 SABnzbd端口
QBITTORRENT_USERNAME admin qBittorrent用户名
QBITTORRENT_PASSWORD adminadmin qBittorrent密码
QBITTORRENT_PORT 8090 qBittorrent端口
PROWLARR_API_KEY Prowlarr API密钥
PROWLARR_PORT 9696 Prowlarr港口
READARR_API_KEY Readarr API密钥
READARR_PORT 8787 Readarr端口
BAZARR_API_KEY Bazarr API密钥
BAZARR_PORT 6767 巴扎港
SEERR_API_KEY Seerr API密钥
SEERR_PORT 5055 Seerr港口
GLUETUN_PORT 8005 Gluetun控制API端口
SCOUTARR_PORT 5839 Scoutarr端口——显式设置以启用Scoutarr工具
CLEANUPARR_PORT 11011 Cleanuparr端口--显式设置以启用Cleanuperr工具
ENABLED_SERVICES 仅加载这些服务(逗号分隔,例如。 sonarr,radarr)
DISABLED_SERVICES 跳过这些服务(逗号分隔,例如。 vpn,qbittorrent)

选择性工具加载

根据API密钥的设置自动加载工具。只设置您使用的服务的密钥——未配置服务的工具将不会被注册。

  • API关键服务 (Sonarr、Radarr、Readarr、Prowlarr、Bazarr、SABnzbd、Seerr):当他们的API密钥为非空时启用
  • qBittorrent和VPN:默认情况下启用(没有API密钥)。使用 DISABLED_SERVICES=vpn,qbittorrent 禁用
  • Scoutarr和Cleanuparr:无钥匙--仅在以下情况下启用 SCOUTARR_PORT / CLEANUPARR_PORT 已明确设置
  • 节省空间:在设置Sonarr和Radarr API键时启用
  • ENABLED_SERVICES:用明确的白名单覆盖自动检测(例如。 ENABLED_SERVICES=sonarr,radarr)

工具

监控(32个工具)

工具 说明
get_system_overview 所有服务的综合状态
get_vpn_status 通过Gluetun获取当前VPN连接信息
check_vpn_health 验证VPN是否正常工作(IP泄漏检查)
get_sonarr_status 声纳系统状态
get_sonarr_queue 活动下载队列
get_sonarr_calendar 即将播出的剧集
get_sonarr_activity 最近的下载历史记录
get_sonarr_missing 缺失的剧集
search_sonarr_series 搜索现有库
get_sonarr_library_stats 图书馆统计
get_radarr_status 雷达系统状态
get_radarr_queue 活动下载队列
get_radarr_calendar 即将上映的电影
get_radarr_activity 最近的下载历史记录
get_radarr_missing 缺失的电影
search_radarr_movies 搜索现有库
get_radarr_library_stats 图书馆统计
get_sabnzbd_status SABnzbd队列和状态
get_sabnzbd_history 下载历史记录
get_qbittorrent_status qBittorrent传输信息
get_qbittorrent_torrents 列出带有过滤器的种子
get_prowlarr_status 索引器状态和统计信息
get_readarr_status 读取系统状态
get_readarr_queue Readarr下载队列
get_bazarr_status Bazarr系统状态
get_bazarr_wanted 缺少字幕
get_seerr_status 待处理的请求和统计数据
get_scoutarr_status Scoutarr实例连接和扫描配置
get_cleanuparr_status Cleanuparr应用程序状态和下载客户端运行状况
get_cleanuparr_events 最近的罢工、搬迁和重新搜查
get_space_saver_status 节省空间的扫描进度:搜索/剩余计数、大小、最大剩余项目

行动(18个工具)

工具 说明
lookup_sonarr_series 搜索要添加的新系列
add_sonarr_series 按TVDB ID添加系列
sonarr_search_missing 触发搜索缺失剧集
sonarr_remove_from_queue 删除卡住的队列项目
lookup_radarr_movies 搜索要添加的新电影
add_radarr_movie 按TMDB ID添加电影
radarr_search_missing 触发搜索丢失的电影
radarr_remove_from_queue 删除卡住的队列项目
send_arr_command 向Sonarr/Radarr/Redarr发送命令(例如RefreshSeries、CheckHealth)
run_scoutarr_sweep 触发Scoutarr扫描运行(所有实例,块~4-5分钟)
sabnzbd_pause_resume 暂停或恢复SABnzbd
sabnzbd_delete_job 删除下载作业
sabnzbd_retry_failed 重试失败的下载
qbittorrent_pause_torrents 暂停种子
qbittorrent_resume_torrents 恢复种子
qbittorrent_delete_torrents 删除种子
seerr_approve_request 批准媒体请求
seerr_decline_request 拒绝媒体请求

Claude桌面集成

添加到您的Claude桌面配置(~/Library/Application Support/Claude/claude_desktop_config.json):

直接(stdio,同一台机器)

{
  "mcpServers": {
    "mediastack": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "NAS_HOST=192.168.1.100",
        "-e", "SONARR_API_KEY=your_key",
        "ghcr.io/aderaaij/mcp-mediastack:latest"
      ]
    }
  }
}

远程(SSE通过mcp远程)

如果服务器在具有SSE传输的远程主机上运行:

{
  "mcpServers": {
    "mediastack": {
      "command": "npx",
      "args": ["mcp-remote", "http://your-server:8888/sse"]
    }
  }
}

已知问答

  • httpx参数:永远不要通过 params={} (空字典)到httpx——它从URL中删除查询参数 params 当非空时。
  • Seerr标题:Seerr请求不直接包含标题。服务器使用媒体的TMDB ID通过TMDB查找来解析它们。
  • qBittorrent身份验证:使用基于会话的cookie验证,而不是API密钥。服务器自动处理登录。

发展

# Install dependencies
uv sync

# Run locally (stdio mode)
python -m mcp_mediastack

# Run locally (SSE mode)
MCP_TRANSPORT=sse python -m mcp_mediastack

许可证

麻省理工学院