wizzy-mcp-tmdb
Provides tools to search and retrieve information from The Movie Database (TMDB), including movie and TV show searches, detailed content information, and trending content across all media types.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@wizzy-mcp-tmdbsearch for movies starring Tom Hanks"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
wizzy-mcp-tmdb
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_tmdbtool.Get Details: Fetch detailed information for specific items using the
get_tmdb_detailstool.Trending Content: Retrieve trending content across all media types with the
trending_alltool.
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
Clone the repository and navigate to the project directory.
Install dependencies:
npm installSet 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 startThe 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"
}
}
}Get Trending Content
// 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:
Installa il pacchetto npm se necessario:
npm install -g wizzy-mcp-tmdbCrea o aggiorna il file
mcp.jsonnel 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_TOKENpuò 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 testFor watch mode:
npm run test:watchProject 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.jsonContributing
We welcome contributions! Please follow these guidelines:
Fork the repository.
Create a feature branch.
Make your changes and add tests.
Ensure all tests pass.
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 toolsdiscover_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.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ISO 639-1 language (e.g., en) | |
| page | No | Page number | |
| sort_by | No | Sort order (e.g., release_date.desc, first_air_date.desc, popularity.desc) | |
| type | No | Media type to discover: tv (default) or movie | |
| watch_region | Yes | ISO 3166-1 region code (e.g., IS) | |
| with_watch_providers | Yes | Provider ID(s), comma-separated (e.g., '8'), from service get_watch_providers |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| certification | No | Filter by certification (e.g., PG-13) | |
| certification.gte | No | Certification greater than or equal to | |
| certification.lte | No | Certification less than or equal to | |
| certification_country | No | Certification country (ISO 3166-1) | |
| include_adult | No | Include adult titles (default false) | |
| include_video | No | Include items with videos | |
| language | No | ISO 639-1 language (e.g., en-US) | |
| page | No | Page number (1-500) | |
| primary_release_date.gte | No | Primary release date from (YYYY-MM-DD) | |
| primary_release_date.lte | No | Primary release date to (YYYY-MM-DD) | |
| primary_release_year | No | Primary release year | |
| region | No | ISO 3166-1 region (e.g., US) | |
| release_date.gte | No | Release date from (YYYY-MM-DD) | |
| release_date.lte | No | Release date to (YYYY-MM-DD) | |
| screened_theatrically | No | Filter for movies screened theatrically | |
| sort_by | No | Sort by (e.g., popularity.desc, release_date.desc, vote_average.desc, primary_release_date.desc, revenue.desc, original_title.asc) | |
| vote_average.gte | No | Minimum vote average (0-10) | |
| vote_average.lte | No | Maximum vote average (0-10) | |
| vote_count.gte | No | Minimum vote count | |
| vote_count.lte | No | Maximum vote count | |
| watch_region | No | ISO 3166-1 region for watch providers | |
| with_cast | No | Comma-separated person IDs | |
| with_companies | No | Comma-separated company IDs | |
| with_crew | No | Comma-separated person IDs | |
| with_genres | No | Comma-separated genre IDs | |
| with_keywords | No | Comma-separated keyword IDs | |
| with_original_language | No | Original language (ISO 639-1) | |
| with_people | No | Comma-separated person IDs | |
| with_release_type | No | Comma-separated release types (e.g., 2|3). TMDB expects bitmask but pipe is accepted by API | |
| with_release_type.gte | No | Min release type mask (advanced) | |
| with_release_type.lte | No | Max release type mask (advanced) | |
| with_runtime.gte | No | Runtime min (minutes) | |
| with_runtime.lte | No | Runtime max (minutes) | |
| with_status | No | Comma-separated status (Rumored|Planned|In Production|Post Production|Released|Canceled) | |
| with_type | No | Comma-separated movie types (Documentary, etc.) | |
| with_watch_monetization_types | No | Comma-separated monetization types (flatrate|free|ads|rent|buy) | |
| with_watch_providers | No | Comma-separated watch provider IDs | |
| without_companies | No | Comma-separated company IDs to exclude | |
| without_genres | No | Comma-separated genre IDs to exclude | |
| without_keywords | No | Comma-separated keyword IDs to exclude |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| air_date.gte | No | Air date from (YYYY-MM-DD) | |
| air_date.lte | No | Air date to (YYYY-MM-DD) | |
| first_air_date.gte | No | First air date from (YYYY-MM-DD) | |
| first_air_date.lte | No | First air date to (YYYY-MM-DD) | |
| first_air_date_year | No | First air date year | |
| include_null_first_air_dates | No | Include shows with null first air dates | |
| language | No | ISO 639-1 language (e.g., en-US) | |
| page | No | Page number (1-500) | |
| screened_theatrically | No | Not applicable to TV but accepted safely | |
| sort_by | No | Sort by (e.g., popularity.desc, first_air_date.desc, vote_average.desc) | |
| timezone | No | Timezone for air date lookups (e.g., America/New_York) | |
| vote_average.gte | No | Minimum vote average | |
| vote_average.lte | No | Maximum vote average | |
| vote_count.gte | No | Minimum vote count | |
| vote_count.lte | No | Maximum vote count | |
| watch_region | No | ISO 3166-1 region for watch providers | |
| with_companies | No | Comma-separated company IDs | |
| with_genres | No | Comma-separated genre IDs | |
| with_keywords | No | Comma-separated keyword IDs | |
| with_name_translation | No | ISO 639-1 language to filter by available translations | |
| with_networks | No | Comma-separated network IDs | |
| with_original_language | No | Original language (ISO 639-1) | |
| with_overview_translation | No | ISO 639-1 language to filter overview translations | |
| with_runtime.gte | No | Runtime min (minutes) | |
| with_runtime.lte | No | Runtime max (minutes) | |
| with_status | No | Comma-separated production status (Returning Series|Planned|In Production|Ended|Canceled|Pilot) | |
| with_type | No | Comma-separated TV types (e.g., Documentary, News) | |
| with_watch_monetization_types | No | Comma-separated monetization types (flatrate|free|ads|rent|buy) | |
| with_watch_providers | No | Comma-separated watch provider IDs | |
| without_genres | No | Comma-separated genre IDs to exclude | |
| without_keywords | No | Comma-separated keyword IDs to exclude |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| append | No | Comma-separated append_to_response (e.g., credits,images) | |
| id | Yes | TMDB ID | |
| language | No | ISO 639-1 code (e.g., en-US) | |
| type | Yes | The TMDB media type |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ISO 639-1 language (e.g., en) | |
| type | Yes | Media type for providers endpoint | |
| watch_region | Yes | ISO 3166-1 region code (e.g., IT) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ISO 639-1 code (e.g., en-US) | |
| movie_id | Yes | TMDB Movie ID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| include_image_language | No | Filter image languages (comma-separated ISO 639-1 codes or 'null') | |
| language | No | ISO 639-1 language (e.g., en-US) | |
| movie_id | Yes | TMDB Movie ID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ISO 639-1 language (e.g., en-US) | |
| movie_id | Yes | TMDB Movie ID | |
| page | No | Page number |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ISO 639-1 code (e.g., en-US) | |
| movie_id | Yes | TMDB Movie ID | |
| page | No | Page number | |
| region | No | ISO 3166-1 region code (e.g., US) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| append | No | Comma-separated append_to_response (e.g., images,combined_credits,external_ids) | |
| language | No | ISO 639-1 code (e.g., en-US) | |
| person_id | Yes | TMDB Person ID |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number | |
| query | Yes | Search query for keywords |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| include_adult | No | Include adult results | |
| language | No | ISO 639-1 code (e.g., en-US) | |
| page | No | Page number (1-1000) | |
| query | Yes | Search text query | |
| region | No | ISO 3166-1 code (e.g., US) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| include_adult | No | Include adult results | |
| language | No | ISO 639-1 code (e.g., en-US) | |
| page | No | Page number | |
| query | Yes | Search query for movies | |
| region | No | ISO 3166-1 region code (e.g., US) | |
| year | No | Filter by release year |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| include_adult | No | Include adult results | |
| language | No | ISO 639-1 code (e.g., en-US) | |
| page | No | Page number | |
| query | Yes | Search query for people | |
| region | No | ISO 3166-1 region code (e.g., US) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| first_air_date_year | No | Filter by first air date year | |
| include_adult | No | Include adult results | |
| language | No | ISO 639-1 code (e.g., en-US) | |
| page | No | Page number | |
| query | Yes | Search query for TV shows |
TDQS
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.
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.
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.
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.
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.
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.
trending_allA
Retrieves trending content across movies, TV shows, and people. Input: time_window (required: day|week), page (optional), language (optional ISO 639-1), region (optional ISO 3166-1), include_adult (optional boolean). Output: JSON with paginated trending results. Purpose: Discover currently popular media for trend analysis and recommendations by AI agents.
| Name | Required | Description | Default |
|---|---|---|---|
| include_adult | No | ||
| language | No | ||
| page | No | ||
| region | No | ||
| time_window | Yes | Time window |
TDQS
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 the output is JSON with paginated results, which is useful behavioral context. However, it lacks details on rate limits, authentication needs, error handling, or specific data formats in the response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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 ends with the tool's purpose. Every sentence adds value with no wasted words, making it efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does a good job covering inputs and output format. However, for a tool with 5 parameters and paginated results, it could benefit from more details on response structure or error cases to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (20%), but the description compensates by listing all parameters with brief semantics (e.g., 'time_window (required: day|week)', 'language (optional ISO 639-1)'), adding value beyond the sparse schema. It doesn't fully explain each parameter's effect, but provides enough context for basic use.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('Retrieves') and resource ('trending content across movies, TV shows, and people'), and distinguishes it from siblings like 'trending_movies' or 'trending_tv' by specifying it covers multiple media types. It also explicitly mentions the purpose for AI agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 ('Discover currently popular media for trend analysis and recommendations'), but does not explicitly state when not to use it or name alternatives among the many sibling tools (e.g., 'trending_movies' for movies only).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trending_moviesA
Retrieves trending movies. Input: time_window (required: day|week), page (optional), language (optional ISO 639-1), region (optional ISO 3166-1), include_adult (optional boolean). Output: JSON with paginated trending results. Purpose: Discover currently popular movies for trend analysis by AI agents.
| Name | Required | Description | Default |
|---|---|---|---|
| include_adult | No | ||
| language | No | ||
| page | No | ||
| region | No | ||
| time_window | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses that output is 'JSON with paginated trending results,' adding useful context beyond basic retrieval, but lacks details on rate limits, authentication needs, or error handling, leaving 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by parameter details and output, with no wasted sentences. It could be slightly more structured but remains efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 purpose, parameters, and output format adequately for a retrieval tool, but lacks details on pagination behavior, error cases, or integration with siblings, leaving room for improvement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists all 5 parameters with brief semantics (e.g., 'time_window (required: day|week)'), adding meaning beyond the bare schema, though it could elaborate on defaults or effects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('trending movies'), and distinguishes from siblings by specifying 'for trend analysis by AI agents' and focusing on current popularity, unlike discovery or search tools in the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage for 'currently popular movies for trend analysis,' which gives context, but does not explicitly state when to use this vs. alternatives like trending_all, trending_tv, or discover_movies, missing explicit exclusions or comparisons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trending_peopleA
Retrieves trending people (actors, directors, etc.). Input: time_window (required: day|week), page (optional), language (optional ISO 639-1). Output: JSON with paginated trending results. Purpose: Discover currently popular people for trend analysis by AI agents.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ||
| page | No | ||
| time_window | Yes |
TDQS
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 the output is 'JSON with paginated trending results', which adds useful behavioral context beyond the input schema. However, it doesn't cover aspects like rate limits, authentication needs, error handling, or whether this is a read-only operation (though 'retrieves' implies it). Some key behavioral traits are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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. Every sentence adds value: the first states what it does, the second explains parameters, the third describes output, and the fourth clarifies the use case. No wasted words, and it's appropriately sized for a tool with 3 parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, 0% schema coverage, no annotations, and no output schema, the description is moderately complete. It covers input semantics and output format but lacks details on error cases, rate limits, or example responses. For a tool with no structured support, it should do more to compensate, especially regarding behavioral aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It adds meaning by explaining that time_window is for 'day|week' (matching the enum), page is for pagination, and language uses ISO 639-1 format. This clarifies parameter purposes beyond the bare schema, though it doesn't detail default values or constraints like page minimum. Good compensation for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'trending people (actors, directors, etc.)', making the purpose specific. It distinguishes from siblings like trending_movies and trending_tv by focusing on people, though it doesn't explicitly contrast with trending_all which might include people. The purpose statement at the end reinforces the use case for AI agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for 'trend analysis' and 'discover currently popular people', providing some context. However, it lacks explicit guidance on when to use this tool versus alternatives like trending_all, person_details, or search_tmdb_person, and doesn't mention prerequisites or exclusions. The guidance is present but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trending_tvA
Retrieves trending TV shows. Input: time_window (required: day|week), page (optional), language (optional ISO 639-1). Output: JSON with paginated trending results. Purpose: Discover currently popular TV shows for trend analysis by AI agents.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ||
| page | No | ||
| time_window | Yes |
TDQS
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 key behavioral traits: it retrieves data (implying read-only), specifies pagination ('paginated trending results'), and mentions the output format ('JSON'). However, it lacks details on rate limits, authentication needs, or error handling, which are common gaps for such tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core function, followed by input/output details and purpose, all in three concise sentences. Each sentence adds value without redundancy, making it efficient and easy to parse for an AI agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 parameters, no output schema, no annotations), the description is fairly complete: it covers purpose, parameters, output format, and usage intent. However, it could improve by addressing sibling tool differentiation more explicitly and providing more behavioral details like rate limits or error cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context beyond the input schema: it explains that time_window is required with options 'day|week', page is optional for pagination, and language uses ISO 639-1. Since schema description coverage is 0%, this compensates well by clarifying parameter purposes and constraints, though it doesn't cover all nuances like page defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Retrieves trending TV shows') and resource ('TV shows'), distinguishing it from siblings like trending_movies and trending_people by specifying the media type. It also mentions the purpose ('Discover currently popular TV shows for trend analysis by AI agents'), which adds context beyond the basic function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for 'trend analysis by AI agents' and 'currently popular TV shows,' suggesting it's for real-time or recent trends. However, it does not explicitly state when to use this tool versus alternatives like trending_all, trending_movies, or discover_tv, nor does it provide exclusions or prerequisites, leaving some ambiguity.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ||
| page | No | ||
| timezone | No |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ISO 639-1 code (e.g., en-US) | |
| tv_id | Yes | TMDB TV Show ID |
TDQS
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.
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.
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.
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.
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.
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_popularC
Retrieves popular TV series. Input: page (optional), language (optional ISO 639-1), region (optional ISO 3166-1). Output: JSON with paginated results. Purpose: Access widely popular TV shows for general recommendations by AI agents.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ||
| page | No | ||
| region | No |
TDQS
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 results' and 'popular TV series' but lacks critical details like rate limits, authentication requirements, data freshness, or what constitutes 'popular' (e.g., current popularity vs. all-time). For a read operation with zero 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured in three sentences: purpose, input parameters, and output format. Each sentence adds value without redundancy. It's appropriately sized for a simple retrieval tool, though the third sentence about 'general recommendations' could be considered slightly extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (3 optional parameters, no output schema, no annotations), the description is moderately complete. It covers basic purpose, parameters, and output format but lacks behavioral details and sibling differentiation. For a read-only tool with simple inputs, it's adequate but has clear gaps in usage guidance and transparency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantic context: language uses ISO 639-1, region uses ISO 3166-1, and page is for pagination. However, with 0% schema description coverage, it doesn't fully compensate by explaining parameter interactions, default values, or constraints beyond the basic schema types. The added value is moderate but incomplete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('popular TV series'), making the purpose unambiguous. It distinguishes from siblings by specifying 'popular' shows rather than trending, airing today, or top-rated content. However, it doesn't explicitly contrast with 'discover_tv' or 'trending_tv', leaving some sibling differentiation incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance, stating only that it's for 'general recommendations by AI agents.' It doesn't specify when to use this tool versus alternatives like 'trending_tv', 'tv_top_rated', or 'discover_tv', nor does it mention any prerequisites or exclusions. No explicit when/when-not instructions are provided.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ||
| page | No | ||
| region | No |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Unlock a world of television with the TV Maze MCP server. Effortlessly search for shows by name or
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
An MCP server that integrates with Discord to provide AI-powered features.
An MCP server that provides tools to discover and retrieve podcast episodes transcripts.
Related MCP Servers
- FlicenseAqualityDmaintenanceAn 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
- FlicenseAqualityDmaintenanceAn 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
- AlicenseAqualityDmaintenanceA Model Context Protocol (MCP) server that allows LLMs to search for movies and TV shows using the The Movie Database (TMDB) API.7181MIT
- FlicenseNot gradedqualityDmaintenanceA robust MCP server that wraps The Movie Database API, enabling LLMs to search movies, get details, popular movies, and recommendations.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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