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 server (e.g., http://your-plex-server:32400) | |
| PLEX_TOKEN | No | Your Plex authentication token (optional, can use OAuth instead). Get your token from https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/ | |
| MCP_HTTP_DEBUG | No | Enable comprehensive HTTP request/response logging for troubleshooting connection issues | false |
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 | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_plexC | Search for movies, TV shows, and other content in Plex libraries |
| browse_librariesA | List all available Plex libraries (Movies, TV Shows, Music, etc.) |
| browse_libraryB | Browse content within a specific Plex library with filtering and sorting options |
| get_recently_addedC | Get recently added content from Plex libraries |
| get_watch_historyC | Get playback history for the Plex server |
| get_on_deckB | Get 'On Deck' items (continue watching) for users |
| list_playlistsB | List all playlists on the Plex server |
| browse_playlistB | Browse and view the contents of a specific playlist with full track metadata |
| create_playlistA | Create a new regular playlist on the Plex server. Requires an initial item (item_key parameter) to be created successfully. Smart playlists are not supported due to their complex filter requirements. |
| add_to_playlistB | Add items to an existing playlist |
| delete_playlistB | Delete an existing playlist |
| get_watched_statusC | Check watch status and progress for specific content items |
| get_collectionsB | List all collections available on the Plex server |
| browse_collectionC | Browse content within a specific collection |
| get_media_infoA | Get detailed technical information about media files (codecs, bitrates, file sizes, etc.) |
| get_library_statsA | Get comprehensive statistics about Plex libraries (storage usage, file counts, content breakdown, etc.) |
| get_listening_statsA | Get detailed listening statistics and music recommendations based on play history and patterns |
| discover_musicB | Natural language music discovery with smart recommendations based on your preferences and library |
| authenticate_plexA | Initiate Plex OAuth authentication flow to get user login URL |
| check_auth_statusB | Check if Plex authentication is complete and retrieve the auth token |
| clear_authB | Clear stored authentication credentials |
| validate_llm_responseB | Validate LLM response format and content against expected schemas for different prompt types |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| playlist_description | Generate a creative description for a playlist |
| content_recommendation | Generate content recommendations based on viewing history or preferences |
| smart_playlist_rules | Generate smart playlist criteria and rules |
| media_analysis | Analyze and categorize media content |
| server_troubleshooting | Help diagnose Plex server connection or performance issues |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Connection Status | Current Plex server connection status |
TDQS
Scored across 22 tools
Most tools have clearly distinct purposes, such as playlist management vs library browsing vs authentication. However, there is minor potential overlap between browse_libraries and browse_library, and between browse_collection and get_collections, but descriptions help disambiguate.
Tool names mostly follow a verb_noun pattern, but there are inconsistencies: browse_libraries vs browse_library (plural vs singular), some use 'get' and others 'browse' for similar operations, and validate_llm_response uses a different verb.
22 tools is on the higher side but reasonable for a comprehensive Plex media server covering authentication, browsing, playlists, collections, stats, and search. Slightly over the ideal range but still well-scoped.
The tool set covers many common Plex operations but misses some expected ones like updating playlists, marking media as watched, or editing media info. The presence of validate_llm_response seems out of place.