Skip to main content
Glama
AmeliaMiddleton

moviefinder-mcp

moviefinder-mcp

The Movie Database (TMDB) API를 래핑하는 MCP 서버입니다. @modelcontextprotocol/sdk와 stdio 전송 방식을 사용하여 구축되었습니다.

도구

도구

설명

search_movies

제목으로 영화 검색, 선택적 year 필터 사용 가능.

search_tv

제목으로 TV 프로그램 검색.

get_movie_details

주요 출연진, 감독, 예고편을 포함한 전체 영화 상세 정보.

get_recommendations

특정 영화에 대한 TMDB 추천.

get_similar

특정 영화와 유사한 영화.

get_trending

day 또는 week 단위의 movie / tv / all 트렌드.

where_to_stream

영화의 스트리밍 / 대여 / 구매 제공업체 (기본 국가 US).

discover_movies

장르 이름, 최소 평점, 연도, 정렬 순서로 영화 탐색.

모든 도구는 요약된 JSON(id, 제목, 연도, 개요, 평점, 포스터 URL 등)을 반환하며, 불필요한 원시 TMDB 필드는 제거됩니다.

Related MCP server: wizzy-mcp-tmdb

설정

1. TMDB API 토큰 받기

  1. https://www.themoviedb.org/ 에서 무료 계정을 만듭니다.

  2. https://www.themoviedb.org/settings/api 를 방문하여 API Read Access Token (v4)을 복사합니다. 이는 긴 JWT이며, v3 API 키가 아닙니다.

2. 설치 및 빌드

npm install
npm run build

3. 환경 설정

.env.example을 .env로 복사하고 토큰을 붙여넣습니다:

cp .env.example .env
TMDB_API_KEY=eyJhbGciOi...your_v4_read_access_token...

4. 서버 실행

npm start

이 서버는 stdio를 통해 MCP와 통신하며, 대화형으로 실행되는 것이 아니라 MCP 클라이언트(예: Claude Desktop)에 의해 실행되도록 설계되었습니다.

Claude Desktop에 등록

claude_desktop_config.json에 항목을 추가합니다:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "moviefinder": {
      "command": "node",
      "args": ["/absolute/path/to/moviefinder-mcp/dist/index.js"],
      "env": {
        "TMDB_API_KEY": "eyJhbGciOi...your_v4_read_access_token..."
      }
    }
  }
}

설정을 편집한 후 Claude Desktop을 다시 시작하세요. 그러면 moviefinder 도구가 모든 대화에서 나타납니다.

스크립트

스크립트

설명

npm run build

TypeScript를 dist/로 컴파일합니다.

npm start

컴파일된 서버(node dist/index.js)를 실행합니다.

npm run dev

TypeScript 감시 모드.

오류 처리

서버는 일반적인 TMDB 오류에 대해 유용한 메시지를 반환합니다:

  • 401 — 토큰 누락 또는 잘못된 키 유형 (v4 읽기 액세스 토큰이어야 함).

  • 404 — 요청한 영화 / 리소스가 존재하지 않음.

  • 429 — 속도 제한 초과; Retry-After 값이 존재할 경우 포함됨.

참고 사항

  • 장르 목록은 /genre/movie/list에서 한 번 가져와 메모리에 캐시됩니다.

  • 포스터 URL은 https://image.tmdb.org/t/p/w500을 사용합니다.

  • 데이터베이스나 로깅 프레임워크는 의도적으로 사용하지 않았습니다.

Available Tools

8 tools
discover_moviesC

Discover movies by genre name, minimum rating, year, and sort order. Genre is resolved by name (e.g. 'Action').

ParametersJSON Schema
NameRequiredDescriptionDefault
genreNo
min_ratingNo
yearNo
sort_byNo

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavior. It only states that genre is resolved by name, but lacks details on return type, pagination, error handling, or what happens if no movies match.

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?

Two sentences, front-loaded with verb and parameters, no extra words. Highly efficient for the information it provides.

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

Completeness2/5

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

