Plex MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLEX_URL | Yes | The URL of your Plex Media Server (e.g., http://localhost:32400) | http://localhost:32400 |
| PLEX_TOKEN | Yes | Your Plex authentication token | |
| RADARR_URL | No | The URL of your Radarr instance (e.g., http://localhost:7878) | http://localhost:7878 |
| SONARR_URL | No | The URL of your Sonarr instance (e.g., http://localhost:8989) | http://localhost:8989 |
| RADARR_API_KEY | No | API Key for Radarr (optional at startup, required for Radarr tools) | |
| SONARR_API_KEY | No | API Key for Sonarr (optional at startup, required for Sonarr tools) | |
| TRAKT_CLIENT_ID | No | Your Trakt.tv API Client ID | |
| TRAKT_CLIENT_SECRET | No | Your Trakt.tv API Client Secret |
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 | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_librariesA | Get all Plex libraries |
| get_library_itemsA | List items in a library with pagination (useful for large libraries) |
| export_libraryA | Export a full library to a JSON file (within ./exports) |
| search_mediaC | Search for media in Plex libraries |
| get_recently_addedC | Get recently added media |
| get_on_deckA | Get on deck (continue watching) items |
| get_media_detailsA | Get detailed information about a specific media item |
| get_editable_fieldsB | Get editable fields and available tags for a media item |
| get_playlist_itemsB | Get items in a Plex playlist |
| get_playlistsA | Get all Plex playlists |
| get_watchlistA | Get the user's Plex watchlist |
| get_recently_watchedB | Get recently watched movies and shows |
| get_watch_historyB | Get detailed watch history with session information |
| get_active_sessionsA | Get currently active Plex streams — who is watching what right now, including player state, session location, transcode decisions and media quality |
| get_fully_watchedA | Get all fully watched movies and shows from a library |
| get_watch_statsB | Get comprehensive watch statistics (Tautulli-style analytics) |
| get_user_statsC | Get user-specific watch statistics |
| get_library_statsC | Get library-specific statistics |
| get_popular_contentB | Get most popular content by plays or duration |
| get_recommendationsA | Get personalized movie recommendations from your Plex library based on watch history. Analyzes genres, directors, and actors you've watched to score unwatched films. Supports per-user recommendations for multi-user Plex servers. If Trakt is configured, uses your rating profile to further refine scores. |
| update_metadataA | Update metadata fields for a media item (requires PLEX_ENABLE_MUTATIVE_OPS=true) |
| update_metadata_from_jsonA | Update metadata from a JSON payload (requires PLEX_ENABLE_MUTATIVE_OPS=true) |
| create_playlistA | Create a new Plex playlist (requires PLEX_ENABLE_MUTATIVE_OPS=true). For regular playlists, ratingKeys is required — Plex does not support creating empty playlists. For smart playlists, set smart=true and provide librarySectionId (and optionally libtype / smartFilter). |
| add_to_playlistA | Add a media item to a playlist (requires PLEX_ENABLE_MUTATIVE_OPS=true) |
| remove_from_playlistA | Remove an item from a playlist (requires PLEX_ENABLE_MUTATIVE_OPS=true) |
| clear_playlistA | Clear all items from a playlist (preview unless confirm=true; requires PLEX_ENABLE_MUTATIVE_OPS=true) |
| delete_playlistA | Delete a Plex playlist without deleting the underlying media (requires PLEX_ENABLE_MUTATIVE_OPS=true) |
| add_to_watchlistA | Add a local Plex movie or show to the account watchlist (requires PLEX_ENABLE_MUTATIVE_OPS=true) |
| remove_from_watchlistA | Remove a movie or show from the account watchlist by global Plex GUID or local rating key (requires PLEX_ENABLE_MUTATIVE_OPS=true) |
| rate_mediaA | Set the user's Plex rating for a media item (requires PLEX_ENABLE_MUTATIVE_OPS=true) |
| mark_watchedA | Mark a Plex media item as watched (requires PLEX_ENABLE_MUTATIVE_OPS=true) |
| mark_unwatchedA | Mark a Plex media item as unwatched (requires PLEX_ENABLE_MUTATIVE_OPS=true) |
| trakt_authenticateB | Start Trakt.tv OAuth authentication process |
| trakt_complete_authB | Complete Trakt.tv authentication with authorization code |
| trakt_get_auth_statusA | Check Trakt.tv authentication status |
| trakt_sync_to_traktA | Sync Plex watch history to Trakt.tv |
| trakt_sync_from_traktB | Get watch history from Trakt.tv for comparison |
| trakt_get_user_statsC | Get enhanced viewing statistics from Trakt.tv |
| trakt_start_scrobblingB | Enable real-time scrobbling to Trakt.tv |
| trakt_get_sync_statusB | Check status of ongoing sync operations |
| trakt_searchC | Search for movies and shows on Trakt.tv |
| sonarr_get_seriesA | List all series in Sonarr with optional title filter |
| sonarr_searchA | Search TheTVDB for new series to add to Sonarr |
| sonarr_add_seriesB | Add a new series to Sonarr by TVDB ID |
| sonarr_get_missingA | Get missing/wanted episodes from Sonarr |
| sonarr_get_queueA | Get the current Sonarr download queue |
| sonarr_get_calendarA | Get upcoming episodes from the Sonarr calendar |
| sonarr_get_profilesA | Get Sonarr quality profiles and root folders (needed before adding series) |
| sonarr_trigger_searchA | Trigger a search for missing episodes, optionally for a specific series |
| radarr_get_moviesA | List all movies in Radarr with optional title filter |
| radarr_searchA | Search TMDB for new movies to add to Radarr |
| radarr_add_movieB | Add a new movie to Radarr by TMDB ID |
| radarr_get_missingA | Get missing/wanted movies from Radarr |
| radarr_get_queueA | Get the current Radarr download queue |
| radarr_get_calendarB | Get upcoming movies from the Radarr calendar |
| radarr_get_profilesA | Get Radarr quality profiles and root folders (needed before adding movies) |
| radarr_trigger_searchB | Trigger a search for missing movies, optionally for a specific movie |
| arr_get_statusA | Check connection status of Sonarr and Radarr services |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/niavasha/plex-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server