Skip to main content
Glama
tonderflash

Movie Search MCP Server

by tonderflash

๐ŸŽฌ Movie Search MCP Server

A complete MCP (Model Context Protocol) server for searching and obtaining detailed movie information using OMDb (IMDB) and TMDb APIs.

๐Ÿš€ Features

  • โœ… Search movies by title and year

  • โœ… Detailed movie information (synopsis, director, actors, etc.)

  • โœ… Genre-based recommendations

  • โœ… Popular/trending movies

  • โœ… Support for multiple APIs (OMDb + TMDb)

  • โœ… English responses

  • โœ… Robust error handling

Related MCP server: wizzy-mcp-tmdb

๐Ÿ“‹ Requirements

  • Node.js 18+

  • TypeScript

  • API keys (see configuration)

๐Ÿ› ๏ธ Installation

  1. Clone or create the project:

git clone <repo> # or create a new folder
cd movie-mcp
  1. Install dependencies:

npm install
  1. Build the project:

npm run build

๐Ÿ” API Configuration

OMDb API (Free)

  1. Go to: https://www.omdbapi.com/apikey.aspx

  2. Register to get your free API key

  3. Add the environment variable: OMDB_API_KEY=your_api_key

TMDb API (Free)

  1. Go to: https://www.themoviedb.org/settings/api

  2. Register and request an API key

  3. Add the environment variable: TMDB_API_KEY=your_api_key

Environment Variables

Create a .env file in the project root:

OMDB_API_KEY=your_omdb_api_key
TMDB_API_KEY=your_tmdb_api_key

๐ŸŽฏ Available Tools

1. search_movies

Search movies by title and optionally by year.

Parameters:

  • title (string, required): Movie title

  • year (string, optional): Movie year

Example:

Search movies with title "Batman" from year "2008"

2. get_movie_details

Get complete information for a specific movie.

Parameters:

  • id (string, required): Movie ID (IMDB ID or TMDb ID)

  • source (string, optional): 'omdb' or 'tmdb' (default: 'omdb')

Example:

Get details for movie with ID "tt0468569" using source "omdb"

3. recommend_movies

Get movie recommendations by genre.

Parameters:

  • genre (string, optional): Specific genre

Available genres:

  • action, adventure, animation, comedy, crime

  • documentary, drama, family, fantasy, history

  • horror, music, mystery, romance, science fiction

  • thriller, war, western

Example:

Recommend me "action" movies

4. popular_movies

Get the most popular movies of the week.

Parameters: None

Example:

What are the popular movies?

5. movie_help

Show help information about all available tools.

๐Ÿ”ง Cursor Configuration

To use this MCP server in Cursor, add the following configuration to your .cursor/mcp.json file:

{
  "mcpServers": {
    "movie-search": {
      "command": "node",
      "args": ["/full/path/to/your/project/dist/index.js"],
      "env": {
        "OMDB_API_KEY": "your_omdb_api_key",
        "TMDB_API_KEY": "your_tmdb_api_key"
      }
    }
  }
}

๐ŸŽฎ Usage in Cursor

Once configured, you can use the tools directly in Cursor:

// Search movies
"Search movies of Batman from 2008"

// Get details
"Give me details of movie tt0468569"

// Recommendations
"Recommend me action movies"

// Popular movies
"What are the popular movies this week?"

// Help
"Show me the movie server help"

๐Ÿงช Testing

To test the server locally:

# Build
npm run build

# Run the server
npm start

# Or in development mode
npm run dev

๐Ÿ“ Available Scripts

  • npm run build: Compile TypeScript to JavaScript

  • npm run dev: Build in watch mode

  • npm start: Run the compiled server

  • npm test: Run the server (start alias)

๐Ÿ” Project Structure

movie-mcp/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ index.ts          # Main MCP server
โ”‚   โ”œโ”€โ”€ movie-apis.ts     # API functions
โ”‚   โ””โ”€โ”€ types.ts          # TypeScript types
โ”œโ”€โ”€ dist/                 # Compiled JavaScript
โ”œโ”€โ”€ package.json
โ”œโ”€โ”€ tsconfig.json
โ””โ”€โ”€ README.md

๐ŸŒŸ Technical Features

  • MCP Protocol: Implements the Model Context Protocol standard

  • Multiple APIs: Combines OMDb and TMDb for better results

  • Validation: Uses Zod for parameter validation

  • TypeScript: Fully typed code

  • Error handling: Informative responses in case of error

  • Internationalization: English responses

๐Ÿค Contributing

  1. Fork the project

  2. Create a feature branch (git checkout -b feature/new-feature)

  3. Commit your changes (git commit -am 'Add new feature')

  4. Push to the branch (git push origin feature/new-feature)

  5. Open a Pull Request