Given no output schema and 4 parameters, the description is too sparse. It omits any mention of output format, pagination, or common behavior for filter tools, leaving the agent underinformed.

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?

Schema coverage is 0%, but description names all four parameters and clarifies that genre is a resolved name. However, it does not explain valid values for min_rating (0-10), year range, or sort_by options, which are already in schema but not repeated.

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?

Description clearly states the tool discovers movies by genre, rating, year, and sort order. However, it does not differentiate from sibling tools like search_movies or get_trending, which could be confused.

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 guidance on when to use this tool versus alternatives. The description implies filtering but lacks context like 'for exploring movies by criteria' and does not mention when not to use.

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

get_movie_detailsA

Get full details for a movie, including top cast, directors, and trailer.

ParametersJSON Schema
NameRequiredDescriptionDefault
movie_idYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It does not disclose whether the tool is read-only, requires authentication, or has any side effects. It lacks details about limitations or error conditions.

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?

Single sentence, 14 words, front-loaded with the core purpose. No redundancy or verbosity.

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

Completeness4/5

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

Given the simple input (one integer ID) and no output schema, the description gives a reasonable hint about output (cast, directors, trailer). It is mostly complete for a retrieval tool, though more detail on other fields would improve it.

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

Parameters2/5

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

With 0% schema description coverage, the description must compensate but only implicitly references the movie_id via the tool name. It adds no clarification on how to obtain the ID or format expectations.

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 retrieves full details for a specific movie, listing examples (top cast, directors, trailer) that distinguish it from sibling tools like search_movies or get_recommendations.

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 implies use when needing detailed information about a single movie, but does not explicitly state when not to use or provide alternatives. The tool's straightforward purpose makes this less critical.

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

get_recommendationsC

Get TMDB recommendations for a given movie.

ParametersJSON Schema
NameRequiredDescriptionDefault
movie_idYes

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only states it 'gets recommendations', but does not mention whether this is a read-only operation, any required permissions, or what the recommendations are based on (e.g., TMDB algorithm). The agent gains little insight into side effects or constraints.

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 a single, short sentence with no wasted words. However, it is so terse that it omits essential context, which reduces its value for concise communication.

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

Completeness2/5

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

Given the absence of an output schema and the single parameter, the description should at least outline what the recommendations consist of or how they are generated. It fails to provide enough context for an agent to understand the tool's capabilities fully.

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?

The input schema has 0% coverage (no descriptions). The description does not explain the 'movie_id' parameter beyond what the schema provides (integer, >0). It does not clarify where to obtain the ID or what it represents (e.g., TMDB movie ID).

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 it gets recommendations for a given movie, using a specific verb and resource. However, it does not explicitly distinguish from the sibling tool 'get_similar', which could cause confusion about the difference between recommendations and similar 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?

No guidance is provided on when to use this tool versus alternatives like 'get_similar' or 'discover_movies'. The description lacks any context about typical use cases or exclusion criteria.

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

get_similarC

Get movies similar to a given movie.

ParametersJSON Schema
NameRequiredDescriptionDefault
movie_idYes

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It does not disclose how 'similar' is determined, whether results are limited, or any behavioral traits like ordering, pagination, or authentication requirements.

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

Conciseness3/5

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

The description is a single sentence, highly concise. However, it sacrifices necessary information for brevity, making it only minimally adequate.

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

Completeness2/5

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

Given no annotations, no output schema, and a single parameter, the description fails to provide sufficient context such as return format, result count, or typical use cases.

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

Parameters2/5

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

Schema coverage is 0%, but the description does not add meaning beyond the schema. It does not explain what movie_id refers to (e.g., source, format) despite schema having only one parameter.

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 verb and resource: 'Get movies similar to a given movie.' It identifies the input (a movie) and the output (similar movies), but does not differentiate from sibling tools like get_recommendations.

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 guidance on when to use this tool versus alternatives (e.g., get_recommendations). No context, prerequisites, or exclusions provided.

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

search_moviesA

