Skip to main content
Glama
simentob

TMDB MCP Server

by simentob

🎬 TMDB MCP Server

Et Model Context Protocol-prosjekt som gir Claude direkte tilgang til filmdatabasen TMDB

Python MCP TMDB uv Lisens


πŸ€” Hva er dette?

Dette prosjektet kobler Claude AI til The Movie Database (TMDB) via Model Context Protocol (MCP).

I stedet for Γ₯ sΓΈke manuelt pΓ₯ nettet kan du spΓΈrre Claude direkte i chatten:

"Hva trender pΓ₯ film denne uken?" "Finn anmeldelser av Oppenheimer" "SΓΈk etter norske thrillere fra 2023"

Claude kaller riktig verktΓΈy, henter data fra TMDB, og svarer deg β€” alt i samme samtale.


Related MCP server: TMDB MCP Server

πŸ—οΈ Arkitektur

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Claude Desktop / MCP  β”‚
β”‚         Klient          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚  stdio transport
             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        main.py          β”‚  ← Starter MCP-serveren
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚
             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚        server.py        β”‚  ← Definerer MCP-verktΓΈyene (FastMCP)
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚
             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚       services.py       β”‚  ← Kaller TMDB REST API
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
             β”‚
             β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚       TMDB API          β”‚  ← Henter film- og seriedata
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Fil

Rolle

main.py

Inngangspunkt β€” starter serveren over stdio

server.py

Alle MCP-verktΓΈy definert med FastMCP-dekoratorer

services.py

Rene funksjoner som snakker med TMDB API


πŸ› οΈ Tilgjengelige verktΓΈy

NΓ₯r Claude er koblet til, har den tilgang til disse verktΓΈyene:

VerktΓΈy

Beskrivelse

πŸ” tmdb_search_movies

SΓΈk etter filmer pΓ₯ tittel, Γ₯r, region og sprΓ₯k

🎭 tmdb_multi_search

SΓΈk pΓ₯ tvers av filmer, serier og personer

πŸ“ˆ tmdb_trending_search

Hent det som trender i dag eller denne uken

⭐ tmdb_movie_reviews

Hent brukeranmeldelser for en film

πŸ“Ί tmdb_tv_reviews

Hent brukeranmeldelser for en TV-serie

πŸ“ tmdb_review_details

Hent fullstendige detaljer for Γ©n anmeldelse via ID


πŸš€ Kom i gang

1. Forutsetninger

  • Python 3.12+

  • uv installert

  • En TMDB API-nΓΈkkel (gratis β€” se nedenfor)

2. Skaff en TMDB API-nΓΈkkel

  1. GΓ₯ til themoviedb.org og opprett en konto

  2. GΓ₯ til Innstillinger β†’ API og be om en API-nΓΈkkel

  3. Kopier Bearer-tokenet (den lange nΓΈkkelen kalt "API Read Access Token")

TMDB abonnementsskjermbilde

3. Klon og installer

git clone https://github.com/simentob/movies-mcp-server.git
cd movies-mcp-server
uv sync

4. Konfigurer API-nΓΈkkelen

Opprett en .env-fil i prosjektmappen:

TMDB_API_KEY="din_bearer_token_her"

.env oppsett

5. Start serveren

uv run main.py

Du skal se:

Starting MCP server...

πŸ–₯️ Koble til Claude Desktop

Rediger konfigurasjonsfilen for Claude Desktop:

macOS (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "tmdb-server": {
      "command": "/opt/homebrew/bin/uv",
      "args": [
        "--directory",
        "/ABSOLUTT/STI/TIL/movies-mcp-server",
        "run",
        "main.py"
      ]
    }
  }
}

Windows (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "tmdb-server": {
      "command": "uv",
      "args": [
        "--directory",
        "C:\\ABSOLUTT\\STI\\TIL\\movies-mcp-server",
        "run",
        "main.py"
      ]
    }
  }
}

Start Claude Desktop pΓ₯ nytt etter lagring. VerktΓΈyene skal nΓ₯ dukke opp i verktΓΈyvelgeren.


πŸ’¬ Eksempelsamtaler

NΓ₯r Claude er koblet til kan du ha samtaler som dette:

Du: Hva trender pΓ₯ film i dag?

Claude: (kaller tmdb_trending_search) Her er dagens trendende filmer: ...

Du: Finn anmeldelser av "Interstellar"

Claude: (kaller tmdb_search_movies og deretter tmdb_movie_reviews) Her er anmeldelsene for Interstellar: ...

Du: SΓΈk etter koreanske thrillere

Claude: (kaller tmdb_multi_search) Fant flere koreanske thrillere: ...


