TMDB MCP Server
About
Integrates with The Movie Database (TMDB) API to provide movie information, search capabilities, and recommendations.
Details
- Author
- Laksh-star
- Repository
- Laksh-star/mcp-server-tmdb
- GitHub stars
- 51
- Downloads
- 213
- License
- MIT License
- Categories
- Search, Media, Other, AI, Design, Developer Tools, API, Database, Infrastructure, Knowledge Base
- Tags
- #entertainment
Jump to
- Search movies, TV shows, and people by title or keyword
- View trending movies and TV shows (daily/weekly)
- Filter movies by genre, year, rating, and language
- Get detailed movie and person information
- Compare 2–5 movies side-by-side
- Find streaming, rental, and purchase availability per country
- Workflow tools: weekend watchlist, watch party planning, franchise watch order, collection gap plan, and taste‑based recommendations
Setting up with Highlight
Follow these steps to add this server as a custom Highlight plugin:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
TMDB MCP ServerCommand (node, npx, python, etc.)npxArguments-
Argument 1
mcp-remote -
Argument 2
https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
1. Log in to Cloudflare:
npx wrangler login
2. Store your TMDB key as a Worker secret:
npx wrangler secret put TMDB_API_KEY
3. Store an access token as a Worker secret before sharing the deployment:
npx wrangler secret put ACCESS_TOKEN
When ACCESS_TOKEN is set, POST /api/concierge and POST /mcp require:
Authorization: Bearer <your-access-token>
4. Check the Worker bundle:
npm run worker:dry-run
5. Deploy:
npm run worker:deploy
Cloudflare will print a URL like:
```text
get_weekend_watchlist
Ranked weekend shortlist by mood, country, language, runtime, rating, and services.
plan_watch_party
Group movie-night plan with a primary pick, backup, wildcard, party-fit reasons, provider availability, and avoided-title filtering.
build_franchise_watch_order
Franchise/universe guide with release order, suggested order, total runtime, and provider-aware notes.
build_collection_gap_plan
Franchise completion plan with watched/missing entries, remaining runtime, provider availability, and completion path.
recommend_from_taste_profile
Recommendations from liked/disliked titles with provider-aware scoring, match reasons, and cautions.
build_release_calendar_watchlist
Release-window watchlist with upcoming movies, provider-ready picks, broad-room baselines, and watch-later scoring.
search_movies
Search by title/keywords to find titles, IDs, ratings, and overviews.
get_trending
Top 10 trending movies with a specified time window, either 'day' or 'week'.
get_weekly_trending_by_language
Weekly trending movies grouped by original language into English, Hindi, and Telugu.
search_by_genre
Retrieve movies by genre name with an optional year filter.
advanced_search
Filter movies by genre, year, minimum rating, sort order, and language.
search_by_keyword
Find movies by a specific theme or keyword (e.g., 'zombie', 'heist').
get_movie_details
Retrieve full details of a movie including cast, crew, runtime, genres, and reviews based on movieId.
compare_movies
Side-by-side comparison for 2-5 movie IDs with details like ratings, runtime, cast, director, and providers.
get_recommendations
Get top 5 recommendations based on a specific movie ID.
get_similar_movies
Find similar movies using TMDB's similarity algorithm.
get_watch_providers
Check streaming, rental, and purchase availability by country (default is IN).
find_where_to_watch
Search 1-5 movie titles to return their streaming, rental, and purchase availability with preferred-service matches.
search_tv_shows
Search for TV series by title.
get_trending_tv
Get top 10 trending TV shows with a specified time window, either 'day' or 'week'.
search_person
Find actors, directors, and crew by name, returning their ID and known works.
get_person_details
Retrieve full bio and filmography (movies and TV) by personId.
build_person_watch_path
Create a watch path for an actor or director, including best-rated, available-now, recent, and starter picks.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"tmdb mcp server": {
"env": {},
"args": [
"mcp-remote",
"https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp"
],
"command": "npx"
}
}
}
Linux
{
"env": [],
"args": [
"mcp-remote",
"https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp"
],
"command": "npx"
}
Macos
{
"env": [],
"args": [
"mcp-remote",
"https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp"
],
"command": "npx"
}
Windows
{
"env": [],
"args": [
"/c",
"npx",
"mcp-remote",
"https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp"
],
"command": "cmd"
}
An MCP server for The Movie Database (TMDB) API. It provides movie and TV search, streaming availability, cast and crew details, and recommendations for assistants such as Codex and Claude Desktop.
For the architecture split between the reusable MCP server and higher-level feature workflows, seeUSERGUIDE.md.
- get_weekend_watchlist— Ranked weekend shortlist by mood, country, language, runtime, rating, and services
- plan_watch_party— Group movie-night plan with a primary pick, backup, wildcard, party-fit reasons, provider availability, and avoided-title filtering
- build_franchise_watch_order— Franchise/universe guide with release order, suggested order, total runtime, and provider-aware notes
- build_collection_gap_plan— Franchise completion plan with watched/missing entries, remaining runtime, provider availability, and completion path
- recommend_from_taste_profile— Recommendations from liked/disliked titles with provider-aware scoring, match reasons, and cautions
- build_release_calendar_watchlist— Release-window watchlist with upcoming movies, provider-ready picks, broad-room baselines, and watch-later scoring
- search_movies— Search by title/keywords → titles, IDs, ratings, overviews
- get_trending— Top 10 trending movies (timeWindow: "day" | "week")
- get_weekly_trending_by_language— Weekly trending movies grouped by original language into English, Hindi, and Telugu
- search_by_genre— Movies by genre name, optional year filter
- advanced_search— Filter by genre, year, min rating, sort, language
- search_by_keyword— Find movies by theme/keyword (e.g. "zombie", "heist")
- get_movie_details— Full details: cast, crew, runtime, genres, reviews (bymovieId)
- compare_movies— Side-by-side comparison for 2-5 movie IDs with ratings, runtime, cast, director, providers, and best-fit notes
- get_recommendations— Top 5 recommendations based on a movie ID
- get_similar_movies— Similar movies via TMDB's similarity algorithm
- get_watch_providers— Streaming/rental/purchase availability by country (default: IN)
- find_where_to_watch— Search 1-5 movie titles and return streaming/rental/purchase availability with preferred-service matches
- search_tv_shows— Search TV series by title
- get_trending_tv— Top 10 trending TV shows (timeWindow: "day" | "week")
- search_person— Find actors, directors, crew by name → ID + known works
- get_person_details— Full bio + filmography (movies + TV) bypersonId
- build_person_watch_path— Actor/director watch path with best-rated, available-now, recent, and starter picks
- tmdb:///movie/<id>— Full movie details in JSON (title, cast, director, reviews, poster URL)
-
Get a TMDB API key atthemoviedb.org→ Account Settings → API
git clone https://github.com/Laksh-star/mcp-server-tmdb.git cd mcp-server-tmdb npm install
Create a local env file and add your TMDB key:
Install the local Codex and Claude Desktop integration:
Restart Codex or Claude Desktop if already open.
In Codex, a fresh session should showTMDBin the plugin list and expose themcp__tmdb__namespace.
Use this smoke test after adding or merging tools. It verifies the expected MCP tool contract and calls the main workflow tools:compare_movies,find_where_to_watch,get_weekend_watchlist,plan_watch_party,build_franchise_watch_order,build_collection_gap_plan,recommend_from_taste_profile, andbuild_person_watch_path.
npm run build set -a && source ./.env && set +a && npm run smoke:tools
TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/tool-surface-smoke.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp
The script writes a compact verification artifact to:
To avoid tool bloat, prefer adding workflow tools that combine multiple TMDB calls into a useful user decision. Keep raw endpoint-style tools only when they are broadly reusable primitives.
This repo includes a small shareable demo that calls the MCP toolget_weekly_trending_by_language, which fetches live TMDB weekly trending movies and groups the current first page by TMDBoriginal_language.
Run it against the local stdio MCP server:
npm run build set -a && source ./.env && set +a && npm run demo:weekly-trending
After deploying this version of the Worker, run the same demo against a remote MCP endpoint:
TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/weekly-trending-languages.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp
If the deployment is intentionally authless for personal testing, omitTMDB_MCP_ACCESS_TOKEN.
This repo also includes a script-first weekly radar. It chains existing MCP tools into a Markdown artifact with movie trends, TV trends, language momentum, action-ready picks, family-safe picks, and a taste-profile probe.
npm run build set -a && source ./.env && set +a && npm run demo:weekly-radar -- --country US
TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/weekly-streaming-radar.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --country US
The release calendar is available as the MCP toolbuild_release_calendar_watchlist. The demo script calls that tool and writes a Markdown artifact for release-window scanning, watch-later candidates, provider-ready picks, and broad-room baselines.
npm run build set -a && source ./.env && set +a && npm run demo:release-calendar -- --country US --days 90
TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/release-calendar-watchlist.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --country US --days 90
The provider monitor is script-first because it needs persisted state. It callsfind_where_to_watch, compares the current provider list against a JSON snapshot, and writes a Markdown delta report showing new, removed, unchanged, and missing provider availability.
npm run build set -a && source ./.env && set +a && npm run demo:provider-monitor -- --country US --titles "The Matrix,Inception" --services "Netflix,Prime Video"
TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/provider-change-monitor.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --country US --titles "The Matrix,Inception" --services "Netflix,Prime Video"
examples/provider-change-monitor.md examples/provider-change-snapshot.json
The collection gap finder script now calls the promoted MCP toolbuild_collection_gap_planand writes a repeatable Markdown completion report with watched entries, missing entries, remaining runtime, provider availability, and a shortest completion path.
npm run build set -a && source ./.env && set +a && npm run demo:collection-gaps -- --franchise "The Matrix" --watched "The Matrix" --country US --services "Netflix,Prime Video"
TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/collection-gap-finder.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --franchise "The Matrix" --watched "The Matrix" --country US --services "Netflix,Prime Video"
This repo can also run as a remote MCP server on Cloudflare Workers. The remote server exposes the same TMDB tools at/mcpover Streamable HTTP, so Claude, Cowork, Claude Desktop connectors, and other remote-MCP clients can connect to a public URL.
The existing local stdio server remains unchanged for Codex and local Claude Desktop use. The Cloudflare entrypoint issrc/worker.ts.
The Worker also serves a browser demo at/:Weekend Watch Concierge. It supports solo picks and Watch Party mode, then builds a ranked movie shortlist using TMDB discovery, trending, now-playing, credits, posters, and watch-provider data. The browser app also includes a Help drawer for Cloudflare usage and a Workflow Demos panel with commands for script-first artifacts such as Weekly Streaming Radar, Provider Change Monitor, and Collection Gap Finder.
The browser demo also includes anMCP tool surfacepanel that calls the deployed/mcproute, verifies the expected tool contract, and samplescompare_movies,find_where_to_watch,get_weekend_watchlist,plan_watch_party,build_franchise_watch_order,build_collection_gap_plan,recommend_from_taste_profile, andbuild_person_watch_path.
For the complete browser app, deployed Worker, access-token, and MCP handoff, seedocs/weekend-watch-concierge.md.
Store an access token as a Worker secret before sharing the deployment:
WhenACCESS_TOKENis set,POST /api/conciergeandPOST /mcprequire:
Authorization: Bearer <your-access-token>
https://tmdb-mcp.<your-workers-subdomain>.workers.dev
Use this MCP endpoint in remote clients:
https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp
https://tmdb-mcp.<your-workers-subdomain>.workers.dev/
- Open Claude settings:Customize->Connectors.
- Click+->Add custom connector.
- Use the deployed Worker MCP URL:
https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp
For Claude Desktop versions or MCP clients that still require a local command, use themcp-remoteproxy:
{ "mcpServers": { "tmdb-remote": { "command": "npx", "args": [ "mcp-remote", "https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp" ] } } }
IfACCESS_TOKENis not configured, the Worker is authless for easy personal testing. Anyone who has the Worker URL can call the read-only TMDB tools and consume your TMDB API quota. KeepACCESS_TOKENconfigured or use Cloudflare Access before sharing this beyond your own accounts.
This builds the TypeScript project, starts a tiny local TMDB-compatible fixture server, and verifies thatcreateWeekendConciergeranks a requested streaming-service match first while respecting the runtime filter. It does not need a TMDB API key.
This syncs local values from.envinto an untracked.dev.varsfile so Wrangler can exposeTMDB_API_KEYto the Worker during local development.
For protected local testing, addACCESS_TOKENto.env. The browser app has an access-token field and the smoke scripts can readACCESS_TOKENorTMDB_MCP_ACCESS_TOKENfrom the shell environment.
Smoke test the concierge API after the local Worker is running:
Smoke test the remote MCP endpoint and call the agent-facing concierge tool:
node scripts/remote-mcp-smoke.mjs http://127.0.0.1:8787/mcp --call-concierge
TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/remote-mcp-smoke.mjs https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --call-concierge
node scripts/concierge-smoke.mjs https://tmdb-mcp.<your-workers-subdomain>.workers.dev
- POST /api/conciergefor ranked movie picks
- POST /api/collection-gap-planfor Planning Lab collection gaps
- POST /api/taste-profilefor Planning Lab taste-fit recommendations
- POST /api/person-watch-pathfor Planning Lab person watch paths
- GET /healthfor deployment health
- POST /mcpfor remote MCP clients
Agents can callget_weekend_watchlistwith:
- mood:crowd,thriller,thoughtful,funny,family, ormindbend
- country: watch-provider region, for exampleINorUS
- language: original language code, for exampleen,hi,ta,te, orany
- runtime: maximum minutes, for example120,150, orany
- minRating: minimum TMDB rating
- services: preferred streaming services
- familySafe: set totrueto exclude common mature genres when TMDB genre data is available
Agents can callplan_watch_partywhen the decision is for a group. It accepts:
- moods: one to three values fromcrowd,thriller,thoughtful,funny,family, ormindbend
- groupSize: number of people watching
- country,language,runtime,minRating, andservices: same meaning as the weekend watchlist
- avoidTitles: titles the group has already seen or wants excluded
- familySafe: set totrueto exclude common mature genres when TMDB genre data is available
Agents can callbuild_franchise_watch_orderfor a collection or universe guide. It accepts:
- query: franchise or collection name, for exampleThe Matrix,Dune,Batman, orMission Impossible
- country: watch-provider region, for exampleINorUS
- maxMovies: maximum collection entries to include, from 2 to 20
Agents can callbuild_collection_gap_planfor franchise completion planning. It accepts:
- query: franchise or collection name
- watchedTitles: watched titles or TMDB movie IDs
- country: watch-provider region, for exampleINorUS
- services: preferred streaming services
- maxMovies: maximum collection entries to include, from 2 to 20
Agents can callrecommend_from_taste_profilefor personalized recommendations. It accepts:
- likedTitles: one to five movies the user likes
- dislikedTitles: optional movies the user dislikes or wants to avoid stylistically
- country,services,language,runtime, andminRating: filters and watch-now preferences
- maxResults: number of recommendations to return, from 3 to 10
Agents can callbuild_person_watch_pathfor an actor, director, writer, or crew member. It accepts:
- name: person name, for exampleKeanu ReevesorChristopher Nolan
- country: watch-provider region, for exampleINorUS
- services: preferred streaming services
- maxTitles: number of watch-path entries to return, from 3 to 8
For a concrete end-to-end agent workflow, run the now-playing follow-on demo. It uses the MCP server as a remote client would:
- get_now_playingfor current theater discovery in a selected region
- get_movie_detailsfor the selected title
- get_watch_providersfor watch-now availability
- get_recommendations, withget_similar_moviesfallback for very new titles
- get_watch_providersfor follow-on availability checks
npm run build set -a && source ./.env && set +a && npm run demo:now-playing -- --region US
TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/now-playing-follow-on-demo.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --region US
The script writes the final artifact here:
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.




