mcp媒体堆栈
支持服务列表
- 索纳尔 -电视剧管理
- 拉达尔 -电影管理
- SABnzbd -Usenet下载器
- qBittorrent -Torrent客户端
- Prowlarr -索引器管理
- Readarr -图书管理
- 巴扎 -字幕管理
- 塞尔 -媒体请求
- 胶屯 -VPN状态监控
快速开始
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:latestDocker 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端口 |
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禁用 ENABLED_SERVICES:用明确的白名单覆盖自动检测(例如。ENABLED_SERVICES=sonarr,radarr)
工具
监控(28个工具)
| 工具 | 说明 |
|---|---|
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 | 待处理的请求和统计数据 |
行动(17个工具)
| 工具 | 说明 |
|---|---|
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) |
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许可证
麻省理工学院