πŸ“ Prosjektstruktur

movies-mcp-server/
β”œβ”€β”€ main.py           # Starter MCP-serveren
β”œβ”€β”€ server.py         # MCP-verktΓΈy (FastMCP)
β”œβ”€β”€ services.py       # TMDB API-funksjoner
β”œβ”€β”€ pyproject.toml    # Prosjektavhengigheter
β”œβ”€β”€ .env              # API-nΓΈkkel (ikke committet)
β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ subscribe_screenshot.png
β”‚   └── env_key.png
└── README.md

πŸ“Œ Merknader

  • Dette prosjektet er ikke tilknyttet TMDB. Du mΓ₯ bruke din egen API-nΓΈkkel.

  • Serveren bruker stdio-transport, som er standarden for lokale MCP-servere.

  • API-nΓΈkler lastes fra .env og skrives aldri rett inn i koden β€” commit aldri .env-filen din.

  • Les mer om MCP pΓ₯ modelcontextprotocol.io og i MCP servers-repoet.


Laget av simentob

Available Tools

6 tools
tmdb_movie_reviewsA
Get the user reviews for a movie from TMDB.
Args:
    movie_id: The TMDB movie ID (required).
    language: Language code (default: en-US).
    page: Page of results (default: 1).
Returns:
    Formatted string with movie reviews.
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
languageNoen-US
movie_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

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

With no annotations, the description carries the responsibility of disclosing behavior. It states the return format ('Formatted string with movie reviews') and default parameter behaviors, but does not mention potential errors, pagination behavior beyond the page parameter, or any rate-limits. The tool is a simple read operation, so the provided info is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with a clear purpose, followed by a concise, well-structured Args list. Every element adds value: the purpose, the three parameters with defaults, and the return format. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, the description covers the essential aspects: what it does, the parameters, and the return value. An output schema exists, so detailed return structure is not required here. The description is complete enough for a straightforward retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no parameter descriptions (0% coverage), but the description compensates fully by explaining each parameter: movie_id as TMDB ID, language as language code with default en-US, and page as result page with default 1. This adds meaning beyond the raw schema types and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states 'Get the user reviews for a movie from TMDB', using a specific verb and resource. It distinguishes from siblings like tmdb_tv_reviews by specifying 'movie' and from tmdb_review_details by focusing on all reviews rather than a specific review.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use this tool: when user reviews for a movie are needed. It does not explicitly exclude alternatives like tmdb_tv_reviews, but the resource specification makes it obvious. Default parameter values are provided, offering implicit guidance on typical usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tmdb_review_detailsB
Retrieve the details of a movie or TV show review from TMDB.
Args:
    review_id: The TMDB review ID (required).
Returns:
    Formatted string with review details.
ParametersJSON Schema
NameRequiredDescriptionDefault
review_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries the full burden. It discloses that the return is a 'Formatted string with review details,' but it does not mention error handling, authentication requirements, side effects, or any other behavioral traits. This is minimal transparency beyond the obvious read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exceptionally concise, using a single sentence plus clearly labeled Args and Returns sections. There is no fluff, and all information is front-loaded with the primary verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter retrieval tool, the description is adequate: it states purpose, describes the parameter, and mentions the return format. However, it omits usage context such as how to get a review_id, relationship to sibling review-listing tools, and potential error scenarios. Given no annotations and an output schema that may cover return details, this is a mid-level score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has no property descriptions (0% coverage). The description's Args section adds 'review_id: The TMDB review ID (required).' This provides a label and indicates it is required, but the meaning is nearly tautological. It does not explain the ID's format or how to obtain one, though for a single parameter it offers some compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/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: 'Retrieve the details of a movie or TV show review from TMDB.' The verb is specific and the resource is well-defined. It also distinguishes itself from siblings like tmdb_movie_reviews/tmdb_tv_reviews by focusing on individual review details rather than lists.

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 explicit usage guidance is provided. The description does not mention when to use this tool versus alternatives, nor does it reference sibling tools or how to obtain a review_id. The intended usage is only implied by the tool's purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tmdb_search_moviesB
Search for movies using the TMDB API.
Args:
    query: The text query to search for (required).
    include_adult: Whether to include adult content (default: False).
    language: Language code (default: en-US).
    page: Page of results (default: 1).
    primary_release_year: Filter by release year (optional).
    region: Filter by region (optional).
    year: Filter by year (optional).
