mcpField
T
tmdb-mcp-server

tmdb-mcp-server

本地服务
github.com/cyanheads游戏娱乐22 周前更新

关于 tmdb-mcp-server

tmdb-mcp-server 通过 The Movie Database(TMDB)提供电影、电视节目和人物资料查询,面向需要检索与筛选影视内容的客户端和 Agent。它还提供按地区查询的流媒体可用性。

主要功能

  1. 01搜索电影、电视节目和人物
  2. 02获取详情、演职员表和作品列表
  3. 03按条件筛选并查看趋势内容
  4. 04查询地区流媒体可用性

适用场景

  1. 01查找电影或节目并读取详细资料
  2. 02按类型、日期或演员筛选影视内容
  3. 03确认某地区可用的流媒体平台

MCP 相关

通过 MCP 提供 8 个工具和 3 个资源,支持 STDIO 与 Streamable HTTP。工具及资源用于搜索 TMDB 内容、查询详情、发现作品和检查地区流媒体信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cyanheads-tmdb": {
"command": "npx",
"args": [
"-y",
"@cyanheads/tmdb-mcp-server"
],
"env": {
"TMDB_API_KEY": "<TMDB_API_KEY>",
"TMDB_LANGUAGE": "<TMDB_LANGUAGE>",
"TMDB_DEFAULT_REGION": "<TMDB_DEFAULT_REGION>",
"MCP_LOG_LEVEL": "<MCP_LOG_LEVEL>",
"MCP_HTTP_HOST": "<MCP_HTTP_HOST>",
"MCP_HTTP_PORT": "<MCP_HTTP_PORT>",
"MCP_HTTP_ENDPOINT_PATH": "<MCP_HTTP_ENDPOINT_PATH>",
"MCP_AUTH_MODE": "<MCP_AUTH_MODE>",
"MCP_TRANSPORT_TYPE": "<MCP_TRANSPORT_TYPE>"
}
}
}
}
启动命令npx -y @cyanheads/tmdb-mcp-server
需要配置的环境变量
TMDB_API_KEY密钥TMDB v4 API Read Access Token (JWT). Sent as 'Authorization: Bearer'. Create one at https://www.themoviedb.org/settings/api.
TMDB_LANGUAGEDefault response language as ISO 639-1, optionally with region (e.g. 'en-US'). Per-call language overrides it.
TMDB_DEFAULT_REGIONISO 3166-1 country example in discovery missing-watch_region errors; never a query default.
MCP_LOG_LEVELSets the minimum log level for output (e.g., 'debug', 'info', 'warn').
MCP_HTTP_HOSTThe hostname for the HTTP server.
MCP_HTTP_PORTThe port to run the HTTP server on.
MCP_HTTP_ENDPOINT_PATHThe endpoint path for the MCP server.
MCP_AUTH_MODE密钥Authentication mode to use: 'none', 'jwt', or 'oauth'.
MCP_TRANSPORT_TYPESelects the HTTP transport.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@cyanheads/tmdb-mcp-server0.1.5

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

@cyanheads/tmdb-mcp-server

通过 MCP 搜索 The Movie Database(TMDB)中的电影、电视节目和人物,获取演职员表、评分、预告片、图片、推荐内容,以及按地区显示的流媒体可用情况。支持 STDIO 或 Streamable HTTP。

8 个工具 • 3 个资源

Version License Docker MCP SDK npm TypeScript Bun

Install in Claude Desktop Install in Cursor Install in VS Code

Framework


概览

由 The Movie Database(TMDB)提供电影和电视节目元数据。按名称搜索影片和人物,获取完整演职员表和作品列表,按筛选条件发现影片,追踪热门内容,并查看所在地区的流媒体播放渠道。

