Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PLEX_URLYesThe URL of your Plex media server (e.g., http://127.0.0.1:32400)
PLEX_TOKENYesYour Plex authentication token (X-Plex-Token)

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

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_result_pageA

Read more of a result that was too large to return in one piece.

Any tool whose answer is too large returns its first page with a paging block. Pass that block's result_id here. Nothing is fetched again: the stored result is paged, filtered and narrowed.

Args: result_id: From the paging block of the earlier answer. offset: First item to return, usually the previous next_offset. limit: At most this many items. Fewer come back if they would not fit. fields: Only these keys of each item. Dots reach nested keys, such as "statistics.sizeOnDisk". The paging.fields list shows what exists. match: Keep only items whose field contains this text, ignoring case, for example {"title": "alien", "year": "1979"}. path: Which list to page when the result holds several, as named in paging.lists. Defaults to the largest.

list_library_sectionsB

Get Library Sections (Fallback).

GET /library/sections/

get_library_sections_by_section_id_allB

Get items in the section.

GET /library/sections/{sectionId}/all

Args: section_id: The id of the section include_meta: Adds the Meta object to the response include_guids: Adds the Guid object to the response include_collections: Include collection items in results include_external_media: Include external or online media include_advanced: Include advanced settings check_files: Verify file existence include_related: Include related items include_extras: Include trailers, behind-the-scenes, etc. include_popular_leaves: Include popular episodes include_concerts: Include concert items include_on_deck: Include On Deck status include_chapters: Include chapter markers include_preferences: Include user preferences include_bandwidths: Include bandwidth info include_loudness_ramps: Include loudness ramp data include_stations: Include radio station data include_external_ids: Include external GUIDs include_reviews: Include user reviews include_credits: Include full credits include_art: Force inclusion of artwork fields include_thumb: Force inclusion of thumbnail fields include_banner: Force inclusion of banner fields include_theme: Force inclusion of theme fields include_fields: Whitelist of fields to return exclude_fields: Blacklist of fields to omit async_augment_metadata: Async metadata augmentation async_refresh_local_media_agent: Async local media agent refresh nocache: Bypass cache skip_refresh: Skip synchronous refresh exclude_elements: Comma-separated list of elements to exclude from the response filters: General filtering expression. unwatched: Filter to unwatched only (1 = true). genre: Filter by genre. studio: Filter by studio. content_rating: Filter by content rating. resolution: Filter by resolution. year: Filter by year. first_character: Filter by first character of title.

get_library_sections_by_section_id_unwatchedB

Get Unwatched for Section.

GET /library/sections/{sectionId}/unwatched

Args: section_id: The unique identifier of the library section

get_library_sections_by_section_id_collectionsC

Get collections in a section.

GET /library/sections/{sectionId}/collections

Args: section_id: Section identifier

get_library_collections_by_collection_id_itemsB

Get items in a collection.

GET /library/collections/{collectionId}/items

Args: collection_id: The collection id

list_hubs_searchB

Search Hub.

GET /hubs/search

Args: query: The query term section_id: This gives context to the search, and can result in re-ordering of search result hubs. limit: The number of items to return per hub. 3 if not specified include_collections: Include collection results in search hubs

get_library_metadata_by_idsA

Get a metadata item.

GET /library/metadata/{ids}

Args: ids: Comma-separated list of IDs async_check_files: Determines if file check should be performed asynchronously. An activity is created to indicate progress. Default is false. async_refresh_local_media_agent: Determines if local media agent refresh should be performed asynchronously. An activity is created to indicate progress. Default is false. async_refresh_analysis: Determines if analysis refresh should be performed asynchronously. An activity is created to indicate progress. Default is false. check_files: Determines if file check should be performed synchronously. Specifying asyncCheckFiles will cause this option to be ignored. Default is false. skip_refresh: Determines if synchronous local media agent and analysis refresh should be skipped. Specifying async versions will cause synchronous versions to be skipped. Default is false. check_file_availability: Determines if file existence check should be performed synchronously. Specifying checkFiles will imply this option. Default is false. async_augment_metadata: Add metadata augmentations. An activity is created to indicate progress. Option will be ignored if specified by non-admin or if multiple metadata items are requested. Default is false. augment_count: Number of augmentations to add. Requires asyncAugmentMetadata to be specified. include_markers: Include intro/credits markers in the response include_guids: Include external GUIDs (e.g. TMDB, TVDB) in the response include_chapters: Include chapter data in the response include_external_media: Include external/online media in the response include_extras: Include trailers, behind-the-scenes, and other extras include_related: Include related items in the response include_on_deck: Include On Deck status in the response include_popular_leaves: Include popular episodes in the response include_reviews: Include user reviews in the response include_stations: Include radio station data in the response exclude_elements: Comma-separated list of elements to exclude from the response exclude_fields: Comma-separated list of fields to exclude from the response

get_library_metadata_by_id_childrenC

Get Metadata Children.

GET /library/metadata/{id}/children

Args: id: The unique identifier of the item

get_library_metadata_by_ids_similarB

Get similar items.

GET /library/metadata/{ids}/similar

Args: ids: Comma-separated list of IDs

list_library_recently_addedA

Get Global Recently Added.

GET /library/recentlyAdded

list_hubs_continue_watching_itemsB

Get Continue Watching Items.

GET /hubs/continueWatching/items

list_status_sessionsB

List Sessions.

GET /status/sessions

list_status_sessions_history_allA

List Playback History.

GET /status/sessions/history/all

Args: account_id: The account id to restrict view history viewed_at: The time period to restrict history (typically of the form viewedAt>=12456789) library_section_id: The library section id to restrict view history metadata_item_id: The metadata item to restrict view history (can provide the id for a show to see all of that show's view history). Note this is translated to metadata_items.id, parents.id, or grandparents.id internally depending on the metadata type. sort: The field on which to sort. Multiple orderings can be specified separated by , and the direction specified following a : (desc or asc; asc is assumed if not provided). Note metadataItemID may not be used here. exclude_elements: Comma-separated list of elements to exclude from the response exclude_fields: Comma-separated list of fields to exclude from the response include_fields: Whitelist of fields to return include_elements: Whitelist of elements to include viewed_at_query: Greater-than filter for viewedAt timestamp viewed_at_query_2: Less-than filter for viewedAt timestamp device_id: Filter by device ID

list_playlistsC

List playlists.

GET /playlists

Args: playlist_type: Limit to a type of playlist type: Filter by playlist type. Use 42 for optimized/conversion items.

get_playlists_by_playlist_id_itemsA

Retrieve Playlist Contents.

GET /playlists/{playlistId}/items

Args: playlist_id: The ID of the playlist type: The metadata types of the item to return. Values past the first are only used in fetching items from the background processing playlist.

create_playlistsB

Create a Playlist.

POST /playlists

Args: uri: The content URI for what we're playing (e.g. library://...). play_queue_id: To create a playlist from an existing play queue.

update_playlists_by_playlist_id_itemsC

Adding to a Playlist.

PUT /playlists/{playlistId}/items

Args: playlist_id: The ID of the playlist uri: The content URI for the playlist. play_queue_id: The play queue to add to a playlist.

update_scrobbleB

Mark an item as played.

PUT /:/scrobble

Args: identifier: The identifier of the media provider containing the media to rate. Typically com.plexapp.plugins.library key: The key of the item to rate. This is the ratingKey found in metadata items uri: URI of the item to scrobble. Format is library://<section-uuid>/item/<url-encoded-key> or plex://movie/<guid> or plex://episode/<guid>.

update_unscrobbleB

Mark an item as unplayed.

PUT /:/unscrobble

Args: identifier: The identifier of the media provider containing the media to rate. Typically com.plexapp.plugins.library key: The key of the item to rate. This is the ratingKey found in metadata items uri: URI of the item to scrobble. Format is library://<section-uuid>/item/<url-encoded-key> or plex://movie/<guid> or plex://episode/<guid>.

update_rateA

Rate an item.

PUT /:/rate

Args: identifier: The identifier of the media provider containing the media to rate. Typically com.plexapp.plugins.library key: The key of the item to rate. This is the ratingKey found in metadata items rating: The rating to give the item. rated_at: The time when the rating occurred. If not present, interpreted as now.

create_library_sections_by_section_id_refreshB

Refresh Section.

POST /library/sections/{sectionId}/refresh

Args: section_id: Section identifier force: Whether the update of metadata and items should be performed even if modification dates indicate the items have not change path: Restrict refresh to the specified path

list_library_sections_watchlist_allB

Get Watchlist.

GET /library/sections/watchlist/all

create_actions_add_to_watchlistB

Add to Watchlist.

POST /actions/addToWatchlist

Args: uri: The URI of the item to add or remove

create_actions_remove_from_watchlistC

Remove from Watchlist.

POST /actions/removeFromWatchlist

Args: uri: The URI of the item to add or remove

list_identityB

Get PMS identity.

GET /identity

find_operationA

Search all 405 Plex API operations, including those not exposed as tools.

Returns each match's name, route, summary and arguments. Run one with run_operation.

Args: query: Words describing what you want, such as "delete playlist item", "butler tasks" or "transcode sessions". limit: How many matches to return.

run_operationA

Run any Plex API operation by name, as found with find_operation.

Some operations change or delete things; check read_only in the find_operation result before running one the user did not ask for.

Args: name: Operation name from find_operation. arguments: Its arguments as listed there, by name.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 28 tools

Disambiguation4/5

Most tools map to distinct Plex endpoints (sections, metadata, playlists, sessions, scrobble/rate). Some blurring exists: get_library_metadata_by_id_children vs get_library_metadata_by_ids, get_library_sections_by_section_id_all vs list_library_sections, and the find_operation/run_operation pair can do anything any other tool does, so overlap is inherent.

Naming Consistency4/5

Names follow a fairly predictable verb_path snake_case pattern (list_/get_/create_/update_ + route segments). Minor deviations: singular 'by_id' vs plural 'by_ids', get vs list used for analogous reads, and awkward appends like 'children' or '_all' at the end.

Tool Count3/5

28 tools is on the heavy side for curation, and because find_operation/run_operation already expose all 405 API operations, several of the explicit tools are effectively redundant duplicates of the escape hatch. The set is usable but not tightly scoped.

Completeness4/5

The surface covers library browsing, playlists, sessions/history, search, scrobble/rate, watchlist and refresh, and run_operation makes the remaining API operations reachable, so no hard dead ends. Direct CRUD is patchy, though: playlist deletion, playlist item removal, and library section mutation require going through run_operation.

Maintenance

ActivityMaintained
ResponsivenessNo issues