MCP Movie Assistant
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., "@MCP Movie Assistantdiscover top rated comedy 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.
MCP Movie Assistant
An MCP server for exploring TMDB movie data. It exposes tools for searching, discovering, and reading movie information over stdio.
Requirements
Node.js 18 or newer
npm
A TMDB credential
Related MCP server: moviefinder-mcp
Install
npm installEnvironment
Create a .env file in the project root.
Supported TMDB variables:
# Preferred for TMDB v4 bearer auth
TMDB_API_KEY=your_tmdb_v4_access_token
# Optional fallback used if no bearer token is present
TMDB_API_KEY_V3=your_tmdb_v3_api_key
# Legacy variable names also supported by the code
API_TOKEN_READ_ONLY=your_tmdb_v4_access_token
API_KEY=your_tmdb_v3_api_keyNotes:
The server loads
.envon startup.If both token styles are present, the bearer token is used first.
Do not commit
.env; it is already ignored by git.
Build
Compile the TypeScript source into build/:
npm run buildRun the server
After building, start the MCP server with:
npm startThis runs node ./build/index.js.
Open the MCP Inspector
The inspector script builds first, then launches the inspector against the compiled server:
npm run inspectorAvailable tools
The server currently exposes these MCP tools:
search-moviesget-movie-detailsget-trending-moviesget-movie-recommendationsdiscover-movies
Troubleshooting
TMDB request failed with status 401
This usually means the token was not loaded or the wrong variable name is being used.
Check that:
Your
.envfile exists at the project rootIt contains a valid TMDB token or API key
The value is assigned to one of the supported variables above
You rebuilt after making code changes with
npm run build
Inspector says Not connected
This usually means the inspector tried to launch build/index.js before the project was built, or the process exited early.
Fix:
npm run build
npm run inspectorProject structure
src/
index.ts # loads env and starts the stdio transport
server.ts # MCP server instance
tools.ts # TMDB-backed tools
api.ts # TMDB fetch helper
build/ # generated output from tscScripts
npm run build- compile TypeScript tobuild/npm start- run the compiled servernpm run inspector- build and open the MCP inspectornpm test- placeholder test script
License
No license has been declared in this repository yet.
Available Tools
5 toolsdiscover-moviesC
Discover movies based on various criteria using the TMDB API
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| year | No | ||
| sortBy | No | popularity.desc | |
| genreIds | No | ||
| watchRegion | No | ||
| minimumRating | No | ||
| maximumRuntime | No | ||
| minimumRuntime | No | ||
| minimumVoteCount | No | ||
| monetizationType | No | ||
| originalLanguage | No | ||
| watchProviderIds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist. The description does not disclose behavior such as pagination limits, rate limits, authentication requirements, or whether the results are exhaustive. It merely restates the TMDB origin.
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 sentence, but it is under-specified rather than concise. It omits essential information, making it inadequate for its 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?
With 12 parameters, no output schema, and no annotations, the description fails to provide sufficient context. The complexity of a movie discovery tool is not addressed.
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%. The description does not explain any of the 12 parameters, including enums like sortBy or monetizationType. This is critical given the parameter count.
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 says 'Discover movies based on various criteria', which is a generic purpose. It does not specify the type of discovery or how it differs from sibling tools like search-movies.
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 guidance is provided on when to use this tool versus alternatives like search-movies or get-trending-movies. There is no mention of prerequisites or excluded scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-movie-detailsC
Get details for a specific movie using the TMDB API
| Name | Required | Description | Default |
|---|---|---|---|
| movieId | Yes | TMDB movie ID | |
| language | No | en-US |
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 only says 'Get details', which implies a read operation, but it does not mention safety (e.g., read-only, no side effects), required authentication, rate limits, or error conditions. This is insufficient for a tool without annotations.
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 sentence with no fluff. It is front-loaded with the core action. However, it could be slightly longer to improve completeness without sacrificing 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?
For a simple tool with no output schema, the description is minimal. It does not explain what 'details' include (e.g., cast, ratings, plot) or the structure of the response. Given the singular purpose and sibling tools, more context on the type of returned data would improve 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 schema covers 50% of parameters with descriptions (movieId has one, language does not). The description does not add any additional meaning to the parameters, such as explaining the movieId format or language defaults. Given low schema coverage, the description should compensate, but it does not.
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 it retrieves details for a specific movie using the TMDB API. The verb 'Get' and resource 'details for a specific movie' are present. It distinguishes from sibling list tools (search, trending, recommendations, discover) by emphasizing 'specific movie', though it could explicitly name the alternatives.
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 use when you need details for one specific movie, contrasting with siblings that return lists. However, it does not explicitly state when not to use this tool or name the alternatives. The context of sibling tools is provided separately, but the description itself lacks guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-movie-recommendationsC
Get movie recommendations based on a specific movie using the TMDB API
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| movieId | Yes | ||
| language | No | en-US |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. Beyond mentioning the TMDB API, it discloses no behavioral traits such as data mutability, rate limits, error conditions, or return format. The agent cannot assess safety or side effects from this description.
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 sentence that is under-specified rather than appropriately concise. It fails to provide essential details that would justify its brevity (e.g., no parameter explanations, no usage context). Prefer a more informative but still concise structure.
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?
With 3 parameters, no annotations, and no output schema, the description is critically incomplete. It does not explain return values, pagination (page parameter), language support, or what happens when no recommendations exist. The agent lacks sufficient information to use the tool correctly.
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 explain parameters. It does not: only 'based on a specific movie' hints at movieId, but page and language are completely undocumented. No meaning is added beyond the schema's structural information.
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 function: getting movie recommendations based on a specific movie via the TMDB API. The verb 'Get' and resource 'movie recommendations' are specific. It distinguishes from siblings like 'search-movies' or 'get-movie-details' by focusing on recommendations, though it doesn't explicitly differentiate.
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 (e.g., search-movies, discover-movies). There is no mention of prerequisites, context, or exclusions. The agent is left to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get-trending-moviesC
Get trending movies from the TMDB API
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | en-US | |
| timeWindow | No | day |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral traits. It does not mention rate limits, pagination, data volume, or any constraints beyond the minimal purpose.
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 short sentence, which is concise but does not front-load critical information. It could be efficient but lacks depth.
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 two optional parameters with defaults, the description is insufficient. It does not explain output format, result count, or how to use parameters 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 0%, and the description adds no meaning to the two parameters (language and timeWindow). It does not explain defaults or acceptable values.
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 retrieves trending movies from the TMDB API. The verb 'Get' and resource 'trending movies' are specific, but it does not differentiate from sibling tools like 'discover-movies' or 'search-movies'.
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 guidance is provided on when to use this tool versus alternatives. The description does not mention scenarios or exclude other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search-moviesC
Search for movies using the TMDB API
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| year | No | Optional release year | |
| query | Yes | Movie title to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits such as read-only nature, authentication requirements, rate limits, or pagination behavior. With no annotations, the description carries full burden but provides minimal 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 a single sentence with no unnecessary words, but it is too terse to convey essential details. It balances conciseness with under-specification.
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 three parameters and no output schema, the description omits crucial context about pagination, year filtering behavior, and expected output structure, making it incomplete.
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 no parameter information beyond the input schema. The schema already describes 'query' and 'year', but 'page' lacks a schema description, and the tool description does not clarify its usage.
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 'Search for movies using the TMDB API' states the basic operation but lacks specificity about search criteria (e.g., by title) and does not differentiate from sibling tools like discover-movies or get-movie-recommendations.
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 guidance on when to use this tool versus the sibling tools. The description does not mention prerequisites, exclusions, or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: searching, getting details, trending, recommendations, and discovery. No ambiguity between them.
All tool names follow a consistent verb_noun pattern (search-movies, get-movie-details, get-trending-movies, get-movie-recommendations, discover-movies). The use of 'discover' is a minor deviation but still fits the pattern.
With 5 tools, the server is well-scoped for a movie assistant. It covers core functionalities without being too minimal or overwhelming.
The tool set covers essential movie operations: search, details, trending, recommendations, and discovery. Minor gaps like genre lists or ratings could be added, but the core experience is complete.
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
OMDb MCP — IMDB-derived movie / TV / episode data (BYO key)
Trakt MCP — TV/movie metadata + watch tracking signals
TMDB v3: movies, TV, people, trending, discover, genres, credits. Free key.
TheAudioDB MCP — community music metadata database.
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
- AlicenseNot gradedqualityBmaintenanceEnables browsing movie and TV show data from TMDB and OMDB through 24 MCP tools.6MIT
- AlicenseAqualityAmaintenanceMCP server for The Movie Database (TMDB): search and look up movies, TV shows and people, and read IMDb/Rotten Tomatoes/Metacritic ratings (via OMDb) in the same call.312274MIT
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/samuel-adjin/movie-assistant-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server