1.1.7pypi · plex-mcp-server · current release
Observed 2026-08-17T23:16:42.309Z using mcpSecurity-inventory. Status: succeeded. Negotiated protocol: 2025-06-18.
{
"experimental": {},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"tools": {
"listChanged": false
}
}| Tool | Category | Annotations | Risk |
|---|---|---|---|
client_control_playbackControl playback on a specified client.
Args:
client_name: Name of the client to control (use machine identifier or title from client_list)
action: Action to perform (play, pause, stop, skipNext, skipPrevious,
stepForward, stepBack, seekTo, seekForward, seekBack, mute, unmute, setVolume)
parameter: Parameter for actions that require it (like setVolume or seekTo)
media_type: Type of media being controlled ('video', 'music', or 'photo')
Input schema{
"properties": {
"client_name": {
"title": "Client Name",
"type": "string"
},
"action": {
"title": "Action",
"type": "string"
},
"parameter": {
"default": null,
"title": "Parameter",
"type": "integer"
},
"media_type": {
"default": "video",
"title": "Media Type",
"type": "string"
}
},
"required": [
"client_name",
"action"
],
"title": "client_control_playbackArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "client_control_playbackOutput",
"type": "object"
} | — | — · — | — |
client_get_detailsGet detailed information about a specific Plex client.
Args:
client_name: Name or machineIdentifier of the client to get details for
Returns:
Dictionary containing client details
Input schema{
"properties": {
"client_name": {
"title": "Client Name",
"type": "string"
}
},
"required": [
"client_name"
],
"title": "client_get_detailsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "client_get_detailsOutput",
"type": "object"
} | — | — · — | — |
client_get_timelinesGet the current timeline information for a specific Plex client.
Args:
client_name: Name or machineIdentifier of the client to get timeline for
Returns:
Timeline information for the client
Input schema{
"properties": {
"client_name": {
"title": "Client Name",
"type": "string"
}
},
"required": [
"client_name"
],
"title": "client_get_timelinesArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "client_get_timelinesOutput",
"type": "object"
} | — | — · — | — |
client_listList all available Plex clients including idle players.
Uses myPlexAccount.resources() to discover all players (both active and idle),
not just those with active sessions.
Args:
include_details: Whether to include detailed information about each client
active_only: If True, only return clients that are currently playing or paused
Returns:
List of clients with user info. Use machineIdentifier for reliable client control.
Input schema{
"properties": {
"include_details": {
"default": true,
"title": "Include Details",
"type": "boolean"
},
"active_only": {
"default": false,
"title": "Active Only",
"type": "boolean"
}
},
"title": "client_listArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "client_listOutput",
"type": "object"
} | — | — · — | — |
client_navigateNavigate a Plex client interface.
Args:
client_name: Name or machineIdentifier of the client to navigate
action: Navigation action to perform (moveUp, moveDown, moveLeft, moveRight,
select, back, home, contextMenu)
Input schema{
"properties": {
"client_name": {
"title": "Client Name",
"type": "string"
},
"action": {
"title": "Action",
"type": "string"
}
},
"required": [
"client_name",
"action"
],
"title": "client_navigateArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "client_navigateOutput",
"type": "object"
} | — | — · — | — |
client_set_streamsSet audio, subtitle, or video streams for current playback on a client.
Args:
client_name: Name or machineIdentifier of the client to set streams for
audio_stream_id: ID of the audio stream to switch to
subtitle_stream_id: ID of the subtitle stream to switch to, use '0' to disable
video_stream_id: ID of the video stream to switch to
Input schema{
"properties": {
"client_name": {
"title": "Client Name",
"type": "string"
},
"audio_stream_id": {
"default": null,
"title": "Audio Stream Id",
"type": "string"
},
"subtitle_stream_id": {
"default": null,
"title": "Subtitle Stream Id",
"type": "string"
},
"video_stream_id": {
"default": null,
"title": "Video Stream Id",
"type": "string"
}
},
"required": [
"client_name"
],
"title": "client_set_streamsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "client_set_streamsOutput",
"type": "object"
} | — | — · — | — |
client_start_playbackStart playback of media on a specified client.
Args:
media_title: Title of the media to play (optional if rating_key is provided)
client_name: Optional name of the client to play on (will prompt if not provided)
offset: Optional time offset in milliseconds to start from
library_name: Optional name of the library to search in
use_external_player: Whether to use the client's external player
rating_key: Optional specific rating key (ID) of the media to play
Input schema{
"properties": {
"media_title": {
"default": null,
"title": "Media Title",
"type": "string"
},
"client_name": {
"default": null,
"title": "Client Name",
"type": "string"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
},
"use_external_player": {
"default": false,
"title": "Use External Player",
"type": "boolean"
},
"rating_key": {
"default": null,
"title": "Rating Key",
"type": "integer"
}
},
"title": "client_start_playbackArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "client_start_playbackOutput",
"type": "object"
} | — | — · — | — |
collection_add_toAdd items to an existing collection.
Args:
collection_title: Title of the collection to add to (optional if collection_id is provided)
collection_id: ID of the collection to add to (optional if collection_title is provided)
library_name: Name of the library containing the collection (required if using collection_title)
item_titles: List of media titles to add to the collection (optional if item_ids is provided)
item_ids: List of media IDs to add to the collection (optional if item_titles is provided)
Input schema{
"properties": {
"collection_title": {
"default": null,
"title": "Collection Title",
"type": "string"
},
"collection_id": {
"default": null,
"title": "Collection Id",
"type": "integer"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
},
"item_titles": {
"default": null,
"items": {
"type": "string"
},
"title": "Item Titles",
"type": "array"
},
"item_ids": {
"default": null,
"items": {
"type": "integer"
},
"title": "Item Ids",
"type": "array"
}
},
"title": "collection_add_toArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "collection_add_toOutput",
"type": "object"
} | — | — · — | — |
collection_createCreate a new collection with specified items.
Args:
collection_title: Title for the new collection
library_name: Name of the library to create the collection in
item_titles: List of media titles to include in the collection (optional if item_ids is provided)
item_ids: List of media IDs to include in the collection (optional if item_titles is provided)
Input schema{
"properties": {
"collection_title": {
"title": "Collection Title",
"type": "string"
},
"library_name": {
"title": "Library Name",
"type": "string"
},
"item_titles": {
"default": null,
"items": {
"type": "string"
},
"title": "Item Titles",
"type": "array"
},
"item_ids": {
"default": null,
"items": {
"type": "integer"
},
"title": "Item Ids",
"type": "array"
}
},
"required": [
"collection_title",
"library_name"
],
"title": "collection_createArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "collection_createOutput",
"type": "object"
} | — | — · — | — |
collection_deleteDelete a collection.
Args:
collection_title: Title of the collection to delete (optional if collection_id is provided)
collection_id: ID of the collection to delete (optional if collection_title is provided)
library_name: Name of the library containing the collection (required if using collection_title)
Input schema{
"properties": {
"collection_title": {
"default": null,
"title": "Collection Title",
"type": "string"
},
"collection_id": {
"default": null,
"title": "Collection Id",
"type": "integer"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
}
},
"title": "collection_deleteArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "collection_deleteOutput",
"type": "object"
} | — | — · — | — |
collection_editComprehensively edit a collection's attributes.
Args:
collection_title: Title of the collection to edit (optional if collection_id is provided)
collection_id: ID of the collection to edit (optional if collection_title is provided)
library_name: Name of the library containing the collection (required if using collection_title)
new_title: New title for the collection
new_sort_title: New sort title for the collection
new_summary: New summary/description for the collection
new_content_rating: New content rating (e.g., PG-13, R, etc.)
new_labels: Set completely new labels (replaces existing)
add_labels: Labels to add to existing ones
remove_labels: Labels to remove from existing ones
poster_path: Path to a new poster image file
poster_url: URL to a new poster image
background_path: Path to a new background/art image file
background_url: URL to a new background/art image
new_advanced_settings: Dictionary of advanced settings to apply
Input schema{
"properties": {
"collection_title": {
"default": null,
"title": "Collection Title",
"type": "string"
},
"collection_id": {
"default": null,
"title": "Collection Id",
"type": "integer"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
},
"new_title": {
"default": null,
"title": "New Title",
"type": "string"
},
"new_sort_title": {
"default": null,
"title": "New Sort Title",
"type": "string"
},
"new_summary": {
"default": null,
"title": "New Summary",
"type": "string"
},
"new_content_rating": {
"default": null,
"title": "New Content Rating",
"type": "string"
},
"new_labels": {
"default": null,
"items": {
"type": "string"
},
"title": "New Labels",
"type": "array"
},
"add_labels": {
"default": null,
"items": {
"type": "string"
},
"title": "Add Labels",
"type": "array"
},
"remove_labels": {
"default": null,
"items": {
"type": "string"
},
"title": "Remove Labels",
"type": "array"
},
"poster_path": {
"default": null,
"title": "Poster Path",
"type": "string"
},
"poster_url": {
"default": null,
"title": "Poster Url",
"type": "string"
},
"background_path": {
"default": null,
"title": "Background Path",
"type": "string"
},
"background_url": {
"default": null,
"title": "Background Url",
"type": "string"
},
"new_advanced_settings": {
"additionalProperties": true,
"default": null,
"title": "New Advanced Settings",
"type": "object"
}
},
"title": "collection_editArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "collection_editOutput",
"type": "object"
} | — | — · — | — |
collection_listList all collections on the Plex server or in a specific library.
Args:
library_name: Optional name of the library to list collections from
Input schema{
"properties": {
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
}
},
"title": "collection_listArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "collection_listOutput",
"type": "object"
} | — | — · — | — |
collection_remove_fromRemove items from a collection.
Args:
collection_title: Title of the collection to remove from (optional if collection_id is provided)
collection_id: ID of the collection to remove from (optional if collection_title is provided)
library_name: Name of the library containing the collection (required if using collection_title)
item_titles: List of media titles to remove from the collection
Input schema{
"properties": {
"collection_title": {
"default": null,
"title": "Collection Title",
"type": "string"
},
"collection_id": {
"default": null,
"title": "Collection Id",
"type": "integer"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
},
"item_titles": {
"default": null,
"items": {
"type": "string"
},
"title": "Item Titles",
"type": "array"
}
},
"title": "collection_remove_fromArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "collection_remove_fromOutput",
"type": "object"
} | — | — · — | — |
library_get_contentsGet the filtered and paginated contents of a specific library.
Args:
library_name: Name of the library to get contents from
unwatched: If True, only return unwatched items
watched: If True, only return watched items
sort: Sort order (e.g., 'addedAt:desc', 'title:asc')
offset: Number of items to skip (default: 0)
limit: Maximum number of items to return (default: 50)
genre: Filter by genre tag
year: Filter by release year
content_rating: Filter by content rating (e.g., 'PG-13')
director: Filter by director tag
actor: Filter by actor tag
writer: Filter by writer tag
resolution: Filter by resolution (e.g., '4k', '1080')
network: Filter by network tag (primarily for TV)
studio: Filter by studio tag
Returns:
JSON string listing items in the library with pagination metadata
Input schema{
"properties": {
"library_name": {
"title": "Library Name",
"type": "string"
},
"unwatched": {
"default": false,
"title": "Unwatched",
"type": "boolean"
},
"watched": {
"default": false,
"title": "Watched",
"type": "boolean"
},
"sort": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Sort"
},
"offset": {
"default": 0,
"title": "Offset",
"type": "integer"
},
"limit": {
"default": 50,
"title": "Limit",
"type": "integer"
},
"genre": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Genre"
},
"year": {
"anyOf": [
{
"type": "integer"
},
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Year"
},
"content_rating": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Content Rating"
},
"director": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Director"
},
"actor": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Actor"
},
"writer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Writer"
},
"resolution": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Resolution"
},
"network": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Network"
},
"studio": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Studio"
}
},
"required": [
"library_name"
],
"title": "library_get_contentsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "library_get_contentsOutput",
"type": "object"
} | — | — · — | — |
library_get_detailsGet detailed information about a specific library, including folder paths and settings.
Args:
library_name: Name of the library to get details for
Input schema{
"properties": {
"library_name": {
"title": "Library Name",
"type": "string"
}
},
"required": [
"library_name"
],
"title": "library_get_detailsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "library_get_detailsOutput",
"type": "object"
} | — | — · — | — |
library_get_recently_addedGet recently added media across all libraries or in a specific library.
Args:
count: Number of items to return (default: 50)
library_name: Optional library name to limit results to
Input schema{
"properties": {
"count": {
"default": 50,
"title": "Count",
"type": "integer"
},
"library_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Library Name"
}
},
"title": "library_get_recently_addedArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "library_get_recently_addedOutput",
"type": "object"
} | — | — · — | — |
library_get_statsGet statistics for a specific library.
Args:
library_name: Name of the library to get stats for
Input schema{
"properties": {
"library_name": {
"title": "Library Name",
"type": "string"
}
},
"required": [
"library_name"
],
"title": "library_get_statsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "library_get_statsOutput",
"type": "object"
} | — | — · — | — |
library_listList all available libraries on the Plex server.Input schema{
"properties": {},
"title": "library_listArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "library_listOutput",
"type": "object"
} | — | — · — | — |
library_refreshRefresh a specific library or all libraries.
Args:
library_name: Optional name of the library to refresh (refreshes all if None)
Input schema{
"properties": {
"library_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Library Name"
}
},
"title": "library_refreshArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "library_refreshOutput",
"type": "object"
} | — | — · — | — |
library_scanScan a specific library or part of a library.
Args:
library_name: Name of the library to scan
path: Optional specific path to scan within the library
Input schema{
"properties": {
"library_name": {
"title": "Library Name",
"type": "string"
},
"path": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Path"
}
},
"required": [
"library_name"
],
"title": "library_scanArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "library_scanOutput",
"type": "object"
} | — | — · — | — |
media_deleteDelete a media item from the Plex library.
Args:
media_title: Title of the media to delete (optional if media_id is provided)
media_id: ID of the media to delete (optional if media_title is provided)
library_name: Optional library name to limit search to when using media_title
Input schema{
"properties": {
"media_title": {
"default": null,
"title": "Media Title",
"type": "string"
},
"media_id": {
"default": null,
"title": "Media Id",
"type": "integer"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
}
},
"title": "media_deleteArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "media_deleteOutput",
"type": "object"
} | — | — · — | — |
media_edit_metadataEdit metadata for a specific media item.
Args:
media_title: Title of the media to edit
library_name: Optional library name to limit search to
new_title: New title for the item
new_summary: New summary/description
new_rating: New rating (0-10)
new_release_date: New release date (YYYY-MM-DD)
new_genre: New genre to add
remove_genre: Genre to remove
new_director: New director to add (movies only)
new_studio: New studio to set
new_tags: List of tags to add
Input schema{
"properties": {
"media_title": {
"title": "Media Title",
"type": "string"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
},
"new_title": {
"default": null,
"title": "New Title",
"type": "string"
},
"new_summary": {
"default": null,
"title": "New Summary",
"type": "string"
},
"new_rating": {
"default": null,
"title": "New Rating",
"type": "number"
},
"new_release_date": {
"default": null,
"title": "New Release Date",
"type": "string"
},
"new_genre": {
"default": null,
"title": "New Genre",
"type": "string"
},
"remove_genre": {
"default": null,
"title": "Remove Genre",
"type": "string"
},
"new_director": {
"default": null,
"title": "New Director",
"type": "string"
},
"new_studio": {
"default": null,
"title": "New Studio",
"type": "string"
},
"new_tags": {
"default": null,
"items": {
"type": "string"
},
"title": "New Tags",
"type": "array"
}
},
"required": [
"media_title"
],
"title": "media_edit_metadataArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "media_edit_metadataOutput",
"type": "object"
} | — | — · — | — |
media_get_artworkGet images for a specific media item.
Args:
media_title: Title of the media to get images for (optional if media_id is provided)
media_id: ID of the media to get images for (optional if media_title is provided)
library_name: Optional library name to limit search to when using media_title
image_types: List of image types to get (poster, art/background, logo, banner, thumb)
output_format: Format to return image data in (base64, url, or file_path)
output_dir: Directory to save images to when using file output format
Input schema{
"properties": {
"media_title": {
"default": null,
"title": "Media Title",
"type": "string"
},
"media_id": {
"default": null,
"title": "Media Id",
"type": "integer"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
},
"image_types": {
"default": [
"poster"
],
"items": {
"type": "string"
},
"title": "Image Types",
"type": "array"
},
"output_format": {
"default": "base64",
"title": "Output Format",
"type": "string"
},
"output_dir": {
"default": "./",
"title": "Output Dir",
"type": "string"
}
},
"title": "media_get_artworkArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "media_get_artworkOutput",
"type": "object"
} | — | — · — | — |
media_get_detailsGet detailed information about a specific media item using PlexAPI's Media and Mixin functions.
Args:
media_title: Title of the media to get details for (optional if media_id is provided)
media_id: Plex media ID/rating key to directly fetch the item (optional if media_title is provided)
library_name: Optional library name to limit search to when using media_title
Input schema{
"properties": {
"media_title": {
"default": null,
"title": "Media Title",
"type": "string"
},
"media_id": {
"default": null,
"title": "Media Id",
"type": "integer"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
}
},
"title": "media_get_detailsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "media_get_detailsOutput",
"type": "object"
} | — | — · — | — |
media_list_available_artworkList all available artwork for a specific media item.
Args:
media_title: Title of the media to list artwork for (optional if media_id is provided)
media_id: ID of the media to list artwork for (optional if media_title is provided)
library_name: Optional library name to limit search to when using media_title
art_type: Type of artwork to list (poster, background/art, logo)
Input schema{
"properties": {
"media_title": {
"default": null,
"title": "Media Title",
"type": "string"
},
"media_id": {
"default": null,
"title": "Media Id",
"type": "integer"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
},
"art_type": {
"default": "poster",
"title": "Art Type",
"type": "string"
}
},
"title": "media_list_available_artworkArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "media_list_available_artworkOutput",
"type": "object"
} | — | — · — | — |
media_searchSearch for media across all libraries.
Args:
query: Search term to look for
content_type: Optional content type to limit search to (movie, show, episode, track, album, artist or use comma-separated values for HTTP API like movies,music,tv)
Input schema{
"properties": {
"query": {
"title": "Query",
"type": "string"
},
"content_type": {
"default": null,
"title": "Content Type",
"type": "string"
}
},
"required": [
"query"
],
"title": "media_searchArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "media_searchOutput",
"type": "object"
} | — | — · — | — |
media_set_artworkSet artwork for a specific media item.
Args:
media_title: Title of the media to set artwork for
library_name: Optional library name to limit search to
art_type: Type of artwork to set (poster, background/art, logo)
filepath: Path to the local image file
url: URL to the image file
lock: Whether to lock the artwork to prevent Plex from changing it
Input schema{
"properties": {
"media_title": {
"title": "Media Title",
"type": "string"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
},
"art_type": {
"default": "poster",
"title": "Art Type",
"type": "string"
},
"filepath": {
"default": null,
"title": "Filepath",
"type": "string"
},
"url": {
"default": null,
"title": "Url",
"type": "string"
},
"lock": {
"default": false,
"title": "Lock",
"type": "boolean"
}
},
"required": [
"media_title"
],
"title": "media_set_artworkArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "media_set_artworkOutput",
"type": "object"
} | — | — · — | — |
playlist_add_toAdd items to a playlist.
Args:
playlist_title: Title of the playlist to add to (optional if playlist_id is provided)
playlist_id: ID of the playlist to add to (optional if playlist_title is provided)
item_titles: List of media titles to add to the playlist (optional if item_ids is provided)
item_ids: List of media IDs to add to the playlist (optional if item_titles is provided)
Input schema{
"properties": {
"playlist_title": {
"default": null,
"title": "Playlist Title",
"type": "string"
},
"playlist_id": {
"default": null,
"title": "Playlist Id",
"type": "integer"
},
"item_titles": {
"default": null,
"items": {
"type": "string"
},
"title": "Item Titles",
"type": "array"
},
"item_ids": {
"default": null,
"items": {
"type": "integer"
},
"title": "Item Ids",
"type": "array"
}
},
"title": "playlist_add_toArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "playlist_add_toOutput",
"type": "object"
} | — | — · — | — |
playlist_copy_to_userCopy a playlist to another user account.
Args:
playlist_title: Title of the playlist to copy (optional if playlist_id is provided)
playlist_id: ID of the playlist to copy (optional if playlist_title is provided)
username: Username of the user to copy the playlist to
Input schema{
"properties": {
"playlist_title": {
"default": null,
"title": "Playlist Title",
"type": "string"
},
"playlist_id": {
"default": null,
"title": "Playlist Id",
"type": "integer"
},
"username": {
"default": null,
"title": "Username",
"type": "string"
}
},
"title": "playlist_copy_to_userArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "playlist_copy_to_userOutput",
"type": "object"
} | — | — · — | — |
playlist_createCreate a new playlist with specified items.
Args:
playlist_title: Title for the new playlist
item_titles: List of media titles to include in the playlist
library_name: Optional library name to limit search to
summary: Optional summary description for the playlist
Input schema{
"properties": {
"playlist_title": {
"title": "Playlist Title",
"type": "string"
},
"item_titles": {
"items": {
"type": "string"
},
"title": "Item Titles",
"type": "array"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
},
"summary": {
"default": null,
"title": "Summary",
"type": "string"
}
},
"required": [
"playlist_title",
"item_titles"
],
"title": "playlist_createArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "playlist_createOutput",
"type": "object"
} | — | — · — | — |
playlist_deleteDelete a playlist.
Args:
playlist_title: Title of the playlist to delete (optional if playlist_id is provided)
playlist_id: ID of the playlist to delete (optional if playlist_title is provided)
Input schema{
"properties": {
"playlist_title": {
"default": null,
"title": "Playlist Title",
"type": "string"
},
"playlist_id": {
"default": null,
"title": "Playlist Id",
"type": "integer"
}
},
"title": "playlist_deleteArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "playlist_deleteOutput",
"type": "object"
} | — | — · — | — |
playlist_editEdit a playlist's details such as title and summary.
Args:
playlist_title: Title of the playlist to edit (optional if playlist_id is provided)
playlist_id: ID of the playlist to edit (optional if playlist_title is provided)
new_title: Optional new title for the playlist
new_summary: Optional new summary for the playlist
Input schema{
"properties": {
"playlist_title": {
"default": null,
"title": "Playlist Title",
"type": "string"
},
"playlist_id": {
"default": null,
"title": "Playlist Id",
"type": "integer"
},
"new_title": {
"default": null,
"title": "New Title",
"type": "string"
},
"new_summary": {
"default": null,
"title": "New Summary",
"type": "string"
}
},
"title": "playlist_editArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "playlist_editOutput",
"type": "object"
} | — | — · — | — |
playlist_get_contentsGet the contents of a playlist.
Args:
playlist_title: Title of the playlist to get contents of (optional if playlist_id is provided)
playlist_id: ID of the playlist to get contents of (optional if playlist_title is provided)
Returns:
JSON object containing the playlist contents
Input schema{
"properties": {
"playlist_title": {
"default": null,
"title": "Playlist Title",
"type": "string"
},
"playlist_id": {
"default": null,
"title": "Playlist Id",
"type": "integer"
}
},
"title": "playlist_get_contentsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "playlist_get_contentsOutput",
"type": "object"
} | — | — · — | — |
playlist_listList all playlists on the Plex server.
Args:
library_name: Optional library name to filter playlists from
content_type: Optional content type to filter playlists (audio, video, photo)
Input schema{
"properties": {
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
},
"content_type": {
"default": null,
"title": "Content Type",
"type": "string"
}
},
"title": "playlist_listArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "playlist_listOutput",
"type": "object"
} | — | — · — | — |
playlist_remove_fromRemove items from a playlist.
Args:
playlist_title: Title of the playlist to remove from (optional if playlist_id is provided)
playlist_id: ID of the playlist to remove from (optional if playlist_title is provided)
item_titles: List of media titles to remove from the playlist
Input schema{
"properties": {
"playlist_title": {
"default": null,
"title": "Playlist Title",
"type": "string"
},
"playlist_id": {
"default": null,
"title": "Playlist Id",
"type": "integer"
},
"item_titles": {
"default": null,
"items": {
"type": "string"
},
"title": "Item Titles",
"type": "array"
}
},
"title": "playlist_remove_fromArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "playlist_remove_fromOutput",
"type": "object"
} | — | — · — | — |
playlist_upload_posterUpload a poster image for a playlist.
Args:
playlist_title: Title of the playlist to set poster for (optional if playlist_id is provided)
playlist_id: ID of the playlist to set poster for (optional if playlist_title is provided)
poster_url: URL to an image to use as poster
poster_filepath: Local file path to an image to use as poster
Input schema{
"properties": {
"playlist_title": {
"default": null,
"title": "Playlist Title",
"type": "string"
},
"playlist_id": {
"default": null,
"title": "Playlist Id",
"type": "integer"
},
"poster_url": {
"default": null,
"title": "Poster Url",
"type": "string"
},
"poster_filepath": {
"default": null,
"title": "Poster Filepath",
"type": "string"
}
},
"title": "playlist_upload_posterArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "playlist_upload_posterOutput",
"type": "object"
} | — | — · — | — |
server_clean_bundlesClean unused media bundles.
This removes unused media bundles (metadata, artwork) that are no longer associated with any media items.
Returns:
Success or error message
Input schema{
"properties": {},
"title": "server_clean_bundlesArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "server_clean_bundlesOutput",
"type": "object"
} | — | — · — | — |
server_empty_trashEmpty trash for a specific library or all libraries.
This permanently deletes all items that have been marked for deletion.
Args:
library_name: Optional name of the library to empty trash for. If not provided, empties trash for all libraries.
Returns:
Success or error message
Input schema{
"properties": {
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
}
},
"title": "server_empty_trashArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "server_empty_trashOutput",
"type": "object"
} | — | — · — | — |
server_get_alertsGet real-time alerts from the Plex server by listening on a websocket.
Args:
timeout: Number of seconds to listen for alerts (default: 15)
Returns:
Dictionary containing server alerts and their details
Input schema{
"properties": {
"timeout": {
"default": 15,
"title": "Timeout",
"type": "integer"
}
},
"title": "server_get_alertsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "server_get_alertsOutput",
"type": "object"
} | — | — · — | — |
server_get_bandwidthGet bandwidth statistics from the Plex server.
Args:
timespan: Time span for bandwidth data (months, weeks, days, hours, seconds)
lan: Filter by local network (true/false)
Returns:
Dictionary containing bandwidth statistics
Input schema{
"properties": {
"timespan": {
"default": null,
"title": "Timespan",
"type": "string"
},
"lan": {
"default": null,
"title": "Lan",
"type": "string"
}
},
"title": "server_get_bandwidthArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "server_get_bandwidthOutput",
"type": "object"
} | — | — · — | — |
server_get_butler_tasksGet information about Plex Butler tasks.
Returns:
Dictionary containing information about scheduled and running butler tasks
Input schema{
"properties": {},
"title": "server_get_butler_tasksArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "server_get_butler_tasksOutput",
"type": "object"
} | — | — · — | — |
server_get_current_resourcesGet resource usage information from the Plex server.
Returns:
Dictionary containing resource usage statistics
Input schema{
"properties": {},
"title": "server_get_current_resourcesArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "server_get_current_resourcesOutput",
"type": "object"
} | — | — · — | — |
server_get_infoGet detailed information about the Plex server.
Returns:
Dictionary containing server details including version, platform, etc.
Input schema{
"properties": {},
"title": "server_get_infoArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "server_get_infoOutput",
"type": "object"
} | — | — · — | — |
server_get_plex_logsGet Plex server logs.
Args:
num_lines: Number of log lines (or matches) to retrieve (default: 100)
log_type: Type of log to retrieve (server, scanner, transcoder, updater) or specific filename/partial match
start_line: Starting line number to retrieve (0-indexed). If None, retrieves last num_lines.
list_files: If True, lists all available log files instead of content.
search_term: Text to search for in the logs. If provided, returns matching lines with line numbers.
Returns:
String containing log lines, search results, or file list.
Input schema{
"properties": {
"num_lines": {
"default": 100,
"title": "Num Lines",
"type": "integer"
},
"log_type": {
"default": "server",
"title": "Log Type",
"type": "string"
},
"start_line": {
"default": null,
"title": "Start Line",
"type": "integer"
},
"list_files": {
"default": false,
"title": "List Files",
"type": "boolean"
},
"search_term": {
"default": null,
"title": "Search Term",
"type": "string"
}
},
"title": "server_get_plex_logsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "server_get_plex_logsOutput",
"type": "object"
} | — | — · — | — |
server_optimize_databaseOptimize the Plex database.
This runs database optimization to improve performance and reduce database size.
Returns:
Success or error message
Input schema{
"properties": {},
"title": "server_optimize_databaseArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "server_optimize_databaseOutput",
"type": "object"
} | — | — · — | — |
server_run_butler_taskManually run a specific Plex Butler task now.
Args:
task_name: Name of the butler task to run
Returns:
Success or error message
Input schema{
"properties": {
"task_name": {
"title": "Task Name",
"type": "string"
}
},
"required": [
"task_name"
],
"title": "server_run_butler_taskArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "server_run_butler_taskOutput",
"type": "object"
} | — | — · — | — |
sessions_get_activeGet information about current playback sessions, including IP addresses.
Args:
unused: Unused parameter to satisfy the function signature
Input schema{
"properties": {
"unused": {
"default": null,
"title": "Unused",
"type": "string"
}
},
"title": "sessions_get_activeArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "sessions_get_activeOutput",
"type": "object"
} | — | — · — | — |
sessions_get_media_playback_historyGet playback history for a specific media item.
Args:
media_title: Title of the media to get history for (optional if media_id is provided)
library_name: Optional library name to limit search to
media_id: Plex media ID/rating key to directly fetch the item (optional if media_title is provided)
Input schema{
"properties": {
"media_title": {
"default": null,
"title": "Media Title",
"type": "string"
},
"library_name": {
"default": null,
"title": "Library Name",
"type": "string"
},
"media_id": {
"default": null,
"title": "Media Id",
"type": "integer"
}
},
"title": "sessions_get_media_playback_historyArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "sessions_get_media_playback_historyOutput",
"type": "object"
} | — | — · — | — |
user_get_continue_watchingGet items the user has partially watched and can continue.
Unlike on_deck which shows the next unwatched episode in a series,
continue_watching shows items that were started but not finished.
Args:
limit: Maximum number of items to return (default 10)
Returns:
List of partially-watched items with progress information.
Input schema{
"properties": {
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
}
},
"title": "user_get_continue_watchingArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "user_get_continue_watchingOutput",
"type": "object"
} | — | — · — | — |
user_get_infoGet detailed information about a specific Plex user.
Args:
username: Optional. Name of the user to get information for. Defaults to the authenticated owner.
Input schema{
"properties": {
"username": {
"default": null,
"title": "Username",
"type": "string"
}
},
"title": "user_get_infoArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "user_get_infoOutput",
"type": "object"
} | — | — · — | — |
user_get_on_deckGet on deck (in progress) media for a specific user.
Args:
username: Name of the user to get on-deck items for
Input schema{
"properties": {
"username": {
"default": null,
"title": "Username",
"type": "string"
}
},
"title": "user_get_on_deckArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "user_get_on_deckOutput",
"type": "object"
} | — | — · — | — |
user_get_statisticsGet statistics about user watch activity over different time periods.
Args:
time_period: Time period for statistics - options: "last_24_hours", "last_7_days", "last_30_days", "last_90_days", "last_year", "all_time"
username: Optional. Filter statistics for a specific user. If not provided, returns statistics for all users.
Input schema{
"properties": {
"time_period": {
"default": "last_24_hours",
"title": "Time Period",
"type": "string"
},
"username": {
"default": null,
"title": "Username",
"type": "string"
}
},
"title": "user_get_statisticsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "user_get_statisticsOutput",
"type": "object"
} | — | — · — | — |
user_get_watch_historyGet recent watch history for a specific user.
Args:
username: Name of the user to get watch history for (ignored if user_id is provided)
limit: Maximum number of recently watched items to show
content_type: Optional filter for content type (movie, show, episode, etc)
user_id: Optional user ID to filter by (takes precedence over username). Use user_list_all_users to get IDs.
Input schema{
"properties": {
"username": {
"default": null,
"title": "Username",
"type": "string"
},
"limit": {
"default": 10,
"title": "Limit",
"type": "integer"
},
"content_type": {
"default": null,
"title": "Content Type",
"type": "string"
},
"user_id": {
"default": null,
"title": "User Id",
"type": "integer"
}
},
"title": "user_get_watch_historyArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "user_get_watch_historyOutput",
"type": "object"
} | — | — · — | — |
user_list_all_usersList all users (owner, home users, and shared users) with their IDs and types.
This is useful for getting the correct user IDs to filter watch history, especially for home users.
Input schema{
"properties": {},
"title": "user_list_all_usersArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "user_list_all_usersOutput",
"type": "object"
} | — | — · — | — |
user_search_usersSearch for users with names, usernames, or emails containing the search term, or list all users if no search term is provided.
Args:
search_term: Optional term to search for in user information
Input schema{
"properties": {
"search_term": {
"default": null,
"title": "Search Term",
"type": "string"
}
},
"title": "user_search_usersArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "user_search_usersOutput",
"type": "object"
} | — | — · — | — |