imdb-analytics-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| IMDB_MCP_DATA_DIR | No | Path to the directory where the IMDb DuckDB database and data files are stored. Defaults to `data/` inside the project directory if not set. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_peopleA | Find people by name and pick the right one before spending another call on them. Answers questions like: "Who is James Hong?", "Is there more than one Michael Caine?", "Find the Danny Trejo who acts", "Which Sarah Douglas has the most credits?", "What is Bess Flowers' IMDb id?". Returns each match with its imdb_name_id, birth and death years, listed professions,
credit count under the default definition, prominence score and best-known titles,
ordered exact match first, then prefix, then credit count. Use the imdb_name_id it
returns for every later call rather than passing the name again. This is lookup, not ranking: it never scans the whole catalogue, so do not use it to answer "who has the most credits" or any question with a superlative in it. It cannot search by nationality, gender or award, which need enrichment that does not land until M4, and it matches on the primary name only, not alternate spellings or credited-as names. |
| get_personA | Everything known about one person, recomputed under whatever credit definition you pass. Answers questions like: "Tell me about Samuel L. Jackson", "How many movies has Eric Roberts actually been in?", "What are Danny Trejo's best-known films?", "Is Bess Flowers mostly an extra?", "How long has James Hong been working, and in what genres?". Takes an IMDb name id, either "nm0000168" or its numeric form 168. Returns the person's credit count under the definition you gave, career span, top titles by votes with the billing position and characters, genre and decade breakdowns, frequent collaborators, and the precomputed career, recognition and background-work statistics with their components exposed. This is the one tool that returns full component detail; the ranking tools return compact rows. The recognition and background-work blocks are always the default-definition values and do not move when you change the credit definition, which the response states. Change the definition to answer follow-ups directly: "restrict to theatrical films" is include_tv_series=false, include_tv_movies=false, include_video=false; "count every episode" is include_tv_episodes=true with count_series_as_one=false. |
| rank_peopleA | Rank people by any measure, under any filter and any definition of an acting credit. This is the tool for every superlative question and every refinement of one. Answers questions like: "Who are the 25 most prolific actors?", "Same list, but only people recognizable enough that an audience would know them", "Now only living actors born before 1960", "Who has the longest career?", "Which prolific actors have the most highly rated films?", "Rank these five by career length instead". Follow-ups are the previous arguments with one field changed, so keep the whole filter object and edit it. The fields that carry the common follow-ups: "women only" is filters.professions_any=["actress"], an approximation of the credit and not of the person, until gender enrichment lands; "living only" is filters.living_only=true; "born after 1950" is filters.birth_year_min=1951; "remove the extras" is filters.max_background_share, around 0.5; "make it recognizable" is filters.min_prominence or sort_by="prominence_score"; "at least ten well-rated films" is filters.min_highly_rated_titles=10 with filters.title_rating_min and title_votes_min setting the bar; "restrict to theatrical films" is credit_definition.include_tv_series=false, include_tv_movies=false, include_video=false. To re-rank a result you already have rather than re-running the whole filter chain, pass its ids as filters.person_ids and change sort_by. Page with next_cursor, handing it back unchanged with the same sort. sort_by choices: acting_credits, prominence_score (peak recognition), exposure_score (volume of seen work), career_length, credits_per_year, average_rating, weighted_rating (Bayesian, pulls thinly voted careers toward the mean), total_votes, highly_rated_titles, max_title_votes, collaborator_count. What it cannot do: filter by nationality, gender or award, which need Wikidata enrichment that lands in M4 and error until then; separate voice roles from on-screen ones, because IMDb's datasets carry no voice flag and the include_voice parameter approximates it with the Animation genre; or filter uncredited roles, which the datasets do not mark at all. collaborator_count is an anchored self-join and is refused for candidate sets over a thousand people. |
| compare_peopleA | Put two to ten named people side by side on the same measures. Answers questions like: "Compare Eric Roberts, Danny Trejo, James Hong, Samuel L. Jackson and Christopher Walken", "Who between De Niro and Pacino has the higher rated filmography?", "Which of these five has the longest career?", "Have any of these people worked together?". Every number comes from the same code path a ranking uses, so a value here and the same value in a rank_people row cannot disagree. Returns one compact row per person with credits, career length, credits per year, rating measures, recognition scores and background share, plus, in query_summary.pairs, the shared-title count and the number of common collaborators for every unordered pair. That pairs block is what answers "which two of these have worked together most" without a second call. Takes IMDb name ids in either form. It is a comparison, not a search: to find the people first, use search_people or rank_people, then pass their ids here. For the titles two of them actually share, follow up with find_collaborations in shared_titles mode. |
| find_collaborationsA | Who has worked with whom, in five shapes selected by Answers questions like: "Which actors have worked with Samuel L. Jackson most often?" (collaborators_of, one id), "What films do Jackson and Walken share?" (shared_titles, two ids), "Which two people in this list have appeared together most?" (pairwise, two or more ids), "Who has worked with all five of these people?" (worked_with_all, one or more ids), "How many steps connect these two?" (degrees_of_separation, two ids, at most three hops). Every mode counts at the unit level, so a series shared across forty episodes counts
once, and every mode honours the credit definition, so "only their films together" is
include_tv_series=false, include_tv_movies=false, include_video=false. The hard limit is the data, not the query: IMDb's principal-cast list holds at most 69 people per title, so a shared credit means both people are in that top-billed subset. Its absence is not evidence they never worked together, and a "no path found" result means no path through principal casts within the hop limit. Pass ids, not names; use search_people first. |
| search_titlesA | Find and rank titles by text, type, year, genre, rating, votes, or who is in them. Answers questions like: "What are the highest rated horror films of the 1980s?", "Find the movie called Heat", "Which titles have both Samuel L. Jackson and John Travolta in the principal cast?", "List Danny Trejo's titles with over 100,000 votes", "What TV series started in 1999 and are rated above 8.5?". Returns compact title rows with imdb_title_id, type, year, runtime, genres, rating and votes. filters.with_person_ids keeps only titles whose principal cast contains every one of the named people, which is the direct way to ask "what did these two make together" when you want the title's own metadata rather than the collaboration count. Page with next_cursor, unchanged, with the same sort. What it cannot do: only 1.7 of 12.8 million titles carry any rating, so a rating or
vote filter is also a coverage filter and drops everything unrated. There is no
theatrical-release flag: the |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |