Skip to main content
Glama
drakonkat

wizzy-mcp-tmdb

by drakonkat

wizzy-mcp-tmdb

Build Status

Coverage

Project Overview and Purpose

The wizzy-mcp-tmdb project is an MCP (Model Context Protocol) server implemented in JavaScript that provides tools to search and retrieve information from The Movie Database (TMDB). It allows AI clients to access movie, TV show, and person data through a standardized protocol.

Related MCP server: moviefinder-mcp

Key Features

  • Search Movies: Perform multi-search across movies, TV shows, and people using the search_tmdb tool.

  • Get Details: Fetch detailed information for specific items using the get_tmdb_details tool.

  • Trending Content: Retrieve trending content across all media types with the trending_all tool.

Installation

Prerequisites

  • Node.js version 18 or higher (required for global fetch support)

  • A TMDB API key (Bearer token) from your admin, used with the TNL TMDB proxy (production-api.tnl.one)

Setup

  1. Clone the repository and navigate to the project directory.

  2. Install dependencies:

    npm install
  3. Set up your TMDB API key as an environment variable:

    • On Windows PowerShell:

      $env:TMDB_AUTH_TOKEN="YOUR_TNL_PROXY_BEARER_TOKEN"
    • On macOS/Linux:

      export TMDB_AUTH_TOKEN="YOUR_TNL_PROXY_BEARER_TOKEN"

Usage

Starting the MCP Server

To start the server:

npm start

The server communicates over stdio and should be configured in your MCP-compatible client (e.g., IDE or chat client) with the command node mcp-tmdb-server.js and the TMDB_AUTH_TOKEN environment variable.

MCP Integration Examples

Here are code snippets showing how to integrate with the MCP tools:

Search for Movies

// Example MCP tool call for searching
{
  "method": "tools/call",
  "params": {
    "name": "search_tmdb",
    "arguments": {
      "query": "dune",
      "page": 1,
      "language": "en-US",
      "include_adult": false
    }
  }
}

Get Movie Details

// Example MCP tool call for getting details
{
  "method": "tools/call",
  "params": {
    "name": "get_tmdb_details",
    "arguments": {
      "type": "movie",
      "id": 438631,
      "append": "credits,images"
    }
  }
}
// Example MCP tool call for trending content
{
  "method": "tools/call",
  "params": {
    "name": "trending_all",
    "arguments": {
      "time_window": "day",
      "page": 1,
      "language": "en-US"
    }
  }
}

MCP Client Integration

Per integrare questo MCP server nel tuo client MCP (come un IDE o un client di chat compatibile), segui questi passi:

  1. Installa il pacchetto npm se necessario:

    npm install -g wizzy-mcp-tmdb
  2. Crea o aggiorna il file mcp.json nel tuo client MCP con la seguente configurazione:

    {
      "mcpServers": {
        "tmdb": {
          "command": "npx",
          "args": ["wizzy-mcp-tmdb"],
          "env": {
            "TMDB_AUTH_TOKEN": "YOUR_TNL_PROXY_BEARER_TOKEN"
          },
          "alwaysAllow": [
            "get_watch_providers",
            "discover_tv",
            "discover_by_provider"
          ]
        }
      }
    }

    Nota: Il TMDB_AUTH_TOKEN può essere impostato a un valore casuale per ora, poiché le chiamate API TMDB sono gratuite e non richiedono autenticazione obbligatoria.

Testing Strategy

The project uses Jest for comprehensive testing, including:

  • Unit Tests: Validate individual handler functions, input validation, and response formatting (see tests/unit/handlers.test.js).

  • Integration Tests: Test API interactions with mocked responses, error handling, and network failures (see tests/integration/api.test.js).

  • Protocol Tests: Ensure MCP protocol compliance, including tool listing and calling (see tests/protocol/mcp.test.js).

Run the test suite with:

npm test

For watch mode:

npm run test:watch

Project Structure

wizzy-mcp-tmdb/
├── mcp-tmdb-server.js          # Main MCP server implementation
├── package.json                # Project configuration and dependencies
├── MCP_GUIDE.md                # Detailed MCP integration guide
├── babel.config.cjs            # Babel configuration for Jest
├── tests/
│   ├── unit/
│   │   └── handlers.test.js    # Unit tests for handlers
│   ├── integration/
│   │   └── api.test.js         # Integration tests for API calls
│   └── protocol/
│       └── mcp.test.js         # MCP protocol compliance tests
└── tests/fixtures/             # Mock data for tests
    ├── movieDetails.json
    ├── searchMultiResponse.json
    └── trendingAllResponse.json

Contributing

We welcome contributions! Please follow these guidelines:

  1. Fork the repository.

  2. Create a feature branch.

  3. Make your changes and add tests.

  4. Ensure all tests pass.

  5. Submit a pull request.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Acknowledgments

  • Thanks to The Movie Database (TMDB) for providing the API.

  • Built using the Model Context Protocol SDK.

Contact

For questions or support, please open an issue on GitHub.

Available Tools

23 tools
discover_by_providerA

Discovers movies or TV shows available on specific streaming providers in a region. Input: type (optional: tv|movie, default tv), with_watch_providers (required comma-separated provider IDs), watch_region (required ISO 3166-1), language (optional ISO 639-1, default en), page (optional), sort_by (optional). Output: JSON with paginated results. Purpose: Personalized content discovery based on streaming availability for AI agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoISO 639-1 language (e.g., en)
pageNoPage number
sort_byNoSort order (e.g., release_date.desc, first_air_date.desc, popularity.desc)
typeNoMedia type to discover: tv (default) or movie
watch_regionYesISO 3166-1 region code (e.g., IS)
with_watch_providersYesProvider ID(s), comma-separated (e.g., '8'), from service get_watch_providers

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'Output: JSON with paginated results' which is helpful, but doesn't disclose rate limits, authentication needs, error conditions, or what happens with invalid provider IDs. It describes the core behavior adequately but lacks operational details that would help an agent use it safely and effectively.

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 appropriately sized and front-loaded with the core purpose in the first sentence. The parameter listing is somewhat redundant given the schema, but the final sentence adds useful context about the tool's purpose for AI agents. Most sentences earn their place, though the parameter enumeration could be more concise.

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?

Given 6 parameters, no annotations, and no output schema, the description provides adequate coverage for a read-only discovery tool. It explains the purpose, lists parameters, and mentions the output format. However, it lacks details about error handling, rate limits, and doesn't fully compensate for the missing output schema by describing result structure beyond 'JSON with paginated results.'

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 schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by listing parameters but doesn't provide additional semantic context like examples of provider IDs beyond referencing 'from service get_watch_providers' (which is already in the schema). Baseline 3 is appropriate when the schema does the heavy lifting.

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 clearly states the tool's purpose with specific verbs ('discovers movies or TV shows') and resources ('available on specific streaming providers in a region'). It distinguishes from siblings like discover_movies and discover_tv by specifying provider-based filtering and explicitly mentions 'Personalized content discovery based on streaming availability' which differentiates it from general discovery tools.

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 description provides clear context for when to use this tool ('Personalized content discovery based on streaming availability'), but doesn't explicitly state when NOT to use it or name specific alternatives. It implies usage for provider-filtered discovery versus general discovery tools, but lacks explicit exclusions or comparisons to siblings like get_watch_providers.

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

discover_moviesC

Performs advanced discovery of movies with extensive filtering options. Input: Optional parameters including language (ISO 639-1), region (ISO 3166-1), sort_by, certifications, release dates, genres, keywords, watch providers, vote counts, etc. Output: JSON with paginated results. Purpose: Enable complex, criteria-based movie discovery for AI-driven content curation.

ParametersJSON Schema
NameRequiredDescriptionDefault
certificationNoFilter by certification (e.g., PG-13)
certification.gteNoCertification greater than or equal to
certification.lteNoCertification less than or equal to
certification_countryNoCertification country (ISO 3166-1)
include_adultNoInclude adult titles (default false)
include_videoNoInclude items with videos
languageNoISO 639-1 language (e.g., en-US)
pageNoPage number (1-500)
primary_release_date.gteNoPrimary release date from (YYYY-MM-DD)
primary_release_date.lteNoPrimary release date to (YYYY-MM-DD)
primary_release_yearNoPrimary release year
regionNoISO 3166-1 region (e.g., US)
release_date.gteNoRelease date from (YYYY-MM-DD)
release_date.lteNoRelease date to (YYYY-MM-DD)
screened_theatricallyNoFilter for movies screened theatrically
sort_byNoSort by (e.g., popularity.desc, release_date.desc, vote_average.desc, primary_release_date.desc, revenue.desc, original_title.asc)
vote_average.gteNoMinimum vote average (0-10)
vote_average.lteNoMaximum vote average (0-10)
vote_count.gteNoMinimum vote count
vote_count.lteNoMaximum vote count
watch_regionNoISO 3166-1 region for watch providers
with_castNoComma-separated person IDs
with_companiesNoComma-separated company IDs
with_crewNoComma-separated person IDs
with_genresNoComma-separated genre IDs
with_keywordsNoComma-separated keyword IDs
with_original_languageNoOriginal language (ISO 639-1)
with_peopleNoComma-separated person IDs
with_release_typeNoComma-separated release types (e.g., 2|3). TMDB expects bitmask but pipe is accepted by API
with_release_type.gteNoMin release type mask (advanced)
with_release_type.lteNoMax release type mask (advanced)
with_runtime.gteNoRuntime min (minutes)
with_runtime.lteNoRuntime max (minutes)
with_statusNoComma-separated status (Rumored|Planned|In Production|Post Production|Released|Canceled)
with_typeNoComma-separated movie types (Documentary, etc.)
with_watch_monetization_typesNoComma-separated monetization types (flatrate|free|ads|rent|buy)
with_watch_providersNoComma-separated watch provider IDs
without_companiesNoComma-separated company IDs to exclude
without_genresNoComma-separated genre IDs to exclude
without_keywordsNoComma-separated keyword IDs to exclude

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions paginated JSON output and that parameters are optional, but fails to disclose critical traits like rate limits, authentication requirements, error handling, or whether this is a read-only operation. For a tool with 40 parameters and no annotations, this is a significant gap.

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 appropriately sized with three sentences that efficiently cover purpose, input/output, and use case. It's front-loaded with the core functionality and avoids unnecessary repetition, though the parameter listing in the middle could be slightly more integrated.

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?

Given the high parameter count (40), no annotations, and no output schema, the description provides basic completeness about the tool's purpose and output format. However, it lacks sufficient behavioral context for safe and effective use, leaving gaps in understanding operational constraints and error scenarios.

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 schema already documents all 40 parameters thoroughly. The description lists some example parameters but doesn't add meaningful semantic context beyond what's in the schema. The baseline score of 3 reflects adequate coverage through the schema alone.

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 clearly states the tool performs 'advanced discovery of movies with extensive filtering options' and specifies it's for 'AI-driven content curation.' It distinguishes from simpler search tools but doesn't explicitly differentiate from sibling tools like 'discover_tv' or 'search_tmdb_movies' beyond the 'movies' focus.

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?

No explicit guidance on when to use this tool versus alternatives like 'search_tmdb_movies' or 'trending_movies' is provided. The description mentions 'complex, criteria-based movie discovery' which implies usage for detailed filtering, but lacks specific when/when-not scenarios or prerequisite conditions.

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

discover_tvA

Performs advanced discovery of TV shows with extensive filtering options. Input: Optional parameters including language (ISO 639-1), sort_by, air dates, genres, networks, keywords, watch providers, vote counts, etc. Output: JSON with paginated results. Purpose: Enable complex, criteria-based TV show discovery for AI-driven content curation.

