Skip to main content
Glama
samuel-adjin

MCP Movie Assistant

by samuel-adjin

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 install

Environment

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_key

Notes:

  • The server loads .env on 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 build

Run the server

After building, start the MCP server with:

npm start

This runs node ./build/index.js.

Open the MCP Inspector

The inspector script builds first, then launches the inspector against the compiled server:

npm run inspector

Available tools

The server currently exposes these MCP tools:

  • search-movies

  • get-movie-details

  • get-trending-movies

  • get-movie-recommendations

  • discover-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 .env file exists at the project root

  • It 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 inspector

Project 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 tsc

Scripts

  • npm run build - compile TypeScript to build/

  • npm start - run the compiled server

  • npm run inspector - build and open the MCP inspector

  • npm test - placeholder test script

License

No license has been declared in this repository yet.

Available Tools

5 tools
discover-moviesC

Discover movies based on various criteria using the TMDB API

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
yearNo
sortByNopopularity.desc
genreIdsNo
watchRegionNo
minimumRatingNo
maximumRuntimeNo
minimumRuntimeNo
minimumVoteCountNo
monetizationTypeNo
originalLanguageNo
watchProviderIdsNo

TDQS

C2/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
movieIdYesTMDB movie ID
languageNoen-US

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
movieIdYes
languageNoen-US

TDQS

C2.3/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness1/5

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.

Parameters1/5

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.

Purpose4/5

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

The description clearly states the tool's 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.

Usage Guidelines2/5

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.

search-moviesC

Search for movies using the TMDB API

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
yearNoOptional release year
queryYesMovie title to search for

TDQS

C2.4/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

B3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: searching, getting details, trending, recommendations, and discovery. No ambiguity between them.

Naming Consistency5/5

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.

Tool Count5/5

With 5 tools, the server is well-scoped for a movie assistant. It covers core functionalities without being too minimal or overwhelming.

Completeness4/5

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

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that wraps The Movie Database (TMDB) API, enabling search for movies and TV shows, retrieval of movie details, recommendations, similar movies, trending content, streaming providers, and movie discovery.
    8
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that wraps the TMDB API, enabling search of movies and TV shows, retrieval of details, trending titles, recommendations, and streaming provider information.
    8
  • A
    license
    A
    quality
    A
    maintenance
    MCP 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.
    31
    227
    4
    MIT

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/samuel-adjin/movie-assistant-mcp'

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