logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

mcp-film-data-gateway

A service layer interface facilitating connection to The Movie Database (TMDB) platform, enabling retrieval of cinematic metadata, execution of content lookups, and generation of personalized film suggestions.

Author

mcp-film-data-gateway logo

Laksh-star

MIT License

Quick Info

GitHub GitHub Stars 51
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

tmdbapiapistmdb apiserver tmdbdatabase tmdb

MseeP.ai Security Assessment Badge

TMDB Backend Service

smithery badge This backend module interfaces with the TMDB API, granting access to film catalogs, advanced querying features, and tailored content recommendations.

mcp-server-tmdb MCP server

Ask DeepWiki

Prerequisites for Setup

To successfully deploy and initiate this data gateway, the following foundational software and credentials must be present and correctly configured:

Essential Software Components

  • Node.js Runtime
  • Minimum required version: 18.0.0
  • Obtain binaries from the official Node.js distribution point
  • Verification command: node --version

  • npm (Node Package Manager)

  • Version 8.0.0 or later (typically bundled with Node.js)
  • Verification command: npm --version

  • TypeScript Compiler

  • Installed as a dependency within the project structure
  • Optional global installation: npm install -g typescript
  • Verification command: tsc --version

Required Credentials & Keys

  • TMDB Developer Account
  • Registration is mandatory at TMDB
  • Secure an API access token via the TMDB management portal
  • Ensure TMDB has authorized your account for API usage

  • Claude Client Application

  • Latest release installed and operational
  • Capability to modify local configuration manifests

Operational Environment Specifications

  • Supported Operating Systems
  • macOS (Build 10.15 or newer)
  • Modern distributions of Linux

  • System Resource Baseline

  • At least 4 Gigabytes of Random Access Memory (RAM)
  • One Gigabyte (1GB) of available persistent storage
  • Consistent, reliable network connectivity

For efficient modification and maintenance: - An Integrated Development Environment (IDE) supporting TypeScript (e.g., VS Code) - Access to a command-line interface (Terminal) - Git version control system installed

Capabilities

Exposed Functionality (Tools)

  • movie_content_lookup
  • Functionality: Searches the database based on film titles or descriptive keywords.
  • Input Parameter: query (text string): The search term.
  • Output Schema: A collection of matching films detailing titles, publication years, unique identifiers, user ratings, and plot summaries.
  • Use Case Illustration: Discovering motion pictures pertaining to interstellar travel.

  • suggest_related_films

  • Functionality: Derives a list of suggested films correlated with a specific film ID.
  • Input Parameter: movieId (identifier string): The originating TMDB identifier.
  • Output Schema: A set of the top five most relevant suggestions with associated details.
  • Use Case Illustration: Requesting successors to film ID 550 (the identifier for Fight Club).

  • fetch_current_popularity

  • Functionality: Retrieves media currently trending over a defined temporal interval.
  • Input Parameter: timeWindow (enumerated string): Must be "day" or "week".
  • Output Schema: The top 10 most popular motion pictures, including comprehensive data.
  • Use Case Illustration: Listing today's most-watched features.

Data Access Endpoints (Resources)