ParametersJSON Schema
NameRequiredDescriptionDefault
air_date.gteNoAir date from (YYYY-MM-DD)
air_date.lteNoAir date to (YYYY-MM-DD)
first_air_date.gteNoFirst air date from (YYYY-MM-DD)
first_air_date.lteNoFirst air date to (YYYY-MM-DD)
first_air_date_yearNoFirst air date year
include_null_first_air_datesNoInclude shows with null first air dates
languageNoISO 639-1 language (e.g., en-US)
pageNoPage number (1-500)
screened_theatricallyNoNot applicable to TV but accepted safely
sort_byNoSort by (e.g., popularity.desc, first_air_date.desc, vote_average.desc)
timezoneNoTimezone for air date lookups (e.g., America/New_York)
vote_average.gteNoMinimum vote average
vote_average.lteNoMaximum vote average
vote_count.gteNoMinimum vote count
vote_count.lteNoMaximum vote count
watch_regionNoISO 3166-1 region for watch providers
with_companiesNoComma-separated company IDs
with_genresNoComma-separated genre IDs
with_keywordsNoComma-separated keyword IDs
with_name_translationNoISO 639-1 language to filter by available translations
with_networksNoComma-separated network IDs
with_original_languageNoOriginal language (ISO 639-1)
with_overview_translationNoISO 639-1 language to filter overview translations
with_runtime.gteNoRuntime min (minutes)
with_runtime.lteNoRuntime max (minutes)
with_statusNoComma-separated production status (Returning Series|Planned|In Production|Ended|Canceled|Pilot)
with_typeNoComma-separated TV types (e.g., Documentary, News)
with_watch_monetization_typesNoComma-separated monetization types (flatrate|free|ads|rent|buy)
with_watch_providersNoComma-separated watch provider IDs
without_genresNoComma-separated genre IDs to exclude
without_keywordsNoComma-separated keyword IDs to exclude

TDQS

A3.6/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 burden of behavioral disclosure. It mentions 'Output: JSON with paginated results,' which is useful for understanding the response format and pagination behavior. However, it doesn't cover other critical aspects like rate limits, authentication needs, error handling, or whether it's a read-only operation (implied by 'discovery' but not explicit). The description adds some value but leaves gaps for a tool with 31 parameters.

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 efficiently structured into three sentences: stating the tool's function, detailing inputs/outputs, and explaining the purpose. It's front-loaded with the core action and avoids redundancy. However, the second sentence is somewhat lengthy with a list of parameter examples, slightly reducing conciseness.

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?

Given the tool's complexity (31 parameters, no output schema, no annotations), the description is moderately complete. It covers the purpose, input scope, and output format but lacks details on behavioral traits like rate limits or error handling. For a discovery tool with extensive filtering, more guidance on usage constraints or response structure would improve completeness, but it's adequate as a baseline.

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?

The description lists examples of parameters ('language, sort_by, air dates, genres, networks, keywords, watch providers, vote counts, etc.') and notes they are optional. Since schema description coverage is 100%, the schema already documents all 31 parameters thoroughly. The description adds minimal semantic context beyond what's in the schema, meeting the baseline of 3 for high schema coverage.

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 clearly states the tool's purpose: 'Performs advanced discovery of TV shows with extensive filtering options' and 'Enable complex, criteria-based TV show discovery for AI-driven content curation.' It specifies the verb ('discovery'), resource ('TV shows'), and scope ('advanced' with 'extensive filtering'), distinguishing it from siblings like search_tmdb_tv or trending_tv by emphasizing comprehensive filtering capabilities.

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?

The description implies usage context ('for AI-driven content curation') and mentions 'extensive filtering options,' suggesting it's for complex queries. However, it lacks explicit guidance on when to use this tool versus alternatives like search_tmdb_tv (which might be for simpler searches) or trending_tv (for popularity-based discovery). No exclusions or prerequisites are stated.

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

get_tmdb_detailsA

Fetches detailed information for a movie, TV show, or person by type and ID. Input: type (required: movie|tv|person), id (required TMDB ID), language (optional ISO 639-1), append (optional comma-separated fields like credits,images). Output: JSON with full item details. Purpose: Obtain in-depth metadata for targeted content analysis by AI agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
appendNoComma-separated append_to_response (e.g., credits,images)
idYesTMDB ID
languageNoISO 639-1 code (e.g., en-US)
typeYesThe TMDB media type

TDQS

A4/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 burden of behavioral disclosure. It states this is a fetch/read operation (implied safe) and describes the output format (JSON with full item details), which is helpful. However, it doesn't mention rate limits, authentication requirements, error conditions, or pagination behavior that would be valuable for an AI agent.

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?

The description is efficiently structured with three sentences: first states the core function, second lists parameters, third states purpose. Every sentence adds value with no wasted words, and it's appropriately sized for a tool with 4 parameters and no annotations.

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?

For a read-only tool with 100% schema coverage but no output schema, the description provides adequate context by specifying the output format and purpose. However, without annotations or output schema, it could benefit from more behavioral details about error handling or response structure. The description compensates reasonably well given the tool's complexity.

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 schema already documents all parameters thoroughly. The description adds minimal value by restating the parameter names and basic constraints (e.g., 'optional comma-separated fields like credits,images'), but doesn't provide additional semantic context beyond what's in the schema descriptions.

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 clearly states the verb ('fetches detailed information') and resource ('movie, TV show, or person'), and distinguishes from siblings by specifying it's for targeted content analysis by ID rather than discovery/search functions. It explicitly names the purpose as obtaining in-depth metadata for analysis.

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 description provides clear context about when to use this tool ('for targeted content analysis by AI agents') and implies it's for specific items identified by type and ID rather than discovery. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the many sibling tools.

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

get_watch_providersB

