Skip to main content
Glama

list_library_matches

Read-onlyIdempotent

Find Plex library items matching specified metadata like GUID, title, year, path, or season/episode numbers. Supports optional full metadata inclusion for detailed results.

Instructions

Get library matches.

GET /library/matches

Args: include_full_metadata: Include full metadata in the response include_ancestor_metadata: Include ancestor metadata in the response include_alternate_metadata_sources: Include alternate metadata sources in the response guid: Used for movies, shows, artists, albums, and tracks. Allowed for various URI schemes, to be defined. year: Used for movies shows, and albums. Optional. path: Used for movies, episodes, and tracks. The full path to the media file, used for "cloud-scanning" an item. grandparent_title: Used for episodes and tracks. The title of the show/artist. Required if path isn't passed. grandparent_year: Used for episodes. The year of the show. parent_index: Used for episodes and tracks. The season/album number. index: Used for episodes and tracks. The episode/tracks number in the season/album. originally_available_at: Used for episodes. In the format YYYY-MM-DD. parent_title: Used for albums and tracks. The artist name for albums or the album name for tracks.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
guidNo
pathNo
yearNo
indexNo
parent_indexNo
parent_titleNo
grandparent_yearNo
grandparent_titleNo
include_full_metadataNo
originally_available_atNo
include_ancestor_metadataNo
include_alternate_metadata_sourcesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the HTTP endpoint and a conditional requirement (grandparent_title required if path isn't passed), but offers no further behavioral context such as response semantics or rate limits. With strong annotation coverage, this is adequate but not rich.

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

Conciseness4/5

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

Well-structured: a one-line summary, the explicit endpoint, then a tidy, scannable parameter list where each line earns its place given the 0% schema coverage. The only weak spot is the vague 'Allowed for various URI schemes, to be defined' on guid, which reads as a placeholder rather than usable guidance.

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

Completeness3/5

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

Parameter documentation is thorough, and the output schema covers return shape, so that gap is acceptable. But the description omits the tool's role in the matching workflow – it never frames what the returned matches mean or how they relate to match/update flows like update_library_metadata_by_ids_match. For a 12-param tool with zero schema descriptions, this conceptual framing is a noticeable omission.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully compensate, and it does. All 12 parameters get usage semantics: media-type applicability (movies/shows/albums/episodes/tracks), value format (YYYY-MM-DD), and a conditional dependency (grandparent_title required if path isn't passed). This is exactly the kind of compensation expected when the schema carries no descriptions.

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?

The description states a specific operation – 'Get library matches' – and names the exact HTTP endpoint GET /library/matches, which at a surface level distinguishes it from the many list_* siblings. However, it never explains what a 'match' represents (metadata match candidates for a library item), leaving the core semantic to be inferred from the parameter list.

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

Usage Guidelines2/5

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

There is no guidance on when to call this tool versus alternatives. It never mentions related siblings like get_library_sections_by_section_id_match, update_library_metadata_by_ids_match, or list_library_search, and gives no conditions for when match lookups are appropriate. The agent must guess the usage context entirely.

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

Deploy Server

Other Tools