工具
工具描述
tmdb_search_titles按名称搜索电影、电视节目和人物。必需的第一步:将名称解析为详情工具所需的整数 id。
tmdb_get_movie一次调用获取完整电影详情,包括剧情简介、片长、类型、美国分级、预算/收入、演员、剧组、预告片、推荐内容、关键词和外部 id。
tmdb_get_show获取完整电视节目详情,包括概述、播出日期、状态、季/集数、创作者、电视网、各季摘要、演员、预告片和内容分级。
tmdb_get_season获取某一季的剧集列表,包括名称、播出日期、片长、平均投票分数、剧照、每集客串演员,以及该季的常驻演员。
tmdb_get_person获取人物详情和完整作品列表,包括传记、生卒日期、combined_credits 中的演员/剧组列表,以及跨平台外部 id。
tmdb_discover_titles按筛选条件和排序方式发现电影或电视节目,支持强大的查询条件:类型、日期/评分范围、最低投票数、演员/剧组/电视网、观看服务提供商、片长和排序方式。
tmdb_get_trending获取当天或当周热门的电影、电视节目或人物。
tmdb_get_watch_providers查看指定地区的流媒体可用情况(JustWatch),包括订阅/租借/购买/含广告/免费服务提供商列表及 TMDB 链接。必须提供地区代码。
资源
资源描述
tmdb://movie/{movie_id}按 ID 获取电影详情,作为可注入的上下文——与 tmdb_get_movie 返回的丰富记录相同。
tmdb://tv/{series_id}按 ID 获取剧集详情——与 tmdb_get_show 返回的丰富记录相同。
tmdb://person/{person_id}人物详情,包含前 50 条演职员表记录及完整总数;如需更多页面,请使用 tmdb_get_person。

功能参考

tmdb_search_titles 工具
  • multi 模式(默认)混合搜索电影、剧集和人物,并使用 media_type 标注类型;movie、tv 或 person 可将结果限制为一种类型
  • 可选参数包括 year(适用于 movie/tv 模式)、language、include_adult 和 page;无结果时会正常返回并提供恢复建议
  • 每条结果都包含 id、media_type、标题/名称、release_year、overview、vote_average、genre_names 以及海报或头像 URL

tmdb_get_movie 工具
  • 一次调用即可返回演职员表、视频、推荐内容、相似内容、关键词、外部 ID 和发行日期;可精简 append 数组(例如 ["credits"])以缩小响应内容
  • 包含美国分级、主要演员、核心幕后人员,以及带观看 URL 的 YouTube 预告片
  • 不提供流媒体播放信息;请使用 tmdb_get_watch_providers

tmdb_get_show 工具
  • append 选项与 tmdb_get_movie 相同,但用 content_ratings(美国电视分级)替代 release_dates
  • 还会返回季摘要、创作者、电视网,以及最近播出/即将播出的剧集
  • 从 seasons[] 传入 season_number,即可通过 tmdb_get_season 获取剧集列表

tmdb_get_season 工具
  • 每集的名称、播出日期、时长、平均评分、剧照 URL 和客串演员
  • 也会返回该季的常驻演员
  • 输入中的 series_id 会原样返回;第 0 季为“特别篇”

tmdb_get_person 工具
  • 个人简介、重要日期、出生地、知名领域、别名、性别和外部 ID(IMDb、Wikidata、社交账号)
  • combined_credits 按 cast_credits 和 crew_credits 分类,并按时间从新到旧排序;credits_page(默认为 1)每页最多返回各 50 条,并在每页提供完整总数
  • 如需更多内容,请继续查询 next_credits_page;超出末页的页面会返回空列表

tmdb_discover_titles 工具
  • 可按 with_genres/without_genres、year 或 release_date_gte/lte 时间范围、vote_average 范围、vote_count_gte、with_cast/with_crew(电影)、with_networks(剧集)、with_watch_providers + watch_region、with_original_language 以及 runtime 范围筛选
  • 可按热度、票房、平均评分、评分数或发行日期排序;将 vote_average.desc 与 vote_count_gte(约 100–1000)搭配使用,可避免低票数作品排在前面
  • 不适用于该媒体类型的筛选条件会显示提示;未提供 watch_region 时使用 with_watch_providers 会返回 region_required