Retrieves watch providers (streaming services) for movies or TV in a specific region. Input: type (required: movie|tv), language (optional ISO 639-1, default en), watch_region (required ISO 3166-1 code). Output: JSON with provider list. Purpose: Discover streaming availability for content recommendations by AI agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoISO 639-1 language (e.g., en)
typeYesMedia type for providers endpoint
watch_regionYesISO 3166-1 region code (e.g., IT)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states it 'retrieves' data without disclosing behavioral traits like rate limits, authentication needs, data freshness, or error handling. It mentions the output format but doesn't describe pagination, response structure details, or potential limitations of the provider data.

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 appropriately sized with three sentences that efficiently cover purpose, inputs, outputs, and use case. It's front-loaded with the core functionality and avoids unnecessary elaboration, though the final sentence about AI agents could be integrated more smoothly.

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?

For a 3-parameter read-only tool with no output schema, the description covers basic functionality but lacks completeness regarding behavioral context. Without annotations or output schema, it should ideally describe more about the return structure, error conditions, or limitations to fully guide the agent.

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 schema already documents all parameters thoroughly. The description adds minimal value beyond the schema by mentioning 'specific region' context and the purpose of discovering streaming availability, but doesn't provide additional parameter semantics like format examples beyond what's in the schema descriptions.

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 clearly states the tool's purpose with specific verbs ('retrieves', 'discover') and resources ('watch providers for movies or TV'), and distinguishes it from siblings by focusing on streaming availability rather than discovery or search functions. It explicitly mentions the output format and AI agent use case.

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?

The description implies usage context ('for content recommendations by AI agents') but doesn't explicitly state when to use this tool versus alternatives like discover_by_provider or search tools. It provides basic input requirements but lacks guidance on when this specific provider lookup is preferred over other discovery methods.

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

movie_creditsA

Fetches cast and crew credits for a movie. Input: movie_id (required TMDB ID), language (optional ISO 639-1 code). Output: JSON with cast and crew details. Purpose: Retrieve detailed personnel information for movie analysis and recommendations by AI agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoISO 639-1 code (e.g., en-US)
movie_idYesTMDB Movie ID

TDQS

A3.9/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 burden of behavioral disclosure. It describes the output format ('JSON with cast and crew details') and hints at a read-only operation ('fetches', 'retrieve'), but lacks details on rate limits, authentication needs, error handling, or pagination. This provides basic context but misses key operational traits for robust agent use.

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 front-loaded with the core functionality and efficiently structured into input, output, and purpose sections in three sentences. However, the purpose sentence could be more concise (e.g., 'for AI-driven movie analysis and recommendations'), and some redundancy exists with schema details, slightly reducing efficiency.

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?

Given the tool's low complexity (2 parameters, no nested objects) and lack of output schema, the description is reasonably complete—it covers what the tool does, input/output formats, and usage context. However, it could improve by addressing missing behavioral aspects like rate limits or error cases, which would enhance agent reliability in this context.

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 schema already documents both parameters (movie_id as TMDB ID, language as ISO 639-1 code). The description adds minimal value by restating these in the input note, without providing additional semantics like format examples or usage tips beyond what the schema offers, meeting the baseline for high coverage.

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 clearly states the tool's purpose with specific verbs ('fetches', 'retrieve') and resources ('cast and crew credits', 'detailed personnel information'). It distinguishes from siblings like movie_images (visual content) and movie_reviews (critiques) by focusing on personnel data, making it easy for an AI agent to identify when to use this tool.

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 description provides clear context for usage ('for movie analysis and recommendations by AI agents'), indicating this tool is for obtaining personnel data to support analytical tasks. However, it does not explicitly state when not to use it or name specific alternatives among siblings (e.g., person_details for individual details), leaving some ambiguity in tool selection.

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

movie_imagesB

Fetches images (posters, backdrops, logos) for a movie. Input: movie_id (required TMDB ID), language (optional ISO 639-1 code), include_image_language (optional comma-separated languages). Output: JSON with image arrays. Purpose: Obtain visual media assets for a movie to support AI-driven image processing or content enrichment.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_image_languageNoFilter image languages (comma-separated ISO 639-1 codes or 'null')
languageNoISO 639-1 language (e.g., en-US)
movie_idYesTMDB Movie ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the output format ('JSON with image arrays') and purpose, but lacks details on rate limits, authentication needs, error handling, pagination, or what happens if no images are found. For a read-only tool with no annotation coverage, this leaves significant behavioral gaps.

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 front-loaded with the core functionality, followed by input/output details and purpose. It uses three concise sentences with no wasted words, though the purpose sentence could be integrated more smoothly. Overall, it is efficiently structured and appropriately sized.

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?

Given no annotations and no output schema, the description covers the basic purpose and parameters but lacks depth for a tool with 3 parameters and behavioral unknowns. It does not explain return value structure beyond 'JSON with image arrays', leaving the agent to infer details. For a read-only tool, this is adequate but with clear gaps in behavioral context.

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 schema already documents all parameters thoroughly. The description adds minimal value by listing parameters in parentheses but does not provide additional context like format examples beyond the schema (e.g., how include_image_language filtering works in practice). Baseline 3 is appropriate when the schema does the heavy lifting.

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 clearly states the specific action ('Fetches images'), resource ('for a movie'), and scope ('posters, backdrops, logos'), distinguishing it from sibling tools like get_tmdb_details or movie_credits by focusing exclusively on visual media assets. The purpose statement further clarifies its use for AI-driven image processing or content enrichment.

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?

The description implies usage when visual media assets are needed, but does not explicitly state when to use this tool versus alternatives like get_tmdb_details (which might include some image data) or other movie-related tools. No exclusions or prerequisites are mentioned, leaving usage context somewhat open-ended.

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

movie_listsA

