Skip to main content
Glama

search_media

Search movies and TV shows with single, batch, or dedupe modes to find requestable titles and get actionable availability status for automated media requests.

Instructions

Search movies/TV with single/batch/dedupe modes. Dedupe returns actionable status for batch processing. Status: NOT_FOUND | ALREADY_AVAILABLE | ALREADY_REQUESTED | SEASON_AVAILABLE | SEASON_REQUESTED | AVAILABLE_FOR_REQUEST

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
limitNoMax results
queryNoSingle search query
formatNoResponse formatcompact
titlesNoTitles to check (dedupe mode)
queriesNoMultiple search queries (batch mode)
languageNoLanguage codeen
dedupeModeNoBatch dedupe with availability check
autoRequestNoAuto-request passing items (requires dedupeMode). TV requests over 24 new episodes need requestOptions.confirmed:true.
autoNormalizeNoStrip "Season N"/"Part N" from single, batch, and dedupe search titles
includeDetailsNoAdd a details object to search results in any mode or format (fetches per-result details)
requestOptionsNoAutoRequest options
checkAvailabilityNoCheck status (slower, fetches per-result details)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv2.3.1
    • changedInput schema / properties / autoNormalize / description
      Previous value: -"Strip \"Season N\"/\"Part N\" from titles"New value: +"Strip \"Season N\"/\"Part N\" from single, batch, and dedupe search titles"
    • changedInput schema / properties / autoRequest / description
      Previous value: -"Auto-request passing items (requires dedupeMode)"New value: +"Auto-request passing items (requires dedupeMode). TV requests over 24 new episodes need requestOptions.confirmed:true."
    • changedInput schema / properties / includeDetails / description
      Previous value: -"Add details to dedupe results (dedupe only)"New value: +"Add a details object to search results in any mode or format (fetches per-result details)"
    • addedInput schema / properties / requestOptions / properties / confirmed
      Added value: +{
      +  "default": false,
      +  "description": "Confirm TV requests over 24 new episodes",
      +  "type": "boolean"
      +}
  2. Addedv2.1.3
  3. Removedv2.1.2
  4. Changed14 schema fields changedv1.0.0
    • addedInput schema / properties / autoNormalize
      Added value: +{
      +  "default": false,
      +  "description": "Strip \"Season N\"/\"Part N\" from titles",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / autoRequest
      Added value: +{
      +  "default": false,
      +  "description": "Auto-request passing items (requires dedupeMode)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / checkAvailability
      Added value: +{
      +  "default": false,
      +  "description": "Check status (slower, fetches per-result details)",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / dedupeMode
      Added value: +{
      +  "default": false,
      +  "description": "Batch dedupe with availability check",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / format
      Added value: +{
      +  "default": "compact",
      +  "description": "Response format",
      +  "enum": [
      +    "compact",
      +    "standard",
      +    "full"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / includeDetails
      Added value: +{
      +  "description": "Add details to dedupe results (dedupe only)",
      +  "properties": {
      +    "fields": {
      +      "description": "Basic: mediaType,year,posterPath | Standard: rating,overview,genres,runtime | TV: numberOfSeasons,numberOfEpisodes,seasons | Advanced: releaseDate,firstAirDate,originalTitle,originalName,popularity,backdropPath,homepage,status,tagline | Availability: mediaStatus,hasRequests,requestCount | targetSeason auto-adds for season numbers",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "includeSeason": {
      +      "default": true,
      +      "description": "Auto-add targetSeason for TV with season in title",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • changedInput schema / properties / language / description
      Previous value: -"Language code (e.g., \"en\", default: \"en\")"New value: +"Language code"
    • addedInput schema / properties / limit
      Added value: +{
      +  "description": "Max results",
      +  "type": "number"
      +}
    • changedInput schema / properties / page / description
      Previous value: -"Page number for pagination (default: 1)"New value: +"Page number"
    • addedInput schema / properties / queries
      Added value: +{
      +  "description": "Multiple search queries (batch mode)",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / query / description
      Previous value: -"Search query (movie/TV show/person name)"New value: +"Single search query"
    • addedInput schema / properties / requestOptions
      Added value: +{
      +  "description": "AutoRequest options",
      +  "properties": {
      +    "dryRun": {
      +      "default": false,
      +      "description": "Preview only",
      +      "type": "boolean"
      +    },
      +    "is4k": {
      +      "default": false,
      +      "description": "Request 4K",
      +      "type": "boolean"
      +    },
      +    "profileId": {
      +      "type": "number"
      +    },
      +    "rootFolder": {
      +      "type": "string"
      +    },
      +    "seasons": {
      +      "description": "TV seasons. \"all\"=no season 0 (specials); [0,1,2]=with specials",
      +      "oneOf": [
      +        {
      +          "items": {
      +            "type": "number"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "enum": [
      +            "all"
      +          ],
      +          "type": "string"
      +        }
      +      ]
      +    },
      +    "serverId": {
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedInput schema / properties / titles
      Added value: +{
      +  "description": "Titles to check (dedupe mode)",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "query"
      -]
  5. First observed

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It does add genuine behavioral value by disclosing that dedupe returns an actionable status and enumerating the six possible status values. However, it omits the most consequential trait: despite being a 'search' tool, it can mutate state via autoRequest (which creates requests), and it says nothing about read-only guarantees, pagination, or rate limits. Partial disclosure, no contradiction.

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?

The description is tight: two sentences carry purpose and dedupe behavior, and the status enum provides the output vocabulary an agent needs. Facts are front-loaded with the core verb and resource first. The trailing status line after a newline reads slightly as a dangling fragment, and the enum could be folded into the dedupe sentence, but every element earns its place.

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

Completeness2/5

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

Complexity is high — 13 parameters, nested objects, zero annotations, and no output schema — so the description must carry tool-level semantics that the schema cannot. It fails to explain the interplay among dedupeMode/autoRequest/checkAvailability, does not warn that autoRequest triggers real requests, and never describes the shape of search results or pagination. The rich schema softens the gap but does not fill it; a first-time agent would be unsure what a result looks like or that this tool can mutate data.

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 100%, so the baseline 3 applies even though the description adds no per-parameter wordsmithing. The schema itself is rich — includeDetails enumerates exact field groups, autoRequest documents the 24-episode confirmation rule, and requestOptions explains season semantics — so no compensation is needed from the description. The description's mention of modes maps loosely to queries/titles/dedupeMode but adds no new meaning.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Search movies/TV' plus the mode set (single/batch/dedupe), which immediately distinguishes this from sibling get_/request_/manage_ tools. The dedupe sentence further clarifies a distinctive capability (actionable batch status), so an agent can separate search_media from get_media_details or request_media without opening the schema.

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

Usage Guidelines3/5

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

Usage context is implied through the mode names: single for one query, batch for multiple queries, and dedupe 'for batch processing' with an availability verdict. However, the description never states when to prefer this tool over siblings like request_media or get_media_details, and it offers no exclusions or when-not-to-use guidance. The mode semantics are suggestive but not explicit.

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