Skip to main content
Glama
dustinhansen

Plex MCP Server

by dustinhansen

Person credits

person_credits
Read-onlyIdempotent

Retrieve all movies by a director, actor, writer, or composer in one Plex library, with optional watched/unwatched filtering and pagination for targeted browsing.

Instructions

Everything by a person (director, actor, writer, or composer) within one library, with optional watched filter. 'Scorsese films I haven't seen' = role:director, watched:'unwatched'. Paginated. detail=true caps limit at 25 and adds fields such as directors, actors, collections and summaries.

Input Schema

NameRequiredDescriptionDefault
nameYes
roleNodirector
sortNoyear
limitNo
orderNoasc
detailNo
fieldsNoproject each record to these keys (ratingKey always kept). Use to keep large listings small
offsetNo
libraryNoMovies
watchedNoall

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.9.0

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds real behavioral facts beyond them: results are paginated, and detail=true imposes a hard limit of 25 while enriching records with directors/actors/collections/summaries. It does not say what happens when detail=true is combined with a limit above 25, nor the default result ordering.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the resource scope, followed by the usage example and then the operational caveats. Nothing is redundant and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 10 parameters, 10% schema coverage, and no output schema, the description supplies the key invocation facts: role, watched, pagination, and detail-mode limits. Gaps remain around sort/order/fields projection and the default return shape, but the essentials for a correct call are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 10%, so the description must carry the load. It does explain role, watched, and the detail/limit interaction well, but leaves sort, order, offset, fields, library (beyond the passing phrase 'within one library'), and the name parameter to the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource with scope: everything credited to a named person, restricted to one library and one role. That is clearly separable from list_media or search in substance, but no sibling tool is named, so the differentiation is implicit rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The concrete example ('Scorsese films I haven't seen' = role:director, watched:'unwatched') shows exactly when this tool is the right call and how to express a natural-language request. It stops short of stating exclusions or naming the alternative (e.g. search) for across-library queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.