Retrieves lists and collections that include a specific movie. Input: movie_id (required TMDB ID), language (optional ISO 639-1 code), page (optional page number). Output: JSON with paginated results of lists containing the movie. Purpose: Discover curated collections and lists featuring a movie for content curation by AI agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoISO 639-1 language (e.g., en-US)
movie_idYesTMDB Movie ID
pageNoPage number

TDQS

A3.6/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 burden of behavioral disclosure. It mentions pagination and output format ('JSON with paginated results'), which is helpful, but lacks details on rate limits, authentication needs, error handling, or what specific data the lists contain. It adequately describes the core behavior but misses deeper operational context.

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 front-loaded with the core purpose, followed by input/output details and a purpose statement. It is appropriately sized with no redundant sentences, though the purpose statement at the end could be integrated more seamlessly for better flow.

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?

Given no annotations and no output schema, the description provides basic operational info (purpose, parameters, output format) but lacks completeness for a tool with 3 parameters and paginated results. It does not explain the structure of the returned lists, error cases, or advanced usage scenarios, leaving gaps for an AI agent to fully understand the tool's behavior.

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 schema already documents all parameters thoroughly. The description lists the parameters and adds that movie_id is a 'required TMDB ID', but this repeats schema info. It provides no additional semantic context beyond what the schema offers, such as examples or constraints not in the schema.

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 clearly states the tool's purpose with specific verbs ('Retrieves lists and collections') and resource ('that include a specific movie'), distinguishing it from siblings like discover_movies or search_tmdb_movies which focus on broader discovery or search functions rather than curated lists for a specific movie.

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?

The description implies usage context ('for content curation by AI agents') and mentions pagination, but it does not explicitly state when to use this tool versus alternatives like search_tmdb or discover_by_provider, nor does it provide exclusions or prerequisites for usage.

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

movie_reviewsB

Retrieves user reviews and ratings for a movie. Input: movie_id (required TMDB ID), language (optional ISO 639-1 code), page (optional), region (optional ISO 3166-1 code). Output: JSON with paginated review results. Purpose: Access public opinions and critiques for sentiment analysis by AI agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoISO 639-1 code (e.g., en-US)
movie_idYesTMDB Movie ID
pageNoPage number
regionNoISO 3166-1 region code (e.g., US)

TDQS

B3.4/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 burden of behavioral disclosure. It mentions the output is 'JSON with paginated review results,' which adds useful context about format and pagination. However, it lacks details on rate limits, authentication needs, error handling, or whether this is a read-only operation (implied by 'retrieves' but not explicit). The description doesn't contradict annotations, but could be more comprehensive.

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 appropriately sized with three sentences that cover purpose, input, output, and usage context. It's front-loaded with the core function, and each sentence adds value without redundancy. However, the input listing could be more integrated into the flow rather than as a separate clause.

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?

Given no annotations and no output schema, the description provides basic context: purpose, parameters, and output format. It mentions pagination, which is helpful. However, for a tool with 4 parameters and complex sibling tools, it lacks details on error cases, example usage, or deeper behavioral traits (e.g., data freshness, limits). This makes it adequate but with clear gaps for an AI agent.

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?

The description lists all parameters and their types (e.g., 'movie_id (required TMDB ID)'), but the input schema already has 100% coverage with clear descriptions (e.g., 'ISO 639-1 code'). The description adds minimal value beyond the schema, such as noting 'movie_id' is required, which is also in the schema. Baseline is 3 since the schema does the heavy lifting.

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 clearly states the tool's purpose: 'Retrieves user reviews and ratings for a movie.' It specifies the resource (movie reviews/ratings) and verb (retrieves), making it easy to understand. However, it doesn't explicitly differentiate from siblings like 'get_tmdb_details' or 'search_tmdb_movies' which might also return movie-related data, though the focus on reviews is implied.

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?

The description provides some usage context by stating the purpose is for 'sentiment analysis by AI agents,' which implies when to use it. However, it doesn't explicitly mention when not to use it or name alternatives among the many sibling tools (e.g., vs. 'get_tmdb_details' for general info). This leaves room for ambiguity in tool selection.

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

person_detailsA

Retrieves detailed information about a person (actor, director, etc.) from TMDB. Input: person_id (required TMDB ID), language (optional ISO 639-1 code), append (optional comma-separated fields like images,combined_credits,external_ids). Output: JSON with biography, birth/death info, and appended data. Purpose: Get comprehensive person profiles for AI-driven content analysis or recommendations.

ParametersJSON Schema
NameRequiredDescriptionDefault
appendNoComma-separated append_to_response (e.g., images,combined_credits,external_ids)
languageNoISO 639-1 code (e.g., en-US)
person_idYesTMDB Person ID

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses the read-only nature ('Retrieves'), output format ('JSON with biography, birth/death info, and appended data'), and data source ('TMDB'), but doesn't mention rate limits, authentication requirements, error conditions, or pagination behavior. For a tool with no annotation coverage, this provides basic behavioral context but lacks important operational details.

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 efficiently structured in two sentences: the first covers the core functionality and parameters, the second states the output and purpose. Every sentence adds value, though the parameter listing in parentheses is somewhat redundant with the schema. It's appropriately sized and front-loaded with the main action.

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?

Given 3 parameters with 100% schema coverage but no annotations and no output schema, the description provides adequate but incomplete context. It covers the basic purpose and output format but lacks details about error handling, rate limits, authentication, and specific behavioral constraints. For a read-only retrieval tool, this is minimally viable but could be more complete.

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 schema already fully documents all three parameters. The description adds minimal value beyond the schema - it mentions the parameters in parentheses but doesn't provide additional semantic context about how they affect the retrieval or what the 'append' fields actually contain. Baseline 3 is appropriate when the schema does the heavy lifting.

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 clearly states the specific action ('Retrieves detailed information'), target resource ('about a person from TMDB'), and scope ('comprehensive person profiles'). It distinguishes this tool from siblings like search_tmdb_person (which likely searches rather than retrieves details) and movie_credits/tv_credits (which focus on credits rather than full profiles).

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?