The server exposes structured access to TMDB media data:

  • Media Objects (tmdb:///movie/<movie_id>)
  • Detailed data fields provided:
    • Film nomenclature and initial screening date
    • Aggregate rating score and narrative synopsis
    • Categorical genres
    • Direct link to promotional artwork (Poster URL)
    • Key personnel data (Top five credited actors)
    • Directorial credit
    • Curated user testimonials
  • Data format for all responses is standardized JSON.

Operational Guide

  1. Procure your TMDB API Credential:
  2. Register an account at TMDB
  3. Navigate to user profile management settings
  4. Locate the API credential management section
  5. Submit a request for a development API token

  6. Obtain and Initialize Project Files: bash git clone [repository-url] cd mcp-server-tmdb npm install

  7. Compile the Service Backend: bash npm run build

  8. Configure Runtime Environment Variable: bash export TMDB_API_KEY=your_api_key_here

Integration within Claude Client

To link this service with the Claude Desktop application, update the configuration file located at ~/Library/Application Support/Claude/config.json by adding the following block:

{ "mcpServers": { "tmdb": { "command": "/full/path/to/dist/index.js", "env": { "TMDB_API_KEY": "your_api_key_here" } } } }

Remember to substitute /full/path/to with the absolute directory path where the project resides.

Installation via Smithery Utility

For an automated installation pathway targeting the Claude Desktop client using Smithery:

bash npx -y @smithery/cli install @Laksh-star/mcp-server-tmdb --client claude

Demonstration Scenarios

Once the server is active and connected to the Claude Desktop interface, interaction can commence using prompts such as:

  1. Executing content searches:

"Query for motion pictures concerning advanced artificial sentience"

  1. Retrieving current popularity metrics:

"What features are dominating the charts presently?" "Display the week's highest-performing titles"

  1. Requesting associated feature films:

"Generate suggestions related to the film identified by index 550"

  1. Fetching specific media dossiers:

"Provide descriptive details for the film object designated as ID 550"

Exception Management

The service incorporates robust fault tolerance mechanisms for scenarios including: - Invalid credential submission - Network connectivity failures - Non-existent media identifiers - Improperly structured incoming requests

All detected anomalies will be relayed back to the user via Claude Desktop using clear, accessible diagnostic messaging.

Development Cycle

To monitor file modifications during active development: bash npm run watch

Software Licensing

This service package is distributed under the terms of the MIT License. Refer to the LICENSE file for comprehensive stipulations.

Community Involvement

We encourage external contributions! Feel free to submit a Pull Request for enhancements or fixes.

WIKIPEDIA: XMLHttpRequest (XHR) is an Application Programming Interface, implemented as a JavaScript object, engineered to facilitate the transmission of HTTP requests from a web browser environment to a remote web server. Its constituent methods enable client-side scripts to dispatch queries post-page-load and process returned data asynchronously. XHR forms a core element of Ajax methodologies. Before its widespread adoption, server interaction typically necessitated full page refreshes via standard hyperlinks or form submissions.

== Chronology == The foundational concept for XMLHttpRequest originated around the year 2000, credited to the engineers behind Microsoft Outlook. This idea was subsequently incorporated into the Internet Explorer 5 browser release (1999). However, the initial code utilized alternative object instantiations, specifically ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). By the launch of Internet Explorer 7 (2006), all contemporary browsers had standardized on the XMLHttpRequest naming convention. XMLHttpRequest is now the prevailing protocol standard across major rendering engines, including Mozilla's Gecko (2002), Safari 1.2 (2004), and Opera 8.0 (2005).

=== Standardization Efforts === The World Wide Web Consortium (W3C) published its initial specification draft for the XMLHttpRequest object on April 5, 2006. A subsequent Level 2 Working Draft followed on February 25, 2008, introducing capabilities for progress monitoring, enabling cross-origin communication, and handling binary data streams. By the close of 2011, the Level 2 enhancements were merged back into the primary specification document. Development stewardship transitioned to the WHATWG consortium at the conclusion of 2012, which now maintains the dynamic documentation utilizing Web IDL definitions.

== Operational Flow == Executing a data exchange using XMLHttpRequest generally involves a sequence of programmed actions.

Instantiation of the XMLHttpRequest abstraction layer via its constructor call: Invocation of the "open" method to define the protocol method, designate the target endpoint URI, and select either blocking (synchronous) or non-blocking (asynchronous) execution: For asynchronous operations, attachment of an event handler responsible for reacting to state transitions: Initiating the request sequence by executing the "send" method: Monitoring the event handler for state changes. Upon successful reception of server output, this data is typically stored in the "responseText" attribute. When the object completes its processing cycle, it transitions to state 4 (the terminal state): Beyond these fundamental steps, XMLHttpRequest offers extensive parameters for request manipulation and output processing. Custom headers can be affixed to modify server expectations, and payload data can be transmitted in the "send" argument. The received data stream can be immediately parsed from JSON structure into native JavaScript objects or processed incrementally as segments arrive, circumventing the need to await the full transmission. Requests retain the option of premature cancellation or the imposition of a time-out threshold.

== Inter-Domain Communication == During the nascent period of the World Wide Web, limitations were recognized that prevented direct data exchange between scripts originating from different server domains, a restriction implemented for security purposes.

See Also

`