plex-director-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SSH_USER | No | SSH username used to connect to remote Ubuntu hosts. Optional. | |
| BACKUP_DIR | Yes | Directory path used for cluster backup operations (e.g. ./backups). | |
| RADARR_URL | Yes | Base URL of your Radarr instance (e.g. http://radarr:7878) | |
| SONARR_URL | No | Base URL of your Sonarr instance (e.g. http://sonarr:8989). Optional. | |
| SABNZBD_URL | Yes | Base URL of your SABnzbd instance (e.g. http://sabnzbd:8080) | |
| PROWLARR_URL | Yes | Base URL of your Prowlarr instance (e.g. http://prowlarr:9696) | |
| SSH_KEY_PATH | No | Path to the SSH private key file (e.g. /path/to/id_ed25519). Optional. | |
| TAUTULLI_URL | Yes | Base URL of your Tautulli instance (e.g. http://tautulli:8181) | |
| TMDB_API_KEY | Yes | API key for The Movie Database (TMDb) | |
| UBUNTU_HOSTS | No | Comma-separated list of remote Ubuntu hosts to monitor, e.g. '192.168.1.10,192.168.1.11'. Optional. | |
| RADARR_API_KEY | Yes | API key for Radarr | |
| SONARR_API_KEY | No | API key for Sonarr. Optional. | |
| QBITTORRENT_URL | No | Base URL of your qBittorrent instance (e.g. http://qbittorrent:8080). Optional. | |
| SABNZBD_API_KEY | Yes | API key for SABnzbd | |
| PROWLARR_API_KEY | Yes | API key for Prowlarr | |
| QBITTORRENT_PASS | No | Password for qBittorrent. Optional. | |
| QBITTORRENT_USER | No | Username for qBittorrent. Optional. | |
| TAUTULLI_API_KEY | Yes | API key for Tautulli | |
| DISCORD_WEBHOOK_URL | No | Discord webhook URL for notifications. Optional. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_movie_statusA | Checks if a specific movie exists in the Radarr library on the Ubuntu cluster and returns its monitoring status with artwork. |
| diagnose_missing_mediaA | Traces a movie through Radarr metadata, history, and active download client queues to pinpoint why it is missing. |
| search_plex_libraryA | Searches the movies actually in the user's Plex library (across all movie libraries, including 4K) by genre, actor, title, release year, and/or library. Filters can be combined, e.g. genre 'Horror' with year 1982, or genre 'Horror' with library '4k'. Use this to answer what the user owns or can watch; use check_movie_status for Radarr/download status of one specific movie. Always express a narrowing the user asks for (4K, a genre, a year...) as a filter here rather than filtering results yourself, because the results table shown to the user contains exactly the rows this returns. The default limit is small: when the user wants everything ('all', 'every', 'list them'), pass limit 500; if the reply says more matches remain, call again with the offset it gives. |
| resolve_actor_filmographyA | Resolves an actor's name to their official TMDb filmography, filtering out talk shows, self-appearances, and uncredited roles. When Plex is configured, marks which of those movies the user already has in their Plex library and which they don't. Use this to answer which of an actor's movies the user is missing. |
| get_plex_activityA | Fetches real-time playback streaming analytics from Plex via Tautulli to monitor user context and transcoding strain. |
| get_library_analyticsA | Queries historical statistics regarding most watched movies, total user count, and overall watch metrics. |
| get_background_jobsA | Retrieves active, pending, or completed persistent media processing jobs running on the server cluster. |
| update_job_statusA | Updates the operational state of an active or pending background batch job. |
| plan_media_upgradeB | Evaluates and safely schedules a controlled batch upgrade for specified media classes while enforcing storage policies. |
| execute_next_job_stepA | Processes a single sequential block item from an active background batch queue entry to prevent API flooding. (Jobs that have been started are also advanced automatically, one item per minute, by the job runner.) |
| check_indexer_healthA | Audits all Usenet indexers and torrent trackers configured in Prowlarr to flag connection failures or bans, and reports Prowlarr's own system health warnings. |
| search_and_select_moviesA | Searches TMDb for matching movies and renders a structured Markdown multi-choice grid interface for confirmation. |
| confirm_selected_choicesA | Adds the user's numbered choices from the last search_and_select_movies grid to Radarr as monitored movies and starts a download search for each. Movies already in Radarr are reported, not added twice. Uses the quality profile you name, otherwise the default set on the Settings page, otherwise Radarr's first quality profile; and Radarr's first root folder unless told otherwise. |
| run_cluster_backupA | Asks each configured Servarr app (Radarr, Sonarr, Prowlarr) to create its built-in database backup, waits for each to finish, and confirms a new backup file appeared, reporting the file's name, size and time. The backups stay in each app's own backup folder; nothing is copied. |
| manage_stalled_downloadsA | Scans qBittorrent download queues to isolate, pause, or blocklist items stuck below threshold download speeds. |
| get_cluster_infrastructure_healthA | Collects real-time CPU utilization, RAM usage, and active Docker container counts across all configured Ubuntu hosts. |
| get_cluster_hardware_analyticsA | Fetches real-time CPU load and memory allocation for every configured cluster host over SSH, as a Markdown table. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 17 tools
Most tools have distinct resource/action pairings, but get_cluster_hardware_analytics and get_cluster_infrastructure_health overlap heavily on CPU/RAM reporting, and the two search tools require careful reading to distinguish local Plex search from TMDb selection. Descriptions largely clarify the boundaries, so the issue is present but not severe.
All tool names follow a clean snake_case verb_first pattern, with information retrieval consistently using get/check and actions using purpose-specific verbs like manage, resolve, confirm, and plan. There is no mixing of casing styles or chaotic verb usage.
At 17 tools, the set sits in the borderline heavy range, though the breadth of subsystems covered—Plex, Tautulli, Radarr, Prowlarr, qBittorrent, and cluster infrastructure—partly justifies the count. Several overlapping health/analytics tools could be consolidated to make the surface feel tighter.
The core movie workflow is well covered: discover candidates via TMDb, confirm them into Radarr, check their status, diagnose missing media, and plan upgrades. Minor gaps exist, such as no direct remove/delete flow and no Sonarr/TV management, but they do not break the apparent movie-centric scope.