The description implies usage context ('for AI-driven content analysis or recommendations') but doesn't explicitly state when to use this tool versus alternatives. It doesn't mention when not to use it or directly compare to sibling tools like get_tmdb_details (which might handle other entity types) or search_tmdb_person (which might be for finding people rather than getting their full details).

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

search_keywordsB

Searches for TMDB keywords (tags) by text query. Input: query (required search string), page (optional page number). Output: JSON with paginated keyword results. Purpose: Discover keywords for content categorization and search optimization by AI agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
queryYesSearch query for keywords

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It mentions the output format ('JSON with paginated keyword results') and purpose, but lacks details on behavioral traits such as rate limits, authentication needs, error handling, or what 'paginated' entails (e.g., page size). This is a significant gap for a search tool with no annotation coverage.

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 appropriately sized with three sentences that cover action, input, output, and purpose. It is front-loaded with the core functionality, though the last sentence could be more tightly integrated. There is no wasted text, but minor improvements in flow are possible.

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?

Given no annotations and no output schema, the description provides basic context but is incomplete. It covers the purpose and output format at a high level, but lacks details on behavioral aspects and does not fully compensate for the missing structured data, leaving gaps for effective tool invocation.

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 schema already documents both parameters ('query' and 'page'). The description adds minimal value by restating the input and output in general terms, but does not provide additional semantics beyond what the schema offers, such as query formatting examples or page behavior details.

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 clearly states the verb ('Searches for') and resource ('TMDB keywords (tags)'), specifies the domain ('by text query'), and distinguishes from siblings by focusing on keywords rather than movies, TV shows, or people. It also mentions the purpose for AI agents, which adds context.

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?

The description implies usage for 'content categorization and search optimization by AI agents,' which provides some context, but it does not explicitly state when to use this tool versus alternatives like 'search_tmdb' or other keyword-related tools. No exclusions or clear alternatives are mentioned.

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

search_tmdbA

Performs a multi-type search across TMDB for movies, TV shows, and people. Input: query (required search string), page (optional 1-1000), language (optional ISO 639-1), include_adult (optional boolean), region (optional ISO 3166-1). Output: JSON with paginated normalized results (id, media_type, title, date, etc.). Purpose: Enable comprehensive content discovery for AI-driven queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_adultNoInclude adult results
languageNoISO 639-1 code (e.g., en-US)
pageNoPage number (1-1000)
queryYesSearch text query
regionNoISO 3166-1 code (e.g., US)

TDQS

A3.8/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 burden of behavioral disclosure. It mentions the output format ('JSON with paginated normalized results') and that it's for 'AI-driven queries,' but doesn't cover important behavioral aspects like rate limits, authentication requirements, error handling, or what 'normalized results' specifically means. The description adds some value but leaves significant gaps.

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 efficiently structured with three sentences: what it does, input/output details, and purpose. It's appropriately sized and front-loaded with the core functionality. The parameter listing could be slightly more concise, but overall it avoids unnecessary verbosity.

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?

Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and parameters but lacks details about the response structure (beyond 'JSON with paginated normalized results'), error conditions, rate limits, or authentication requirements that would help an agent use it effectively.

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 schema already fully documents all 5 parameters. The description lists the parameters but adds minimal semantic value beyond what's in the schema (e.g., 'optional 1-1000' for page is already in schema with minimum constraint). It doesn't explain relationships between parameters or provide usage examples.

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 clearly states the tool performs a 'multi-type search across TMDB for movies, TV shows, and people' with the purpose of 'enabling comprehensive content discovery.' It specifically distinguishes itself from sibling tools like search_tmdb_movies, search_tmdb_tv, and search_tmdb_person by covering all three media types in one operation.

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 description provides clear context about when to use this tool: for 'comprehensive content discovery' across multiple media types. However, it doesn't explicitly state when NOT to use it or name specific alternatives among the many sibling tools (e.g., when you only need movies, use search_tmdb_movies instead).

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

search_tmdb_moviesA

Searches specifically for movies in TMDB. Input: query (required search string), year (optional release year filter), page (optional), language (optional ISO 639-1), include_adult (optional boolean), region (optional ISO 3166-1). Output: JSON with paginated normalized results. Purpose: Targeted movie discovery for AI-driven content queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_adultNoInclude adult results
languageNoISO 639-1 code (e.g., en-US)
pageNoPage number
queryYesSearch query for movies
regionNoISO 3166-1 region code (e.g., US)
yearNoFilter by release year

TDQS

A3.6/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 burden. It discloses that output is 'JSON with paginated normalized results,' which adds behavioral context beyond the input schema. However, it doesn't cover aspects like rate limits, authentication needs, error handling, or what 'normalized' entails, leaving gaps for a search tool.

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 appropriately sized and front-loaded, starting with the core purpose. The parameter list is concise but could be integrated more smoothly; the final sentence adds value by stating the tool's purpose clearly. Minimal waste, though slightly fragmented.

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?

Given no annotations and no output schema, the description partially compensates by mentioning output format and pagination. However, for a search tool with 6 parameters and rich sibling tools, it lacks details on result structure, error cases, or integration context, making it adequate but with clear gaps.

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 schema already documents all parameters thoroughly. The description lists parameters but doesn't add meaningful semantics beyond what's in the schema (e.g., it repeats 'optional' without extra context). Baseline 3 is appropriate as the schema does the heavy lifting.

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 clearly states the tool's purpose with a specific verb ('Searches') and resource ('movies in TMDB'), and distinguishes it from siblings by specifying 'specifically for movies' (vs. search_tmdb, search_tmdb_person, search_tmdb_tv). The final sentence reinforces the targeted use case.

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?

