The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the TMDB MCP Server listing page.
An 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.
The server speaks standard MCP over stdio, so it works with any MCP client (Claude Desktop/Code, Cursor, VS Code, Cline, …).
Once it's connected, just ask your agent in natural language (needs a free TMDB token; see Getting your credentials):
With an optional (free) OMDb key, ratings are added too:
Add it to your MCP client's config. The only required credential is a TMDB v4
Read Access Token; OMDB_API_KEY (ratings) and TMDB_LANGUAGE / TMDB_REGION
(localization) are optional.
Via npx (no install):
Replace each value with your own. Only
TMDB_API_TOKENis required; delete the lines marked optional if you don't need them.
As a .mcpb bundle (easiest for Claude Desktop): download tmdb-mcp.mcpb
from the latest release,
then open it / drag it into Claude Desktop's Extensions. It's a self-contained
bundle (no Node or npm needed); enter the token and the optional fields in the
install dialog. Re-download and reinstall to update.
From source: git clone, then npm ci && npm run build, and point the client
at it with "command": "node", "args": ["/ABS/PATH/tmdb-mcp/dist/index.js"] and
the same env as above.
See docs/clients.md for per-client details and all tunables.
| Tool | Purpose |
|---|---|
search_movies / search_tv / search_people | Find titles/people by name → TMDB id |
search_multi | Search movies, TV and people at once (each row has a media_type) |
get_movie / get_tv | Full details + IMDb/RT/Metacritic ratings (toggle with include_ratings) |
get_movies / get_tv_shows | Compact card(s) (title/year/genres/vote average, ratings opt-in) for 1-20 ids in one call |
get_person | Biography, department, links |
get_movie_credits / get_tv_credits | Top-billed cast and headline crew |
get_movie_recommendations / get_tv_recommendations | TMDB's editorial recommendations |
get_similar | Algorithmically similar titles (media_type + id) |
get_trending | What's popular now (movies / TV / people, day or week) |
get_movie_genres / get_tv_genres | Genre id ↔ name reference |
discover_movies | Filter by genre, year/date range, rating, cast/crew/people, companies, keywords, providers, certification, … |
discover_tv | Same, plus networks/type/status, but no cast/crew/person filter (use get_person_credits for that) |
get_watch_providers | Where to stream/rent/buy, by region (JustWatch via TMDB) |
get_person_credits | A person's filmography (cast & crew) |
get_videos | Trailers/teasers/clips (YouTube links) |
get_reviews | User reviews (author, rating, text) for a movie/TV |
get_collection | A movie franchise/collection and its parts, in release order |
find_by_imdb_id | Resolve an IMDb id → TMDB movie/TV/person |
get_tv_season / get_tv_episode | Season episode list / single-episode details |
search_keywords | Resolve keyword names → ids for discover_* |
search_companies | Resolve a production company name → id for discover_*'s with_companies |
search_watch_providers | Resolve a streaming/rental service name (e.g. 'Netflix') → id for discover_*'s with_watch_providers |
get_ratings | IMDb/RT/Metacritic ratings by IMDb id or title (standalone) |
Prompts. Alongside the tools above, the server exposes two MCP prompts:
recommend_similar (title, optional media_type, optional count) plans a
search for titles similar to one the user liked, driving get_similar /
get_movie_recommendations / get_tv_recommendations / discover_movies /
discover_tv instead of relying on the model's own knowledge. top_by_entity
(name, optional entity_type, genre, media_type, count) finds the
best-regarded titles from a person or a production company/studio (e.g. "A24's
top movies" or "Tarantino's best crime films") via discover_movies/
discover_tv, and for a person's TV work specifically falls back to
get_person_credits (TMDB's own /discover/tv can't filter by person at all).
Backbone vs. enrichment. TMDB is the primary source (search, metadata,
people, trending). OMDb is optional enrichment: get_movie/get_tv chain the
imdb_id TMDB returns into an OMDb lookup, so ratings come back in one call,
along with a free-text awards summary (major-award wins/nominations, e.g. Oscars
for a film or Emmys for a show, for the title as a whole, not attributed to any
one person) and OMDb's own age rating (ratings.rated, separate from this
server's own certification). Without an OMDb key the TMDB data still works;
the ratings field just reports that it is unconfigured.
Localization. Set TMDB_LANGUAGE (e.g. ru-RU) and TMDB_REGION (e.g.
RU) to get localized titles/overviews/genre names and region-specific
certifications. The search tools, get_movie/get_tv/get_person,
get_collection and discover_movies/discover_tv also accept a per-call
language override.
One token is required (TMDB); the OMDb key is optional. Both are free.
TMDB_API_TOKEN. It's sent as Authorization: Bearer ….OMDB_API_KEY. This
unlocks get_ratings and the IMDb / Rotten Tomatoes / Metacritic scores in movie
and TV details. Without it, everything else still works.Put these in your MCP client config's env block (see
docs/clients.md for per-client snippets). Never commit them.
TMDB_LANGUAGE / TMDB_REGION optionally set default locale/region (e.g. ru-RU, RU).
Sensible defaults; only set these if you know you need to. Env var only, not exposed in Claude Desktop's install form, so CLI/Docker users set them directly.
| Variable | Default | Purpose |
|---|---|---|
TMDB_BASE_URL | https://api.themoviedb.org/3 | Override TMDB's API base (e.g. a proxy) |
OMDB_BASE_URL | https://www.omdbapi.com | Override OMDb's API base |
HTTP_TIMEOUT_MS | 15000 | Per-request timeout before aborting |
HTTP_RETRIES | 2 | Retries on a transient upstream failure |
TMDB_MIN_INTERVAL_MS | 60 | Minimum spacing between TMDB requests |
OMDB_MIN_INTERVAL_MS | 0 | Minimum spacing between OMDb requests |
CACHE_TTL_MS | 300000 | How long cached responses stay fresh |
LOG_LEVEL | info | debug | info | warn | error | silent |
If TMDB/OMDb is briefly down and a tool falls back to a cached-but-expired
response rather than failing, the result carries
_meta: {"tmdb-mcp/stale": true} alongside the normal data, so a client can
tell a degraded answer from a fresh one.
Runtime requires Node ≥ 20.11. Contributor/agent guidance lives in AGENTS.md.
.mcpb bundle: download the new bundle from the releases page and reinstall.git pull && npm ci && npm run build.npx -y tmdb-mcp fetches the latest on the next run.This product uses the TMDB API but is not endorsed or certified by TMDB.
tmdb-mcp runs entirely on your own machine and collects no data of its own.
See PRIVACY.md for exactly what it sends to TMDB/OMDb and what
(if anything) it stores locally.
Read-only, two fixed upstream hosts, credentials never persisted. See SECURITY.md for the full breakdown and how to report a vulnerability.
MIT © Grinv