tmdb_get_trending 工具
  • media_type:all(默认)混合返回电影、剧集和人物;也可限制为一种类型
  • time_window:day 或 week(默认)
  • 每页最多 20 条结果;可通过 page 获取更多内容;无结果时会正常返回并提供恢复建议

tmdb_get_watch_providers 工具
  • 返回包月、租赁、购买、广告和免费服务提供商列表及其徽标 URL,以及 TMDB JustWatch 的 link
  • 必须提供 watch_region(ISO 3166-1 alpha-2);响应中始终会注明地区
  • 结果为空表示该地区无法流媒体播放;提供商 ID 可用于 tmdb_discover_titles 中的 with_watch_providers

tmdb://movie/{movie_id} 资源
  • 与 tmdb_get_movie 返回相同的记录——application/json
  • movie_id 来自 tmdb_search_titles 或 tmdb_discover_titles
  • 当 TMDB 针对该 ID 返回 404 时,会返回类型化的 movie_not_found 错误

tmdb://tv/{series_id} 资源
  • 与 tmdb_get_show 返回相同记录 — application/json
  • series_id 来自 tmdb_search_titles 或 tmdb_discover_titles
  • 当 TMDB 对该 ID 返回 404 时,返回类型化的 show_not_found 错误

tmdb://person/{person_id} 资源
  • 人物详情,包含前 50 条演员演职记录和前 50 条幕后演职记录,以及完整总数 — application/json;如需后续页面,请使用 tmdb_get_person
  • person_id 来自 tmdb_search_titles(模式为 "person")
  • 当 TMDB 对该 ID 返回 404 时,返回类型化的 person_not_found 错误

功能

基于 @cyanheads/mcp-ts-core 构建:支持 stdio 和 Streamable HTTP 传输、可插拔身份验证(none / jwt / oauth)、可切换存储(in-memory、filesystem、Supabase、Cloudflare KV/R2/D1),以及支持可选 OpenTelemetry 跟踪的结构化日志记录。

TMDB 专属功能:

  • 用于 TMDB v3 REST API 的类型化客户端,使用 v4 Read Access Token 进行身份验证
  • 将图片路径解析为完整图片 URL;缺失路径时省略该字段
  • 将类型 ID 解析为类型名称,因此无需额外调用即可读懂列表结果
  • 详情工具通过一次请求返回演职人员、视频、推荐内容、关键词和外部 ID
  • 由 JustWatch 提供支持的区域感知流媒体播放可用性;区域始终是明确的输入

便于 Agent 使用的输出:

  • 每条响应的 enrichment.attribution 中都包含 TMDB 署名信息
  • 列表响应包含总数、页码/总页数,以及实际应用的筛选条件说明
  • 无结果时正常返回并提供恢复指引,而不是作为错误返回
  • 观看服务商结果始终注明区域;达到数量上限的影视作品列表会显示完整总数

开始使用

需要 TMDB API Read Access Token。创建免费的 TMDB 账户,然后从API 设置中复制 API Read Access Token(v4 JWT)——此服务使用 Authorization: Bearer <token> 对 v3 端点进行身份验证,而非使用旧版 ?api_key= 查询参数。

将以下内容添加到 MCP 客户端配置文件中。

{
  "mcpServers": {
    "tmdb-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/tmdb-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "TMDB_API_KEY": "your-tmdb-read-access-token"
      }
    }
  }
}

或者使用 npx(无需 Bun):

{
  "mcpServers": {
    "tmdb-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@cyanheads/tmdb-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info",
        "TMDB_API_KEY": "your-tmdb-read-access-token"
      }
    }
  }
}

或者使用 Docker:

{
  "mcpServers": {
    "tmdb-mcp-server": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "MCP_TRANSPORT_TYPE=stdio",
        "-e", "TMDB_API_KEY=your-tmdb-read-access-token",
        "ghcr.io/cyanheads/tmdb-mcp-server:latest"
      ]
    }
  }
}