The description implies usage through 'Targeted movie discovery for AI-driven content queries,' suggesting it's for movie-specific searches. However, it lacks explicit guidance on when to use this tool versus alternatives like search_tmdb (general search) or discover_movies (non-query-based discovery), and doesn't mention exclusions or prerequisites.

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

search_tmdb_personA

Searches for people (actors, directors, etc.) in TMDB. Input: query (required search string), page (optional), language (optional ISO 639-1), include_adult (optional boolean), region (optional ISO 3166-1). Output: JSON with paginated person results. Purpose: Discover individuals for cast/crew analysis by AI agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
include_adultNoInclude adult results
languageNoISO 639-1 code (e.g., en-US)
pageNoPage number
queryYesSearch query for people
regionNoISO 3166-1 region code (e.g., US)

TDQS

A3.8/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 burden of behavioral disclosure. It mentions the output format ('JSON with paginated person results'), which is helpful, but does not cover other behavioral aspects such as rate limits, authentication needs, error handling, or what 'include_adult' entails. The description adds some value but leaves gaps for a search tool.

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 appropriately sized and front-loaded with the core functionality. However, the parameter listing in the description is somewhat redundant given the schema coverage, and the purpose statement could be integrated more seamlessly. It's efficient but has minor structural inefficiencies.

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?

Given the complexity (a search tool with 5 parameters) and no annotations or output schema, the description is moderately complete. It covers purpose, input parameters, and output format, but lacks details on behavioral traits like pagination limits, error cases, or API constraints, which would be helpful for an AI agent.

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 schema already documents all parameters thoroughly. The description lists parameters but does not add meaningful semantics beyond what the schema provides (e.g., it repeats parameter names without extra context). Baseline 3 is appropriate as the schema does the heavy lifting.

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 clearly states the verb ('Searches for') and resource ('people (actors, directors, etc.) in TMDB'), and explicitly distinguishes this tool from siblings by specifying its focus on people rather than movies, TV shows, or other entities. The purpose statement at the end reinforces its role for 'cast/crew analysis by AI agents.'

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 description implies usage context ('Discover individuals for cast/crew analysis') but does not explicitly state when to use this tool versus alternatives like 'person_details' or 'trending_people.' It provides some guidance through the purpose statement but lacks explicit exclusions or named alternatives.

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

search_tmdb_tvA

Searches specifically for TV shows in TMDB. Input: query (required search string), page (optional), language (optional ISO 639-1), first_air_date_year (optional year filter), include_adult (optional boolean). Output: JSON with paginated normalized results. Purpose: Targeted TV show discovery for AI-driven content queries.

ParametersJSON Schema
NameRequiredDescriptionDefault
first_air_date_yearNoFilter by first air date year
include_adultNoInclude adult results
languageNoISO 639-1 code (e.g., en-US)
pageNoPage number
queryYesSearch query for TV shows

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that output is 'JSON with paginated normalized results', which adds useful behavioral context beyond the input schema. However, it lacks details on rate limits, authentication needs, or error handling that would be helpful for a search tool.

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 appropriately sized and front-loaded with the core purpose. However, the second sentence listing all parameters is somewhat redundant with the schema and could be more concise, though it does not severely impact readability.

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?

Given no annotations and no output schema, the description provides basic purpose and output format, but lacks completeness for a search tool with 5 parameters. It does not cover error cases, rate limits, or example usage, which would enhance contextual understanding for an AI agent.

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 schema already documents all parameters thoroughly. The description lists parameters but does not add significant meaning beyond what the schema provides, such as explaining how 'first_air_date_year' interacts with 'query' or default behaviors. Baseline 3 is appropriate given high schema coverage.

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 clearly states the tool's purpose with a specific verb ('searches') and resource ('TV shows in TMDB'), distinguishing it from siblings like search_tmdb_movies and search_tmdb_person. It explicitly mentions 'targeted TV show discovery' which reinforces the specialization.

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?

The description implies usage for 'AI-driven content queries' and TV show discovery, but does not explicitly state when to use this tool versus alternatives like discover_tv or trending_tv. No exclusions or specific contexts are provided beyond the general purpose.

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

tv_airing_todayA

Retrieves TV series airing today. Input: page (optional), language (optional ISO 639-1), timezone (optional). Output: JSON with paginated results. Purpose: Discover TV shows currently airing for timely recommendations by AI agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNo
pageNo
timezoneNo

TDQS

A3.7/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 burden of behavioral disclosure. It mentions the output format ('JSON with paginated results'), which adds useful context beyond the input schema. However, it lacks details on rate limits, authentication needs, or error handling, leaving gaps in behavioral transparency for a tool with no annotation coverage.

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 appropriately sized and front-loaded, starting with the core function and following with input/output details and purpose. Every sentence adds value, but the structure could be slightly improved by separating input and output details more clearly, though it remains efficient with minimal waste.

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?

Given the tool's moderate complexity (3 optional parameters, no annotations, no output schema), the description is partially complete. It covers the purpose, input parameters, and output format, but lacks details on behavioral aspects like pagination handling or error cases, making it adequate but with clear gaps for a tool with no structured support.

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

Parameters2/5

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

The description lists the parameters ('page (optional), language (optional ISO 639-1), timezone (optional)'), but with 0% schema description coverage, it does not add sufficient meaning beyond the schema. It specifies the language format ('ISO 639-1'), which is helpful, but fails to explain the purpose or constraints of 'page' and 'timezone', not fully compensating for the low schema coverage.

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 clearly states the specific action ('Retrieves TV series airing today') and resource ('TV series'), distinguishing it from siblings like 'discover_tv' or 'trending_tv' by focusing on today's airings. It explicitly mentions the purpose ('Discover TV shows currently airing for timely recommendations by AI agents'), making the tool's function unambiguous.

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 description provides clear context for usage ('Discover TV shows currently airing for timely recommendations by AI agents'), indicating when to use this tool for real-time TV discovery. However, it does not explicitly state when not to use it or name alternatives among siblings, such as 'trending_tv' for broader trends, leaving some guidance implicit.

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

