Self-hosted media server with AI-powered management via MCP
npx create-mediaboxOne command. Answer a few questions. The CLI sets up the full stack automatically — Docker containers, API keys, service connections, media libraries, everything.
Supports Local (home network), VPS (with Caddy and automatic HTTPS), and Cloudflare Tunnel (public access from home without opening ports) deployments.
Requires Docker, Docker Compose, and Node.js >= 20. Use
--local-buildto build images from source instead of pulling from registry.
Internet
│
┌────────────┼────────────┐
│ Reverse Proxy │
│ (Caddy / nginx / etc) │
│ :80 / :443 (HTTPS) │
└────────────┬────────────┘
│ mediabox-net
┌──────────────────────────┼──────────────────────────────┐
│ ▼ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Your AI Client │ │
│ │ (Claude / Telegram Bot / Any MCP Client) │ │
│ └──────────────────┬───────────────────────────────┘ │
│ │ MCP Protocol (Streamable HTTP) │
│ ▼ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ MCP Server (:3000) │ │
│ │ 25 tools · OAuth2 · Express · TypeScript │ │
│ └──┬──────────┬──────────┬──────────┬──────────┬───┘ │
│ ▼ ▼ ▼ ▼ ▼ │
│ Jellyfin Sonarr Radarr qBittorrent PyLoad │
│ :8096 :8989 :7878 :8085 :8000 │
│ │ │ │ │ │
│ │ Prowlarr ◄───┘ │ │
│ │ :9696 │ │
│ │ │ │ │
│ │ FlareSolverr │ │
│ │ :8191 │ │
│ ▼ ▼ │
│ ┌──────────────────────────────────────────────────┐ │
│ │ Shared Media Volume │ │
│ │ /data/movies · /data/tv · /data/anime │ │
│ └──────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
Local mode: ports exposed directly
VPS mode: ports bound to 127.0.0.1 + Caddy reverse proxy
Tunnel mode: ports bound to 127.0.0.1 + Cloudflare Tunnel
| Category | Tools | Description |
|---|---|---|
| Jellyfin | server_status activity_log search_media show_details |
Library browsing, monitoring, playback history |
| Library | manage_library manage_files rename_episodes fix_subtitles |
File ops, subtitle conversion, batch renaming |
| Sonarr | series_search series_status series_remove series_releases series_grab |
TV/anime management with auto ID resolution |
| Radarr | movie_search movie_status movie_remove movie_releases movie_grab |
Movie management with duplicate prevention |
| Downloads | download_add download_direct download_status cancel_downloads |
Direct URLs, PyLoad, queue management, orphan cleanup |
| Maintenance | optimize_media cleanup_server check_jobs |
Strip tracks, clean server, monitor jobs |
The create-mediabox CLI replaces ~15 manual setup steps with a single interactive wizard:
- Asks for your preferences — deployment mode (Local/VPS/Tunnel), media paths, passwords, timezone, optional Telegram bot
- Generates
.env,docker-compose.yml,Caddyfile(VPS), and pre-configures qBittorrent - Starts all Docker containers and waits for each service to be ready
- Auto-configures the entire stack via service APIs:
- Extracts Sonarr/Radarr/Prowlarr API keys
- Runs Jellyfin setup wizard, creates admin user and API key
- Configures qBittorrent as download client in Sonarr/Radarr
- Adds root folders and syncs Prowlarr indexers
- Sets up FlareSolverr proxy and Jellyfin media libraries
- Sets web UI credentials across all services
After setup, the only manual step is adding your torrent indexers in Prowlarr.
