使用说明
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
许可证
麻省理工学院