mcp-plex
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PLEX_TOKEN | Yes | Your Plex authentication token | |
| PLEX_SERVER_URL | Yes | URL of your Plex Media Server (e.g., http://your-plex-server:32400) |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_server_versionA | Return the installed version of the mcp-plex-server package. |
| search_mediaA | Search for media across all Plex libraries. Searches movies, shows, music, and other media by title. Optional media_type filter: "movie", "show", "episode", "artist", "album", "track". Returns titles, years, ratings, and rating keys for further lookup. |
| get_recently_addedC | Get recently added media from Plex. Returns the most recently added items across all libraries, or filtered to a specific library by name (e.g. "Movies", "TV Shows"). |
| get_on_deckB | Get the "On Deck" continue-watching list from Plex. Returns items that are partially watched or next episodes in a series. |
| get_librariesA | List all library sections on the Plex server. Returns library names, types (movie, show, artist), item counts, and last updated timestamps. |
| get_library_contentsA | Browse the contents of a specific Plex library. library_name must match exactly (e.g. "Movies", "TV Shows"). Use get_libraries to see available names. Sort options: "titleSort" (default), "addedAt:desc", "year:desc", "rating:desc", "audienceRating:desc". |
| get_media_detailsA | Get detailed information about a specific media item. Use the rating_key from search or browse results. Returns full details including summary, genres, cast, directors, and ratings. |
| get_library_statsA | Get statistics for Plex libraries. Without library_name: returns item counts for all libraries. With library_name: returns detailed stats for that library. |
| get_seasonsA | Get the seasons of a TV show. Provide the rating_key of a show (from search or browse). Returns season numbers, episode counts, and rating keys. |
| get_episodesA | Get episodes for a TV show or season. Provide the rating_key of a show. Optionally filter by season_number (0 = all seasons). Returns episode titles, numbers, and durations. |
| get_collectionsA | List collections in a Plex library. Returns collection names, types (smart/regular), item counts, and rating keys. Use get_collection_items to see the contents. |
| get_collection_itemsB | Get the items in a Plex collection with full collection details. Provide the rating_key of a collection. Returns collection metadata (title, smart, mode, sort, labels) and the media items it contains. |
| create_collectionA | Create a new regular collection in a Plex library. library_name: exact library name (e.g. "Movies"). title: name for the collection. rating_keys: list of rating keys for items to include. |
| create_smart_collectionA | Create a smart (filter-based) collection that auto-updates. library_name: exact library name (e.g. "Movies"). title: name for the collection. filters: dict of field/value pairs with optional operators. Operators are appended to the key: ">>" = greater than, "<<" = less than, "!" = not. Examples: {"genre": "Action"} -- genre is Action {"year>>": 2000} -- year greater than 2000 {"genre!": "Horror"} -- genre is not Horror {"genre": "Action", "year>>": 2000} -- both conditions Common fields: genre, year, decade, rating, audienceRating, contentRating, resolution, studio, label, director, actor. libtype: content type to filter (required for show libraries). "movie", "show", "episode", "season", "artist", "album", "track". sort: sort order (e.g. "titleSort", "year:desc", "rating:desc"). limit: max items (0 = unlimited). |
| edit_collectionB | Edit a collection's metadata. rating_key: the collection's rating key. title: new title (empty = no change). summary: new summary (None = no change, empty string = clear). sort_order: "release", "alpha", or "custom" (empty = no change). mode: "default", "hide", "hideItems", or "showItems" (empty = no change). |
| add_to_collectionA | Add items to a regular (non-smart) collection. rating_key: the collection's rating key. item_rating_keys: list of rating keys for items to add. |
| remove_from_collectionA | Remove items from a regular (non-smart) collection. rating_key: the collection's rating key. item_rating_keys: list of rating keys for items to remove. |
| delete_collectionB | Delete a collection from the Plex library. This permanently removes the collection. The media items themselves are not affected. |
| mark_watchedB | Mark a media item as fully watched. Works on movies, episodes, and tracks. |
| mark_unwatchedC | Mark a media item as unwatched, resetting its watch progress. Works on movies, episodes, and tracks. |
| remove_from_continue_watchingA | Remove a partially-watched item from the Continue Watching / On Deck list. Only works on movies and episodes. Does not change the item's watched/unwatched state. |
| set_playback_progressA | Set the playback progress for a media item to a specific position. rating_key: the item's rating key. progress_ms: position in milliseconds (must be > 0). To reset progress to zero, use mark_unwatched instead. |
| get_playlistsA | List all playlists on the Plex server. Returns playlist names, types, item counts, and durations. |
| get_playlist_itemsC | Get the items in a Plex playlist. Provide the rating_key of a playlist. Returns the media items contained in the playlist. |
| scan_libraryB | Trigger a library scan on the Plex server. This refreshes the library to pick up new or changed media files. The scan runs in the background on the server. |
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/obrien-matthew/mcp-plex'
If you have feedback or need assistance with the MCP directory API, please join our Discord server