tv_creditsB

Fetches cast and crew credits for a TV show. Input: tv_id (required TMDB ID), language (optional ISO 639-1). Output: JSON with cast and crew details. Purpose: Retrieve detailed personnel information for TV show analysis and recommendations by AI agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNoISO 639-1 code (e.g., en-US)
tv_idYesTMDB TV Show ID

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states the tool fetches data and outputs JSON, but does not disclose behavioral traits such as rate limits, authentication needs, error handling, or whether it's a read-only operation (implied by 'fetches' but not explicit). For a tool with no annotations, this leaves significant gaps in understanding its behavior.

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 appropriately sized with three sentences that are front-loaded with the core functionality. However, the last sentence ('Purpose: Retrieve detailed personnel information...') could be integrated more smoothly, and some redundancy exists (e.g., restating input/output details). Overall, it's efficient but not perfectly structured.

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?

Given no annotations, no output schema, and 100% schema coverage, the description is moderately complete. It covers the basic purpose and parameters but lacks details on behavioral aspects (e.g., rate limits, errors) and output structure beyond 'JSON with cast and crew details'. For a tool with no structured output, more context on the return format would be beneficial.

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 schema already documents both parameters (tv_id as TMDB TV Show ID and language as ISO 639-1 code). The description adds minimal value by restating that tv_id is required and language is optional, but does not provide additional meaning beyond what the schema offers, such as examples of language codes or details on tv_id sourcing.

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 clearly states the specific action ('Fetches cast and crew credits'), resource ('for a TV show'), and distinguishes it from siblings like 'movie_credits' (for movies) and 'person_details' (for individuals). It explicitly mentions the purpose for AI agents, making it highly specific and differentiated.

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?

The description implies usage for 'TV show analysis and recommendations' but does not explicitly state when to use this tool versus alternatives like 'get_tmdb_details' (which might include credits) or 'person_details' (for individual credits). It provides some context but lacks explicit guidance on exclusions or comparisons with sibling tools.

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

tv_top_ratedA

Retrieves top-rated TV series. Input: page (optional), language (optional ISO 639-1), region (optional ISO 3166-1). Output: JSON with paginated results. Purpose: Access highly rated TV shows for quality content recommendations by AI agents.

ParametersJSON Schema
NameRequiredDescriptionDefault
languageNo
pageNo
regionNo

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'paginated results' and 'JSON output', which adds some context, but fails to disclose critical details such as rate limits, authentication requirements, error handling, or what specific data fields are included in the results. For a read operation with no annotation coverage, this leaves significant gaps.

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 appropriately sized and front-loaded, starting with the core purpose. The second sentence efficiently covers parameters and output, and the third sentence reinforces usage context. While concise, the final sentence could be integrated more seamlessly, but overall, there is minimal waste.

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?

Given the tool's moderate complexity (3 optional parameters, no output schema, no annotations), the description is adequate but incomplete. It covers purpose, parameters, and output format, but lacks details on behavioral aspects like rate limits or error handling. Without annotations or output schema, more context on result structure and operational constraints would be beneficial.

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?

The description lists all three parameters (page, language, region) and provides some semantics: 'page (optional)', 'language (optional ISO 639-1)', 'region (optional ISO 3166-1)'. This adds meaning beyond the input schema, which has 0% description coverage. However, it does not explain how these parameters affect the results (e.g., region filtering content availability), leaving room for improvement.

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 clearly states the verb ('Retrieves') and resource ('top-rated TV series'), making the purpose specific and unambiguous. It distinguishes this tool from siblings like 'trending_tv' or 'tv_popular' by focusing on 'top-rated' content, which implies a quality-based ranking rather than popularity or recency.

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 description provides clear context for usage ('Access highly rated TV shows for quality content recommendations by AI agents'), indicating this tool is for recommendation scenarios. However, it does not explicitly state when to use alternatives like 'tv_popular' or 'trending_tv', nor does it mention any exclusions or prerequisites for use.

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

TDQS

A3.6/5.0
Disambiguation4/5

Most tools have distinct purposes, such as discover_movies vs. search_tmdb_movies, but some overlap exists, like discover_by_provider and get_watch_providers, which could cause confusion. However, descriptions help clarify their specific focuses, and the majority are well-differentiated by resource type (e.g., movies, TV, people) and action.

Naming Consistency5/5

Tool names follow a highly consistent snake_case pattern with clear verb_noun structures, such as discover_movies, get_tmdb_details, and search_tmdb. All tools adhere to this convention, making them predictable and easy to understand across the set.

Tool Count3/5

With 23 tools, the count is borderline high for a TMDB API server, as it includes many specialized tools like multiple trending and search variants. While comprehensive, it may feel heavy and could be streamlined without losing core functionality, such as by merging similar tools like trending_all and individual trending types.

Completeness5/5

The tool set provides extensive coverage for the TMDB domain, including discovery, search, details, credits, images, reviews, and trending across movies, TV shows, and people. It supports full CRUD-like operations where applicable (e.g., get details, search) and offers advanced filtering, leaving no obvious gaps for AI-driven content analysis and recommendations.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that wraps The Movie Database (TMDB) API, enabling search for movies and TV shows, retrieval of movie details, recommendations, similar movies, trending content, streaming providers, and movie discovery.
    8
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that wraps the TMDB API, enabling search of movies and TV shows, retrieval of details, trending titles, recommendations, and streaming provider information.
    8
  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that allows LLMs to search for movies and TV shows using the The Movie Database (TMDB) API.
    7
    18
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A robust MCP server that wraps The Movie Database API, enabling LLMs to search movies, get details, popular movies, and recommendations.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/drakonkat/wizzy-mcp-tmdb'

If you have feedback or need assistance with the MCP directory API, please join our Discord server