Returns:
    Formatted string with movie search results.
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
yearNo
queryYes
regionNo
languageNoen-US
include_adultNo
primary_release_yearNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description must carry the full burden. It does disclose the return format ('Formatted string with movie search results'), which is useful. However, it does not explicitly state that this is a read-only operation or mention any side effects, permissions, or error behavior, which is a gap given the absence of 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 concise and front-loaded with the primary purpose. The Args and Returns sections are logically structured, but it redundantly repeats defaults already present in the schema. Still, everything included serves a purpose, and it remains reasonably compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all parameters and states the return type, but it lacks usage context such as when to choose this tool over siblings. Given the output schema exists, the minimal return description is acceptable, but the overall guidance is incomplete for an agent deciding which search tool to use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no descriptions for parameters (0% coverage), so the description's parameter explanations are essential. It lists all 7 parameters with brief meanings (e.g., 'query: The text query to search for (required)'). However, it does not clarify the distinction between 'primary_release_year' and 'year', and lacks format details for fields like language and region, so it is not fully comprehensive.

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 action ('Search for movies') and the resource (TMDB API), making the core purpose unambiguous. However, it does not explicitly distinguish itself from sibling tools like tmdb_multi_search or tmdb_trending_search, so it lacks explicit sibling differentiation.

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 such as tmdb_multi_search or tmdb_trending_search. It only describes what the tool does without any context on selection criteria or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tmdb_tv_reviewsA
Get the reviews that have been added to a TV show from TMDB.
Args:
    series_id: The TMDB series ID (required).
    language: Language code (default: en-US).
    page: Page of results (default: 1).
Returns:
    Formatted string with TV show reviews.
ParametersJSON Schema
NameRequiredDescriptionDefault
pageNo
languageNoen-US
series_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It does mention the return format ('Formatted string') and parameter defaults, providing some behavioral insight. However, it does not disclose read-only status, rate limits, error handling, or other edge cases, which limits transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a single-purpose sentence followed by Args and Returns sections. Every element earns its place, and the purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, and the description covers purpose, parameters, and return type. However, it lacks usage context (when to prefer over similar tools) and behavioral caveats (safety, errors). Given the absence of annotations, additional context would make it more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description's parameter details are vital. It explains series_id is required, language defaults to en-US, and page defaults to 1, adding meaning beyond the raw schema types and defaults. It could be even more explicit about language code format, but it is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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

The description clearly states the action ('Get the reviews'), the target resource ('a TV show'), and the source ('TMDB'). It also inherently distinguishes itself from the sibling tmdb_movie_reviews by explicitly targeting TV shows, not 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?

There is no guidance on when to use this tool versus alternatives like tmdb_movie_reviews or tmdb_search_movies. The description simply defines what the tool does without any exclusions, prerequisites, or recommendations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 6 tool updatesv0.1.0
    • First observedtmdb_movie_reviews
    • First observedtmdb_multi_search
    • First observedtmdb_review_details
    • First observedtmdb_search_movies
    • First observedtmdb_trending_search
    • First observedtmdb_tv_reviews

TDQS

A3.8/5.0
Disambiguation4/5

Most tools have clear boundaries (movie vs TV reviews, search vs trending), but tmdb_search_movies and tmdb_multi_search overlap in purpose since multi-search includes movies. This creates minor ambiguity when an agent needs a movie-only search.

Naming Consistency4/5

All tools use the consistent tmdb_ prefix and lowercase_with_underscores, but the structure varies: some are noun phrases (movie_reviews) while others are verb phrases (search_movies) or compound nouns (multi_search, trending_search). This mixed pattern is mostly readable but not perfectly uniform.

Tool Count5/5

Six tools is a well-scoped set for a TMDB server focused on search, trending, and reviews. The count is neither too thin nor too heavy.

Completeness4/5

The server covers the search/review niche well: movie and TV reviews, review details, and search/trending. However, comprehensive TMDB operations like movie details, credits, or recommendations are missing, though these fall outside the apparent niche.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants like Claude to interact with The Movie Database (TMDB) API, providing capabilities for searching movies, retrieving movie details, and generating customized movie reviews and recommendations.
    4
    134
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides integration with The Movie Database (TMDB) API for searching movies, TV shows, and people, accessing detailed information, and discovering popular and trending content. Enables AI assistants to access comprehensive movie and television metadata including ratings, cast, crew, and overviews.
    31
    1
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides access to The Movie Database (TMDB) API for searching movies, retrieving movie details, cast information, and browsing current, upcoming, popular, and top-rated films, as well as searching for actors and directors.
    31
    -
  • A
    license
    A
    quality
    C
    maintenance
    Provides access to The Movie Database (TMDB) API, enabling users to search for movies, TV shows, and people, get detailed information, discover content with advanced filters, and retrieve recommendations.
    13
    31
    5
    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/simentob/movies-mcp-server'

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