Search TMDB for movies by title. Optionally filter by release year.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
yearNo

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations, the description only says 'search' without disclosing behavior like rate limits, pagination, or error handling. Minimal 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?

Single sentence, no fluff. Every word adds value.

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?

Adequate for a simple search tool, but could mention result format or common constraints. Since no output schema, description could be 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?

Description explains that query is for title search and year is an optional filter, adding meaning beyond schema constraints. Schema had 0% description coverage.

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 searches TMDB movies by title, with optional year filter. It distinguishes from siblings like discover_movies and get_movie_details.

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 guidance on when to use this over sibling tools like discover_movies or search_tv. No exclusions or alternatives mentioned.

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

search_tvB

Search TMDB for TV shows by title.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description carries full responsibility for behavioral disclosure. It merely states the action without mentioning pagination, language constraints, result limits, or any other behavioral traits beyond the basic search function.

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 a single sentence that is front-loaded with the essential purpose. Every word earns its place, and there is no extraneous information.

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 search tool with one parameter and no output schema, the description is minimally adequate. However, it lacks context on result format, sorting, or any filtering parameters, which would enhance completeness given the lack of annotations.

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

Parameters2/5

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

The single parameter 'query' is only specified in the schema with a minLength constraint. The description does not add any semantics (e.g., case sensitivity, fuzzy matching, language) beyond what the schema provides, and schema description coverage is 0%.

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 ('Search'), the resource ('TMDB for TV shows'), and the method ('by title'). It directly differentiates from the sibling 'search_movies' tool, which searches movies instead of TV shows.

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 guidance is provided on when to use this tool versus alternatives such as 'discover_movies' or 'get_trending'. There is no mention of when not to use it or any prerequisites.

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

where_to_streamA

Find streaming, rental, and purchase providers for a movie in a given country (default US). Data sourced from JustWatch via TMDB.

ParametersJSON Schema
NameRequiredDescriptionDefault
movie_idYes
country_codeNo

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It mentions data sourcing from JustWatch via TMDB but does not disclose what happens when no providers are found, potential rate limits, or authentication requirements.

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, front-loaded with the key action, and every sentence adds value. No wasteful words.

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?

With no output schema, the description does not explain the return format or structure. It also lacks information about error handling or edge cases. Adequate for a simple lookup but could be more complete.

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?

Schema coverage is 0%, but the description adds that country_code defaults to US. However, it does not explain the format or constraints of movie_id or country_code beyond what the schema provides.

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 it finds streaming, rental, and purchase providers for a movie, specifying a default country and data source. This verb+resource combination is specific and distinguishes it from siblings like get_movie_details.

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

Usage Guidelines3/5

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

The description implies usage for finding where to watch a movie but does not explicitly compare with alternatives like get_movie_details or search_movies. No direct 'when to use' guidance is given.

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.

  1. 8 tool updatesv0.1.0
    • First observeddiscover_movies
    • First observedget_movie_details
    • First observedget_recommendations
    • First observedget_similar
    • First observedget_trending
    • First observedsearch_movies
    • First observedsearch_tv
    • First observedwhere_to_stream

TDQS

A3.5/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct action: discover by criteria, get full details, get recommendations, get similar, get trending, search movies, search TV, and find streaming providers. No meaningful overlap exists.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., discover_movies, get_movie_details, search_tv). 'where_to_stream' is a minor deviation but still clearly readable.

Tool Count5/5

8 tools cover the main use cases for a movie/TV finder: discovery, search, details, trends, recommendations, similar, and streaming info. The scope is well-balanced.

Completeness4/5

The set covers most core movie operations, but lacks get_tv_details for TV shows. Other gaps like user ratings or reviews are acceptable for the stated purpose.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    D
    quality
    D
    maintenance
    An MCP server that allows users to search for movies, get detailed information, receive genre-based recommendations, and discover popular/trending films using OMDb and TMDb APIs.
    5
    3 npm
    MIT
  • 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
    8 npm
    4
    MIT
  • 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
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A robust MCP server that wraps The Movie Database API, enabling LLMs to search movies, get details, popular movies, and recommendations.
    -