TMDB MCP Server
Provides access to TMDB's movie and TV show database, enabling search, detailed information retrieval, discovery with advanced filters, recommendations, cast and crew details, and trending content for movies, TV shows, and entertainment industry professionals.
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., "@TMDB MCP Serversearch for Christopher Nolan movies"
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.
TMDB MCP Server
A Model Context Protocol (MCP) server that provides access to The Movie Database (TMDB) API. This server enables Claude and other MCP clients to search for movies, TV shows, and people, as well as get detailed information and recommendations.
π Now available on the Official MCP Registry
Quick Start
Get started in seconds with npm:
# Install globally
npm install -g tmdb-mcp-server
# Or use with npx (no installation needed)
npx tmdb-mcp-serverGet your free TMDB API token: https://www.themoviedb.org/settings/api
Related MCP server: TMDB MCP Server
Features
π¬ Movie Tools
search_movies - Search for movies by title
get_movie_details - Get detailed information about a specific movie (budget, revenue, runtime, genres, etc.)
discover_movies - Discover movies with advanced filters (genre, language, year range, rating, sorting)
get_recommendations - Get movie recommendations based on a specific movie
get_movie_credits - Get cast and crew information for a movie
πΊ TV Show Tools
search_tv_shows - Search for TV shows by name
get_tv_details - Get detailed information about a specific TV show (seasons, episodes, networks, etc.)
discover_tv_shows - Discover TV shows with advanced filters (genre, language, year, rating, sorting)
get_tv_recommendations - Get TV show recommendations based on a specific show
get_tv_credits - Get cast and crew information for a TV show
π₯ People Tools
search_people - Search for actors, directors, and other entertainment industry professionals
get_person_details - Get detailed biographical information about a person
π₯ Trending
get_trending - Get daily or weekly trending movies, TV shows, or people
Installation
Option 1: npm (Recommended)
Install from npm registry:
npm install -g tmdb-mcp-serverThat's it! No build step required.
Option 2: From Source (For Development)
Prerequisites:
Node.js (v18 or higher)
A TMDB API access token (get one free at TMDB)
Steps:
Clone the repository:
git clone https://github.com/tcehjaava/tmdb-mcp-server.git
cd tmdb-mcp-serverInstall dependencies:
npm installCreate a
.envfile with your TMDB access token:
cp .env.example .env
# Edit .env and add your TMDB_ACCESS_TOKENBuild the server:
npm run buildUsage
With Claude Desktop
Add the server to your Claude Desktop configuration:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
If installed via npm:
{
"mcpServers": {
"tmdb": {
"command": "npx",
"args": ["-y", "tmdb-mcp-server"],
"env": {
"TMDB_ACCESS_TOKEN": "your_tmdb_access_token_here"
}
}
}
}If installed from source:
{
"mcpServers": {
"tmdb": {
"command": "node",
"args": ["/absolute/path/to/tmdb-mcp-server/build/index.js"],
"env": {
"TMDB_ACCESS_TOKEN": "your_tmdb_access_token_here"
}
}
}
}With Other MCP Clients
The server runs on stdio by default, making it compatible with any MCP client that supports stdio transport.
Remote Deployment (HTTP Mode)
The server also supports Streamable HTTP transport for remote deployment:
MCP_TRANSPORT=http PORT=3000 node build/index.jsSee TRANSPORT.md for detailed deployment instructions for platforms like Railway.
Development
Local Development
Run the server in watch mode for development:
npm run watchDebugging
Use the MCP Inspector for debugging:
npm run inspectorThe Inspector provides a web interface for testing and debugging MCP tools.
Code Formatting
Format code with Prettier:
npm run formatExample Queries
Here are some example queries you can try with Claude:
"Find Japanese sci-fi movies from 2020 onwards with a rating above 7"
"What are the top trending movies this week?"
"Get me recommendations based on The Matrix"
"Search for Christopher Nolan movies"
"Show me details about the TV show Breaking Bad"
"Find Korean dramas with high ratings"
API Rate Limits
TMDB API has rate limits on their free tier:
50 requests per second
Consider implementing caching for production use
Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
See CONTRIBUTING.md for guidelines.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Built with the Model Context Protocol SDK
Data provided by The Movie Database (TMDB)
This product uses the TMDB API but is not endorsed or certified by TMDB
Links
Available Tools
13 toolsdiscover_moviesA
Discover movies with advanced filters including genre, language, year range, rating, and sorting. Perfect for finding movies that match specific criteria like 'Japanese sci-fi movies from 2020 onwards with rating above 7' or 'Korean dramas with high ratings'.
| Name | Required | Description | Default |
|---|---|---|---|
| with_genres | No | Genre IDs comma-separated (28=Action, 12=Adventure, 16=Animation, 35=Comedy, 80=Crime, 99=Documentary, 18=Drama, 10751=Family, 14=Fantasy, 36=History, 27=Horror, 10402=Music, 9648=Mystery, 10749=Romance, 878=Science Fiction, 10770=TV Movie, 53=Thriller, 10752=War, 37=Western) | |
| with_original_language | No | Filter by original language using ISO 639-1 codes. Single language (e.g., 'ja') or comma-separated for multiple (e.g., 'ja,ko,zh') | |
| min_year | No | Minimum release year (e.g., 2020 for movies from 2020 onwards) | |
| max_year | No | Maximum release year (e.g., 2023 for movies up to 2023) | |
| min_rating | No | Minimum vote average (0-10) | |
| max_rating | No | Maximum vote average (0-10) | |
| min_vote_count | No | Minimum number of votes (helps filter reliable ratings) | |
| sort_by | No | Sort order (popularity.desc, popularity.asc, vote_average.desc, vote_average.asc, release_date.desc, release_date.asc) | |
| page | No | Page number (default: 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. While it mentions filtering capabilities, it doesn't disclose important behavioral traits like pagination behavior (implied by 'page' parameter but not explained), rate limits, authentication requirements, or what happens when no filters are applied. The examples help but don't cover operational aspects.
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: first states the core functionality, second provides concrete usage examples. Every word earns its place with zero waste, and it's appropriately front-loaded with the main purpose.
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 9 parameters with full schema coverage but no annotations or output schema, the description provides adequate purpose and examples but lacks behavioral context needed for a discovery tool. It doesn't explain response format, pagination, or error conditions, leaving gaps despite good parameter documentation elsewhere.
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 9 parameters thoroughly. The description adds minimal value beyond the schema by listing filter categories in general terms but doesn't provide additional semantic context or usage nuances. Baseline 3 is appropriate when 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 as 'Discover movies with advanced filters' and lists specific filter types (genre, language, year range, rating, sorting). It distinguishes from siblings like search_movies (likely keyword-based) and get_movie_details (single movie focus) by emphasizing filtered discovery.
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 ('Perfect for finding movies that match specific criteria') with concrete examples. However, it doesn't explicitly state when NOT to use it or name specific alternatives among siblings (e.g., search_movies vs. discover_movies).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_tv_showsB
Discover TV shows with advanced filters including genre, language, year, rating, and sorting. Perfect for finding shows that match specific criteria like 'Korean dramas from 2023 with rating above 7' or 'Japanese anime shows'.
| Name | Required | Description | Default |
|---|---|---|---|
| with_genres | No | Genre IDs comma-separated (10759=Action & Adventure, 35=Comedy, 18=Drama, 9648=Mystery, 10765=Sci-Fi & Fantasy) | |
| with_original_language | No | Filter by original language using ISO 639-1 codes. Single language (e.g., 'ja') or comma-separated for multiple (e.g., 'ja,ko,zh') | |
| year | No | First air date year filter | |
| min_rating | No | Minimum vote average (0-10) | |
| max_rating | No | Maximum vote average (0-10) | |
| sort_by | No | Sort order (popularity.desc, vote_average.desc, first_air_date.desc, etc.) | |
| page | No | Page number (default: 1) |
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. While it mentions 'advanced filters' and provides examples, it doesn't describe important behavioral aspects like pagination behavior (implied by the 'page' parameter but not explained), rate limits, authentication requirements, or what happens when no results match filters. This leaves significant gaps in understanding how the tool behaves.
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 states the core purpose, the second provides concrete examples. Every sentence adds value, and it's appropriately front-loaded with the main functionality. It could be slightly more concise by removing 'Perfect for' phrasing, but overall it's well-structured without wasted words.
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 7-parameter discovery tool with no annotations and no output schema, the description provides adequate basic context about what the tool does and example use cases. However, it doesn't address important contextual aspects like result format, pagination details, error conditions, or how it differs from sibling discovery tools. Given the tool's complexity and lack of structured metadata, the description should provide more complete operational 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?
The description mentions filter categories (genre, language, year, rating, sorting) that align with the 7 parameters in the schema. Since schema description coverage is 100%, the baseline is 3. The description adds minimal value beyond the schema by providing example use cases, but doesn't explain parameter interactions or provide additional semantic context beyond what's already documented 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 as 'Discover TV shows with advanced filters' and provides specific examples of criteria, which gives a concrete understanding of its function. However, it doesn't explicitly differentiate from sibling tools like 'search_tv_shows' or 'get_tv_recommendations', which likely offer different discovery mechanisms.
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 through examples ('Perfect for finding shows that match specific criteria'), suggesting this tool is for filtered discovery rather than general browsing. However, it doesn't provide explicit guidance on when to use this versus alternatives like 'search_tv_shows' or 'get_tv_recommendations', leaving some ambiguity about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movie_creditsA
Get cast and crew information for a specific movie. Returns actors with their characters and crew members with their roles/departments.
| Name | Required | Description | Default |
|---|---|---|---|
| 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 full burden but only states what data is returned (actors with characters, crew with roles/departments). It lacks behavioral details like whether this is a read-only operation, rate limits, authentication needs, error conditions, or pagination behavior for large casts.
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 perfectly concise with two sentences that each earn their place: the first states the purpose, the second specifies the return format. It's front-loaded with the core functionality and wastes no words.
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 single-parameter read tool with no annotations and no output schema, the description is adequate but incomplete. It explains what data is returned but not the structure, format, or potential limitations. Given the simplicity, it meets minimum requirements but lacks depth for optimal agent understanding.
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 has 100% description coverage (movie_id parameter is fully documented as 'TMDB movie ID'), so the baseline is 3. The description adds no additional parameter information beyond what the schema already provides, maintaining the minimum viable level.
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 ('Get cast and crew information') and resource ('for a specific movie'), distinguishing it from siblings like get_movie_details or get_tv_credits by focusing on personnel data rather than general movie info or TV credits.
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 needing cast/crew data for a movie, but provides no explicit guidance on when to use this versus alternatives like get_movie_details (which might include credits) or search_people. It lacks explicit when-not-to-use or prerequisite information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_movie_detailsB
Get detailed information about a specific movie using its TMDB ID. Returns comprehensive details including budget, revenue, runtime, genres, production companies, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| 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. It states this is a read operation ('Get') and lists return fields (budget, revenue, etc.), which adds some behavioral context. However, it lacks details on error handling, rate limits, authentication needs, or response format specifics, leaving gaps 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 two sentences: the first states the purpose and parameter, the second lists return details. It's front-loaded with essential info and avoids redundancy. Every sentence adds value, 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 partially compensates by listing return fields. However, for a tool with 1 parameter and 100% schema coverage, it lacks details on output structure, error cases, or integration context. It's adequate but has clear gaps in completeness for a read operation.
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%, with the parameter 'movie_id' documented as 'TMDB movie ID'. The description adds that it's for 'a specific movie using its TMDB ID', reinforcing the schema but not providing additional semantics like format examples or validation rules. This meets the baseline 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 verb 'Get' and resource 'detailed information about a specific movie', specifying it uses a TMDB ID. It distinguishes from siblings like search_movies (which searches) or get_movie_credits (which focuses on credits), but doesn't explicitly contrast them. The purpose is specific and actionable, though sibling differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific TMDB movie ID and need comprehensive details, suggesting an alternative to search_movies if you don't have an ID. However, it doesn't explicitly state when to use this vs. alternatives like get_movie_credits for cast info or discover_movies for browsing. Guidelines are present but not fully articulated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_person_detailsB
Get detailed biographical information about a person (actor, director, crew member). Returns full biography, birth info, death date (if applicable), IMDb ID, homepage, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| person_id | Yes | TMDB person ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It mentions the return content (biography, birth info, etc.) but doesn't disclose behavioral traits like rate limits, authentication needs, error conditions, or data freshness. For a read operation with zero 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 (two sentences) and front-loaded with the core purpose. Every sentence adds value: the first states the action and resource, the second lists return fields. No wasted words.
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 1 parameter with full schema coverage and no output schema, the description is moderately complete. It covers the purpose and return content but lacks behavioral context (e.g., rate limits, errors) and doesn't fully compensate for missing annotations. 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 the single parameter (person_id as TMDB ID). The description doesn't add any parameter-specific details beyond what the schema provides, such as where to obtain IDs or format constraints. Baseline 3 is appropriate when schema does the work.
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: 'Get detailed biographical information about a person' with specific resource types (actor, director, crew member). It distinguishes from siblings like search_people (which likely searches) and get_movie/tv_credits (which focus on credits rather than biography). However, it doesn't explicitly contrast with all siblings.
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 biographical details are needed, but doesn't explicitly state when to use this vs. alternatives like search_people (for finding IDs) or get_movie/tv_credits (for filmography). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recommendationsA
Get movie recommendations based on a specific movie. Returns similar movies that users who liked the given movie also enjoyed. Great for 'If you liked X, try Y' suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| movie_id | Yes | TMDB movie ID to base recommendations on | |
| page | No | Page number for pagination (default: 1) |
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 tool returns similar movies and is 'Great for suggestions,' but lacks details on permissions, rate limits, pagination behavior (beyond the schema's page parameter), or what happens with invalid movie IDs. For a tool with no annotation coverage, this is a significant gap in describing behavioral traits.
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 two sentences that efficiently convey the core purpose and usage context. Every sentence earns its place by adding value: the first defines the tool, and the second clarifies its practical application. There is no wasted text or redundancy.
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 (2 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose and basic usage but lacks behavioral details like error handling or output format. Without annotations or an output schema, the description should do more to compensate, but it meets a minimum viable level for clarity and differentiation.
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 and page) fully. The description adds no additional meaning beyond what the schema provides, such as explaining the recommendation algorithm or typical output size. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but also doesn't detract.
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 ('Get movie recommendations based on a specific movie') and distinguishes it from siblings by specifying it's for 'If you liked X, try Y' suggestions, unlike tools like get_movie_details or search_movies. It explicitly identifies the resource (movie recommendations) and the basis (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 provides clear context for when to use this tool ('based on a specific movie' for 'If you liked X, try Y' suggestions), which differentiates it from siblings like get_trending (general trends) or search_movies (keyword-based). However, it doesn't explicitly state when not to use it or name specific alternatives, such as get_tv_recommendations for TV shows.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trendingC
Get daily or weekly trending movies, TV shows, or people. Returns what's currently popular on TMDB based on user activity.
| Name | Required | Description | Default |
|---|---|---|---|
| media_type | No | Content type: all, movie, tv, or person (default: all) | |
| time_window | No | Time period: day or week (default: week) | |
| page | No | Page number for paginated results (default: 1) |
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 that the tool 'Returns what's currently popular on TMDB based on user activity,' which adds some context about the data source and criteria. However, it lacks details on rate limits, authentication needs, response format, or pagination behavior (beyond the 'page' parameter in the schema). For a tool with no annotations, this is insufficient.
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 concise and front-loaded, consisting of two sentences that directly state the tool's purpose and return behavior. There is no unnecessary information, and each sentence serves a clear purpose. However, it could be slightly improved by integrating usage guidance more explicitly.
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 adequate but incomplete. It covers the basic purpose and data source but lacks details on behavioral traits, output format, and usage guidelines. Without an output schema, the description should ideally explain return values, which it does not. This results in a minimal viable level of completeness.
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 input schema has 100% description coverage, providing clear details for all three parameters (media_type, time_window, page). The description does not add any parameter-specific semantics beyond what the schema already covers. According to the rules, with high schema coverage (>80%), the baseline score is 3, as the description does not need to compensate.
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: 'Get daily or weekly trending movies, TV shows, or people.' It specifies the verb ('Get') and resource ('trending movies, TV shows, or people'), but does not explicitly differentiate it from sibling tools like 'discover_movies' or 'search_movies' beyond mentioning it's based on 'what's currently popular on TMDB based on user activity.' This is clear but lacks explicit sibling differentiation.
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. It mentions 'daily or weekly' and 'currently popular on TMDB based on user activity,' which implies context, but does not specify when to use this tool versus alternatives like 'discover_movies' or 'search_movies.' No explicit when/when-not scenarios or alternative recommendations are included, leaving gaps in guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tv_creditsA
Get cast and crew information for a specific TV show. Returns actors with their characters and crew members with their roles/departments.
| Name | Required | Description | Default |
|---|---|---|---|
| tv_id | Yes | TMDB TV show 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 return format (actors with characters, crew with roles/departments) but omits behavioral traits like rate limits, authentication needs, or pagination. It's adequate but has 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 two concise sentences with zero waste: the first states the purpose, the second specifies the return format. It's appropriately sized and front-loaded with essential information.
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 a simple single-parameter input, the description is reasonably complete for a read-only tool. It explains what the tool does and what it returns, though could benefit from more 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 the tv_id parameter as 'TMDB TV show ID'. The description adds no additional parameter semantics beyond what the schema provides, 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 specific verb ('Get') and resource ('cast and crew information for a specific TV show'), distinguishing it from siblings like get_tv_details (general details) and get_movie_credits (movie-specific). It precisely identifies what information is retrieved.
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 by specifying 'for a specific TV show' and distinguishes from siblings through its focus on credits, but lacks explicit when-not-to-use guidance or named alternatives. It's clear but not comprehensive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tv_detailsA
Get detailed information about a specific TV show using its TMDB ID. Returns comprehensive details including number of seasons, episodes, networks, creators, and more.
| Name | Required | Description | Default |
|---|---|---|---|
| tv_id | Yes | TMDB TV show 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 return content ('comprehensive details including number of seasons, episodes, networks, creators, and more'), which is helpful. However, it lacks information on potential errors (e.g., invalid ID handling), rate limits, authentication needs, or response format specifics, leaving gaps for a read operation.
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 two sentences, front-loaded with the core purpose and followed by specifics on return details. Every word contributes value without redundancy, making it efficient and easy to parse. There is no wasted text or unnecessary elaboration.
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 (single parameter, read-only operation) and lack of output schema, the description provides adequate context for basic use but has gaps. It explains what the tool does and what it returns, but without annotations or output schema, it doesn't cover error handling, response structure, or integration nuances, making it minimally 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%, with the single parameter 'tv_id' fully documented in the schema as 'TMDB TV show ID.' The description adds no additional parameter details beyond what's in the schema, such as format examples or validation rules. According to guidelines, baseline is 3 when schema coverage is high (>80%) and no param info is added in the description.
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 action ('Get detailed information') and resource ('specific TV show using its TMDB ID'), making the purpose immediately understandable. It distinguishes from siblings like 'get_tv_credits' or 'get_tv_recommendations' by focusing on comprehensive show details rather than credits or recommendations. However, it doesn't explicitly contrast with 'search_tv_shows' which might also return TV show information.
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 by mentioning 'specific TV show using its TMDB ID,' suggesting this tool is for known IDs rather than discovery. However, it doesn't explicitly state when to use this versus alternatives like 'search_tv_shows' (for unknown IDs) or 'discover_tv_shows' (for browsing). No exclusions or prerequisites are provided, 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.
get_tv_recommendationsB
Get TV show recommendations based on a specific show. Returns similar shows that users who liked the given show also enjoyed.
| Name | Required | Description | Default |
|---|---|---|---|
| tv_id | Yes | TMDB TV show ID to base recommendations on | |
| page | No | Page number for pagination (default: 1) |
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 tool returns similar shows based on user preferences, but lacks details on behavioral traits: it doesn't specify if this is a read-only operation, potential rate limits, authentication needs, error handling, or what happens with invalid inputs. For a tool with no annotations, this is a significant gap in transparency.
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 two concise sentences with zero waste: the first states the purpose, and the second explains the return mechanism. It's front-loaded with the core function and efficiently communicates essential information without redundancy or fluff.
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 (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose and return type but lacks completeness in behavioral context (e.g., safety, errors) and doesn't compensate for the absence of an output schema by describing return values. It meets the minimum viable threshold but has 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%, with clear descriptions for both parameters (tv_id as TMDB ID, page for pagination). The description adds no additional parameter semantics beyond what the schema providesβit doesn't explain format constraints, example values, or how recommendations are influenced by the tv_id. Baseline 3 is appropriate 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: 'Get TV show recommendations based on a specific show' (verb+resource) and 'Returns similar shows that users who liked the given show also enjoyed' (mechanism). It distinguishes from siblings like 'discover_tv_shows' or 'search_tv_shows' by focusing on similarity-based recommendations rather than discovery or search. However, it doesn't explicitly differentiate from 'get_recommendations' (which might be generic), preventing a perfect score.
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 you have a specific TV show ID and want similar recommendations, but it doesn't explicitly state when to use this tool versus alternatives like 'discover_tv_shows' (which might be for broader discovery) or 'get_recommendations' (if that's a sibling). There's no guidance on prerequisites, exclusions, or comparisons with other tools, leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_moviesB
Search for movies by title. Returns a list of movies matching the search query with basic information like title, release date, overview, and rating.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Movie title to search for | |
| page | No | Page number for paginated results (default: 1) |
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 return format ('list of movies with basic information') but lacks details on rate limits, authentication needs, error handling, or pagination behavior beyond the schema's 'page' parameter. This is inadequate 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 concise and front-loaded: the first sentence states the purpose, and the second explains the return value. There is no wasted language, and every sentence adds value, 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 the tool's moderate complexity (search with pagination), no annotations, and no output schema, the description is minimally adequate. It covers the basic purpose and return format but lacks details on behavioral traits and usage context, leaving gaps that could hinder effective tool selection and 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') fully. The description adds no additional meaning beyond implying the search is title-based, which is already covered in the schema's 'query' description. Baseline 3 is appropriate as the schema handles parameter documentation.
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: 'Search for movies by title' specifies the verb (search) and resource (movies), and 'Returns a list of movies matching the search query' indicates the outcome. However, it does not explicitly differentiate from siblings like 'search_tv_shows' or 'search_people', which reduces the score from a perfect 5.
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 no guidance on when to use this tool versus alternatives. It does not mention siblings like 'discover_movies' or 'get_trending', nor does it specify any context, prerequisites, or exclusions for usage, leaving the agent to infer based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_peopleA
Search for people (actors, directors, producers, crew) by name. Returns basic info including profile photo, known for department, and movies/TV shows they're known for.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Person name to search for | |
| page | No | Page number for paginated results (default: 1) |
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 search returns 'basic info' and lists some fields, but doesn't cover important aspects like pagination behavior (implied by the 'page' parameter but not explained), rate limits, authentication requirements, error conditions, or whether results are filtered/sorted. For a search tool with zero 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 a single, well-structured sentence that efficiently conveys the tool's purpose, input, and output without any wasted words. It's front-loaded with the core action ('Search for people by name') and adds necessary details about return fields. Every part earns its place.
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 (search with pagination), no annotations, and no output schema, the description is partially complete. It covers the basic purpose and return fields but lacks details on behavioral aspects like pagination mechanics, error handling, or result structure. It's adequate as a minimum viable description but has clear gaps that could hinder effective tool use.
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') adequately. The description adds marginal value by implying the 'query' parameter is for person names and that results include movies/TV shows, but doesn't provide additional syntax, format, or constraints beyond what the schema states. Baseline 3 is appropriate when 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 verb ('Search for people') and resource ('people (actors, directors, producers, crew)'), distinguishing it from sibling tools like search_movies or search_tv_shows. It specifies the search criteria ('by name') and the type of information returned ('basic info including profile photo, known for department, and movies/TV shows they're known for').
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 by specifying 'search for people by name' and listing return fields, but it doesn't explicitly state when to use this tool versus alternatives like get_person_details (which might retrieve detailed info for a known person ID) or search_movies/search_tv_shows (for content rather than people). No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_tv_showsC
Search for TV shows by name. Returns a list of TV shows matching the search query with basic information like name, first air date, overview, and rating.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | TV show name to search for | |
| page | No | Page number for paginated results (default: 1) |
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 the return format ('list of TV shows with basic information') which is helpful, but doesn't cover important aspects like rate limits, authentication requirements, error conditions, or whether this is a read-only operation. For a search tool with zero 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 concise with two sentences that efficiently convey the core functionality. The first sentence states the purpose, the second describes the return format. There's no wasted text, though it could be slightly more structured by separating concerns more clearly.
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 search tool with 2 parameters and 100% schema coverage but no output schema, the description provides basic context about what the tool does and returns. However, it lacks important contextual information about limitations (result count, sorting), error handling, and differentiation from sibling tools. The absence of an output schema means the description should ideally explain the return structure more thoroughly.
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 both parameters. The description doesn't add any parameter semantics beyond what's in the schema - it mentions 'search query' but doesn't elaborate on query syntax, matching behavior, or result ordering. The 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: 'Search for TV shows by name' with a specific verb ('search') and resource ('TV shows'). It distinguishes from siblings like 'search_movies' by specifying the resource type, but doesn't explicitly differentiate from 'discover_tv_shows' which might have different functionality.
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 no guidance on when to use this tool versus alternatives. It doesn't mention when to choose 'search_tv_shows' over 'discover_tv_shows' or 'get_trending', nor does it provide any context about prerequisites or limitations. The agent must infer usage from the name alone.
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 targeting specific resources (movies, TV shows, people) with clear action differentiation. However, discover_movies and search_movies have potential overlap in movie-finding functionality, though their descriptions clarify discover uses advanced filters while search uses title matching.
All tools follow a consistent verb_noun pattern with clear action prefixes (discover_, get_, search_) and specific resource suffixes (_movies, _tv_shows, _person, _people). The naming is perfectly predictable and systematic throughout the set.
13 tools is well-scoped for a movie/TV database server, providing comprehensive coverage without bloat. The count aligns with the domain's natural divisions between movies, TV shows, and people, with appropriate operations for each.
The toolset provides complete coverage for a TMDB-like domain with discovery, search, detailed retrieval, credits, recommendations, and trending operations for both movies and TV shows, plus person/people functionality. No obvious gaps exist for typical agent workflows.
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
TMDB v3: movies, TV, people, trending, discover, genres, credits. Free key.
Movies and TV show data β search, details, ratings, and cast from iTunes and TVmaze APIs
OMDb MCP β IMDB-derived movie / TV / episode data (BYO key)
Access the GitHub API, enabling file operations, repository management, search functionality, andβ¦
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceIntegrates with The Movie Database (TMDB) API to provide movie information, search capabilities, and recommendations.1975MIT
- AlicenseNot gradedqualityDmaintenanceProvides integration with The Movie Database (TMDB) API for searching movies, TV shows, and people, accessing detailed information, and discovering popular and trending content. Enables AI assistants to access comprehensive movie and television metadata including ratings, cast, crew, and overviews.631MIT
- FlicenseNot gradedqualityNot gradedmaintenanceProvides access to The Movie Database (TMDB) API for searching movies, retrieving movie details, cast information, and browsing current, upcoming, popular, and top-rated films, as well as searching for actors and directors.63
- AlicenseNot gradedqualityDmaintenanceIntegrates with The Movie Database (TMDB) API to provide movie information, search capabilities, and recommendations.21MIT
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/tcehjaava/tmdb-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server