对于 Streamable HTTP,设置传输方式并启动服务:

MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 TMDB_API_KEY=... bun run start:http
# Server listens at http://localhost:3010/mcp
先决条件
  • Bun v1.4.0 或更高版本(或 Node.js v24+)。
  • TMDB API Read Access Token(v4 JWT)——可从 TMDB API 设置免费获取。
安装
  1. 克隆仓库:
git clone https://github.com/cyanheads/tmdb-mcp-server.git
  1. 进入目录:
cd tmdb-mcp-server
  1. 安装依赖:
bun install
  1. 配置环境:
cp .env.example .env
# edit .env and set TMDB_API_KEY

配置

所有配置都会在启动时通过 Zod 模式进行验证。主要环境变量:

变量描述默认值
TMDB_API_KEY必需。 TMDB v4 API Read Access Token(JWT)。—
TMDB_LANGUAGE默认响应语言(例如 en-US);单次调用中的 language 会覆盖此设置。en-US
TMDB_DEFAULT_REGION在缺少 watch_region 时提示中显示的区域;不会应用于查询。US
MCP_TRANSPORT_TYPE传输方式:stdio 或 http。stdio
MCP_HTTP_PORTHTTP 服务端口。3010
MCP_AUTH_MODE身份验证模式:none、jwt 或 oauth。none
MCP_LOG_LEVEL日志级别(RFC 5424)。info
LOG_TOOL_FAILURE_PAYLOADS记录失败工具的参数和结果;按键名脱敏,并限制在 LOG_TOOL_FAILURE_PAYLOAD_MAX_BYTES 指定的大小以内(默认值为 16384)。自由格式的值可能包含机密信息。false
STORAGE_PROVIDER_TYPE存储后端。in-memory
OTEL_ENABLED启用 OpenTelemetry 监测(跨度、指标、完成日志)。false
OTEL_EXPORTER_OTLP_LOGS_ENDPOINTOTLP 日志端点。—

完整的可选覆盖项列表请参阅 .env.example。

运行服务

本地开发
  • 构建并运行:

    # One-time build
    bun run rebuild
    
    # Run the built server
    bun run start:stdio
    # or
    bun run start:http
    
  • 运行检查和测试:

    bun run devcheck   # Lint, format, typecheck, security
    bun run test       # Vitest test suite
    bun run lint:mcp   # Validate MCP definitions against spec
    
Docker
docker build -t tmdb-mcp-server .
docker run --rm -e TMDB_API_KEY=your-token -p 3010:3010 tmdb-mcp-server

Dockerfile 默认使用 HTTP 传输、无状态会话模式,并将日志写入 /var/log/tmdb-mcp-server。默认会安装 OpenTelemetry 对等依赖项——如需省略这些依赖项,请使用 --build-arg OTEL_ENABLED=false 构建。

项目结构

目录用途
src/index.tscreateApp() 入口点——注册工具和资源。
src/config使用 Zod 解析并验证服务专属的环境变量。
src/mcp-server/tools工具定义(*.tool.ts)——八个 TMDB 工具。
src/mcp-server/resources资源定义(*.resource.ts)——电影、电视和人物详情。
src/services/tmdbTMDB v3 REST 客户端。
tests/与 src/ 结构对应的单元测试和集成测试。

开发指南

开发指南和架构规则请参阅 AGENTS.md(或内容相同的 CLAUDE.md。简要说明:

  • 处理程序抛出异常,框架负责捕获——工具逻辑中不要使用 try/catch
  • 使用 ctx.log 记录请求级日志,使用 ctx.state 存储租户级数据
  • 通过 src/mcp-server/*/definitions/index.ts 中的 barrels 注册新工具和资源

致谢

TMDB 本产品使用 TMDB API,但未获 TMDB 背书或认证。流媒体可用性数据由 JustWatch 通过 TMDB 提供,并因地区而异。

贡献

欢迎提交问题。提交前请运行检查和测试:

bun run devcheck
bun run test

许可证

Apache-2.0——详情请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。