๐Ÿ“„ License

MIT License - see the LICENSE file for more details.

๐Ÿ†˜ Troubleshooting

Error: "Module not found"

  • Make sure to run npm install

  • Verify that Node.js is installed (version 18+)

Error: "API key invalid"

  • Verify that environment variables are configured correctly

  • Confirm that API keys are valid

Error: "No results found"

  • Check your internet connection

  • Confirm that movie names are spelled correctly

Server not responding

  • Verify that the file is compiled (npm run build)

  • Check the configuration in .cursor/mcp.json

  • Confirm that the path to the file is correct

Available Tools

5 tools
get_movie_detailsD
ParametersJSON Schema
NameRequiredDescriptionDefault
idYesMovie ID (IMDB ID or TMDb ID)
sourceNoData source (omdb or tmdb)omdb

TDQS

D1/5.0
Behavior1/5

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

Tool has no description.

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

Conciseness1/5

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

Tool has no description.

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

Completeness1/5

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

Tool has no description.

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

Parameters1/5

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

Tool has no description.

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

Purpose1/5

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

Tool has no description.

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

Usage Guidelines1/5

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

Tool has no description.

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

movie_helpD
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1/5.0
Behavior1/5

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

Tool has no description.

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

Conciseness1/5

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

Tool has no description.

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

Completeness1/5

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

Tool has no description.

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

Parameters1/5

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

Tool has no description.

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

Purpose1/5

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

Tool has no description.

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

Usage Guidelines1/5

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

Tool has no description.

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

recommend_moviesD
ParametersJSON Schema
NameRequiredDescriptionDefault
genreNoMovie genre (optional). Examples: action, comedy, drama, horror, sci-fi, romance

TDQS

D1/5.0
Behavior1/5

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

Tool has no description.

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

Conciseness1/5

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

Tool has no description.

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

Completeness1/5

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

Tool has no description.

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

Parameters1/5

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

Tool has no description.

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

Purpose1/5

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

Tool has no description.

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

Usage Guidelines1/5

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

Tool has no description.

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

search_moviesD
ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesMovie title to search for
yearNoMovie year (optional)

TDQS

D1/5.0
Behavior1/5

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

Tool has no description.

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

Conciseness1/5

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

Tool has no description.

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

Completeness1/5

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

Tool has no description.

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

Parameters1/5

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

Tool has no description.

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

Purpose1/5

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

Tool has no description.

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

Usage Guidelines1/5

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

Tool has no description.

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. 5 tool updatesv1.0.0
    • First observedget_movie_details
    • First observedmovie_help
    • First observedpopular_movies
    • First observedrecommend_movies
    • First observedsearch_movies

TDQS

D1.8/5.0
Disambiguation3/5

The tools have distinct names suggesting different purposes (details, help, popular, recommend, search), but without descriptions, there's potential ambiguity. For example, 'popular_movies' and 'recommend_movies' might overlap in functionality if recommendations are based on popularity, and 'movie_help' is vague and could be confused with other tools. The naming helps, but descriptions would be needed to fully disambiguate.

Naming Consistency4/5

The naming follows a consistent pattern with snake_case and a mix of verb_noun (e.g., 'get_movie_details', 'search_movies') and noun_verb (e.g., 'movie_help', 'popular_movies', 'recommend_movies'). There are minor deviations in word order, but overall it's readable and mostly predictable, with no chaotic mixing of styles.

Tool Count5/5

With 5 tools, this is well-scoped for a movie search server. It covers key operations like searching, getting details, finding popular movies, and recommendations, which aligns with typical movie-related functionalities. The count is appropriate, not too thin or heavy for the apparent domain.

Completeness3/5

The tool set covers basic search and discovery functions (search, details, popular, recommend), but there are notable gaps. For a movie domain, missing operations might include user-specific actions (e.g., rate_movie, add_to_watchlist), filtering or sorting options, or genre-based searches. The surface is functional but incomplete for a full movie experience, likely causing some agent limitations.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    A server that connects to The Movie Database API, enabling clients to fetch popular movies, now playing movies, movie details, cast information, and search for movies through a Message Control Protocol interface.
    9
    -
  • A
    license
    A
    quality
    F
    maintenance
    A MCP server for The Movie Database API that enables AI assistants to search and retrieve movie, TV show, and person information.
    23
    13
    4
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that wraps The Movie Database (TMDB) API, enabling search for movies and TV shows, retrieval of movie details, recommendations, similar movies, trending content, streaming providers, and movie discovery.
    8
    -
  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that wraps the TMDB API, enabling search of movies and TV shows, retrieval of details, trending titles, recommendations, and streaming provider information.
    8
    -

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/tonderflash/movie-mcp'

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