PlexMCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| arr_stackA | Query Radarr, Sonarr, and Lidarr HTTP APIs for media stack health. PORTMANTEAU PATTERN RATIONALE: Consolidates 3 synchronization services into a single tool to match established industry patterns for managing "the stack" as a unified metadata pipeline. Return Format{"success": bool, "data": dict, "message": str} Examplesawait arr_stack(operation="status") |
| plex_audio_mgrA | Comprehensive audio management operations for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates 7 audio-focused control operations into a single interface to minimize latency during real-time playback adjustments and stream switching. Return Format{"success": bool, "data": dict, "message": str} Examplesawait plex_audio_mgr(operation="list_streams", media_key="12345") await plex_audio_mgr(operation="set_volume", client_id="client-abc", volume=75) |
| plex_collectionsA | Comprehensive collections management tool for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates 7 collection-related operations into a single tool to facilitate the thematic grouping and organization of cross-library media. Return Format{"success": bool, "data": dict, "message": str} Examplesawait plex_collections(operation="list") await plex_collections(operation="create", title="My Collection", library_id="lib1") |
| plex_media_enrichmentB | High-value media enrichment using external sources (Wikipedia, TMDB, TVDB). This tool adds 'Informed Discovery' capabilities to PlexMCP by fetching contextual metadata that Plex does not natively provide. PORTMANTEAU PATTERN RATIONALE: Consolidates external metadata discovery into a single enrichment interface. Return Format{"success": bool, "data": str, "message": str} Examplesawait plex_media_enrichment(operation="enrich_item", title="Inception", year=2010) |
| plex_ffmpeg_mgrA | Industrial-grade FFmpeg management tool for Plex media. PORTMANTEAU PATTERN RATIONALE: Consolidates low-level media repair and inspection tasks that require system-level FFmpeg binaries. This avoids tool explosion while providing powerful repair capabilities for broken rips or sync-drifted media. OPERATIONS:
Return Format{"success": bool, "data": dict, "message": str} Examplesawait plex_ffmpeg_mgr(operation="probe", media_key="12345") await plex_ffmpeg_mgr(operation="sync_audio", media_key="12345", offset_seconds=-1.5) await plex_ffmpeg_mgr(operation="extract_clip", media_key="12345", start_seconds=30, duration_seconds=10) await plex_ffmpeg_mgr(operation="extract_audio", media_key="12345", start_seconds=60, duration_seconds=15) |
| plex_helpA | Comprehensive help and discovery tool for PlexMCP. PORTMANTEAU PATTERN RATIONALE: Consolidates 4 discovery operations into a single tool to facilitate autonomous exploration of available capabilities without requiring external documentation. OPERATIONS:
Return Format{"success": bool, "operation": str, "tools": list | None, "help": str | None, "error": str | None} Examplesawait plex_help(operation="help") await plex_help(operation="list_tools") await plex_help(operation="tool_info", tool_name="plex_library") await plex_help(operation="api_docs") |
| plex_integrationB | Comprehensive third-party integration operations for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates 6 external API integrations into a single tool to provide unified access to regional recommendations and niche metadata providers. Return Format{"success": bool, "operation": str, "data": list|dict, "count": int|None, "error": str|None} Examplesawait plex_integration(operation="list_integrations") await plex_integration(operation="vienna_recommendations", content_type="movie", limit=5) await plex_integration(operation="anime_season_info", year=2024, season="spring") await plex_integration(operation="configure", integration_name="vienna", config={"api_key": "..."}) |
| plex_libraryA | Comprehensive library management operations for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates 12+ library-related operations into a single tool to prevent tool explosion. Simplifies library lifecycle management (CRUD, scan, optimize) for agents. OPERATIONS:
Return Format{"success": bool, "data": dict|list, "operation": str, "count": int} Examplesawait plex_library(operation="list") await plex_library(operation="get", library_id="1") await plex_library(operation="scan", library_id="1", force=True) await plex_library(operation="list_items", library_id="1", sort="title", media_type="movie") |
| plex_mediaA | Comprehensive media management operations for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates media browsing, advanced searching, and metadata updates into a single tool. Optimizes for discovery and detail retrieval across all library types. OPERATIONS:
Return Format{"success": bool, "data": dict|list, "operation": str, "count": int} Examplesawait plex_media(operation="browse", library_id="1") await plex_media(operation="search", query="inception") await plex_media(operation="get_details", media_key="12345") |
| plex_metadataA | Comprehensive metadata management operations for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates 7 metadata lifecycle operations into a single tool to ensure consistent identifier handling and improved discovery of library maintenance tasks. Return Format{"success": bool, "operation": str, "data": dict|list, "item_id": str|None, "library_id": str|None} Examplesawait plex_metadata(operation="refresh", library_id="1", force=True) await plex_metadata(operation="refresh_all") await plex_metadata(operation="update", item_id="123", metadata={"title": "New Title"}) await plex_metadata(operation="analyze", library_id="1") |
| plex_organizationB | Comprehensive library organization and maintenance operations for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates 5 library structural maintenance and database optimization tasks into one tool to streamline the archival and cleanup workflows. Return Format{"success": bool, "operation": str, "data": dict|list, "library_id": str|None} Examplesawait plex_organization(operation="organize", library_id="1", dry_run=True) await plex_organization(operation="analyze", library_id="1") await plex_organization(operation="clean_bundles", library_id="1", threshold_days=30) await plex_organization(operation="optimize_database", vacuum=True, reindex=True) |
| plex_performanceA | Comprehensive performance, quality, and server status operations for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates transcoding settings, bandwidth monitoring, and server health into a single tool. OPERATIONS:
Return Format{"success": bool, "operation": str, "data": dict | list, "error": str | None} Examplesawait plex_performance(operation="get_server_status") await plex_performance(operation="set_quality", profile_name="Remote", quality="1080p") await plex_performance(operation="list_profiles") |
| plex_playlistA | Comprehensive playlist management operations for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates 8 playlist lifecycle operations into a single tool to provide a unified interface for curation and collaborative list management. Return Format{"success": bool, "operation": str, "data": dict|list, "playlist_id": str|None, "count": int|None} Examplesawait plex_playlist(operation="list") await plex_playlist(operation="get", playlist_id="123") await plex_playlist(operation="create", title="My Mix", items=["item1", "item2"]) await plex_playlist(operation="delete", playlist_id="123") await plex_playlist(operation="add_items", playlist_id="123", items=["item3"]) |
| plex_qualityA | Comprehensive quality profile management tool for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates 6 quality profile operations into a single tool to standardize transcoding rules and resolution limits across multiple devices. Return Format{"success": bool, "operation": str, "profile_name": str|None, "profiles": list|None, "settings": dict|None, "result": dict|None} Examplesawait plex_quality(operation="list_profiles") await plex_quality(operation="get_profile", profile_name="Remote") await plex_quality(operation="create_profile", profile_name="4K Limited", settings={"max_bitrate": 40000}) await plex_quality(operation="delete_profile", profile_name="Old Profile") |
| plex_searchA | Comprehensive search management tool for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates 5 search modalities (text, advanced, suggest, history, persistence) into one tool to provide a unified discovery interface for all media types. OPERATIONS:
Return Format{"success": bool, "data": dict|list, "operation": str, "count": int} Examplesawait plex_search(operation="search", query="star wars") await plex_search(operation="advanced_search", genre="comedy", year=2020) await plex_search(operation="suggest", query="incept") |
| plex_ragA | RAG integration for Plex Media. Semantic search and metadata enrichment. PORTMANTEAU PATTERN RATIONALE: Consolidates neural search, metadata vectorization, and external high-value discovery into a single tool to manage the knowledge lifecycle. OPERATIONS:
Return Format{"success": bool, "operation": str, "data": dict | list, "count": int | None, "error": str | None} Examplesawait plex_rag(operation="semantic_search", query="time travel paradox") await plex_rag(operation="sync_metadata", enrich=True) await plex_rag(operation="status") |
| plex_reportingA | Comprehensive reporting and analytics tool for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates 6 reporting and server diagnostic operations into a single tool to provide a systematic overview of library growth and server health. Return FormatToolResult with content dict: {"success": bool, "operation": str, "stats"/"reports"/"server_status": ...} Examplesawait plex_reporting(operation="library_stats") await plex_reporting(operation="performance_report") await plex_reporting(operation="library_stats", library_id="1") |
| plex_serverA | Comprehensive server management operations for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates server lifecycle and maintenance operations into a single tool to prevent tool explosion and improve discoverability of admin-level tasks. OPERATIONS:
Return Format{"success": bool, "data": dict|list, "operation": str} Examplesawait plex_server(operation="status") await plex_server(operation="info") await plex_server(operation="maintenance", maintenance_operation="clean_bundles") |
| plex_streamingA | Comprehensive playback control and session management operations for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates session monitoring, client discovery, and remote playback control into a single tool. OPERATIONS:
Return Format{"success": bool, "operation": str, "data": dict, "count": int | None, "error": str | None} Examplesawait plex_streaming(operation="list_sessions") await plex_streaming(operation="play", client_id="abc123", media_key="12345") await plex_streaming(operation="seek", client_id="abc123", seek_to=60000) |
| plex_userB | Comprehensive user management operations for Plex Media Server. PORTMANTEAU PATTERN RATIONALE: Consolidates 6 user and access control operations into a single interface to ensure consistent security policy enforcement across shared libraries. Return FormatToolResult with content dict: {"success": bool, "operation": str, "data": {...}} Examplesawait plex_user(operation="list") await plex_user(operation="get", user_id="123") await plex_user(operation="create", username="newuser", email="user@example.com", password="secret1234") |
| agentic_plex_workflowA | Multi-step Plex workflows via FastMCP sampling with tool execution (SEP-1577). The model chooses plex_* tool calls; the server runs them and feeds results back until the model returns a final text answer or max_iterations is reached. Return FormatToolResult with content: {"success": bool, "result": {"final_output": str, "iterations": int, "executed_tools": list}} Examplesawait agentic_plex_workflow(workflow_prompt="Show me my movie libraries", available_tools=["plex_library"]) |
| plex_natural_assistantA | Single-turn natural-language help about Plex (sampling, no tool execution). Uses the configured sampling endpoint (Ollama / client). For actions that change server state or need live data, use portmanteau tools or agentic_plex_workflow. Return FormatToolResult with content: {"success": bool, "result": {"reply": str, "detail_level": str}} Examplesawait plex_natural_assistant(user_query="What is Plex Transcoding?") await plex_natural_assistant(user_query="How do I optimize my library?", detail_level="detailed") |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| plex_media_guide | Guide for Plex media search and RAG. Use for agentic workflows. |
| prompt://plex/rag-workflow | Instructions for metadata sync and semantic query. |
| prompt://plex/agentic-pattern | How to invoke agentic_plex_workflow safely. |
| prompt://plex/library-tour | Walkthrough for listing and browsing libraries. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| plex_capabilities_resource | Discover tools, sampling, RAG, and agentic entrypoints. |
| plex_skills_resource | Expert personas and workflows (skills reference for LLMs). |
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/sandraschi/plexmcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server