电影数据库服务器

一个为The Movie Database (TMDB) API提供电影和电视搜索、流媒体可用性、演员和工作人员详细信息以及推荐功能的MCP服务器。

  • by Laksh-star
  • TypeScript
  • 本地部署
  • 75 星标
  • 更新于
在 GitHub 查看 Laksh-star/mcp-server-tmdb

使用说明

TMDB MCP服务器

电影数据库(TMDB)API的MCP服务器。它提供电影和电视搜索、流媒体可用性、演员和工作人员详细信息,以及为Codex和Claude Desktop等助理提供建议。

有关可重用MCP服务器和更高级别功能工作流之间的架构划分,请参阅 用户界面.md.

工具

电影探索

  • 获取关注列表 --按心情、国家、语言、运行时间、评级和服务对周末入围名单进行排名
  • 计划_聚会_聚会 --将电影之夜计划分组,包括主要选择、备份、通配符、适合派对的原因、提供商可用性,并避免标题过滤
  • build_franchise_watch_order --特许经营/宇宙指南,包括发布顺序、建议顺序、总运行时间和供应商意识说明
  • build_collection_gaplan --特许经营完成计划,包括关注/缺失的条目、剩余运行时间、提供商可用性和完成路径
  • 推荐快速配置文件 --来自喜欢/不喜欢的标题的推荐,包括提供商知道的评分、比赛原因和注意事项
  • 构建_发布_日历_日程表 --发布窗口观察列表,包括即将上映的电影、提供商准备的选择、广泛的房间基线,并观看稍后的评分
  • search_movies --按标题/关键字搜索→ 标题、ID、评级、概述
  • get_trending --十大热门电影(timeWindow:“日”|“周”)
  • get_weekly_trepend_by_language --每周热门电影按原始语言分为英语、印地语和泰卢固语
  • search_by_genre --电影类型名称,可选年份过滤器
  • 高级搜索 --按流派、年份、最低评级、排序、语言过滤
  • search_by_关键字 --按主题/关键字查找电影(例如“僵尸”、“抢劫”)

电影详细信息

  • get_movie-details --完整细节:演员、工作人员、运行时间、流派、评论(由 movieId)
  • 比较电影 --对2-5个电影ID进行并排比较,包括评级、运行时间、演员、导演、提供商和最佳匹配注释
  • get_recommendations --基于电影ID的前5个推荐
  • get_similar_movies --通过TMDB的相似性算法播放相似电影
  • get_watch_providers --按国家/地区划分的流媒体/租赁/购买可用性(默认值:IN)
  • find_where towatch --搜索1-5个电影标题,并返回流媒体/租赁/购买可用性以及首选服务匹配

电视节目

  • search_tv_shows --按标题搜索电视剧
  • get_trending_tv --十大热门电视节目(timeWindow:“日”|“周”)

人们

  • 搜索_人 --按名字查找演员、导演、剧组→ ID+已知作品
  • get_person_details --完整的传记+电影目录(电影+电视) personId
  • build_person_watch_path --演员/导演观看路径,包括最佳评价、现在可用、最近和首发选择

资源

  • tmdb:///movie/<id> --JSON格式的完整电影细节(标题、演员、导演、评论、海报URL)

快速开始

  1. 获取TMDB API密钥 themoviedb.org → 账户设置→ API

  2. 克隆、安装和构建:

    git clone https://github.com/Laksh-star/mcp-server-tmdb.git
    cd mcp-server-tmdb
    npm install
    
  3. 创建本地env文件并添加TMDB密钥:

    cp .env.example .env
    
  4. 安装本地Codex和Claude Desktop集成:

    npm run install:local
    
  5. 重新启动Codex或Claude Desktop(如果已打开)。

  6. 使用如下提示进行验证:

    What movies are trending this week?
    

在食品法典委员会,新的会议应该显示 TMDB 在插件列表中并公开 mcp__tmdb__ 命名空间。

工具表面冒烟

添加或合并工具后使用此冒烟测试。它验证预期的MCP工具合同,并调用主要的工作流程工具: compare_movies, find_where_to_watch, get_weekend_watchlist, plan_watch_party, build_franchise_watch_order, build_collection_gap_plan, recommend_from_taste_profile,以及 build_person_watch_path.

本地标准化MCP:

npm run build
set -a && source ./.env && set +a && npm run smoke:tools

Cloudflare托管的MCP:

TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/tool-surface-smoke.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp

该脚本将一个紧凑的验证工件写入:

examples/tool-surface-smoke.md

为了避免工具膨胀,最好添加工作流工具,将多个TMDB调用组合到一个有用的用户决策中。仅当原始端点样式工具是可广泛重用的图元时,才保留它们。

每周趋势语言演示

此仓库包括一个调用MCP工具的小型可共享演示 get_weekly_trending_by_language,它获取实时TMDB每周热门电影,并按TMDB对当前首页进行分组 original_language.

在本地stdio MCP服务器上运行它:

npm run build
set -a && source ./.env && set +a && npm run demo:weekly-trending

部署此版本的Worker后,对远程MCP端点运行相同的演示:

TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/weekly-trending-languages.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp

如果部署是为了个人测试而故意不授权的,请省略 TMDB_MCP_ACCESS_TOKEN.

每周流媒体雷达

这个仓库还包括一个脚本优先的每周雷达。它将现有的MCP工具链接到一个Markdown工件中,该工件包含电影趋势、电视趋势、语言势头、动作就绪选择、家庭安全选择和口味分析探针。

本地标准化MCP:

npm run build
set -a && source ./.env && set +a && npm run demo:weekly-radar -- --country US

Cloudflare托管的MCP:

TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/weekly-streaming-radar.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --country US

脚本写道:

examples/weekly-streaming-radar.md

发布日历观察列表

发布日历可作为MCP工具使用 build_release_calendar_watchlist演示脚本调用该工具,并编写一个Markdown工件,用于发布窗口扫描、查看后续候选、提供商就绪选择和广泛的房间基线。

本地标准化MCP:

npm run build
set -a && source ./.env && set +a && npm run demo:release-calendar -- --country US --days 90

Cloudflare托管的MCP:

TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/release-calendar-watchlist.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --country US --days 90

脚本写道:

examples/release-calendar-watchlist.md

提供商更改监视器

提供程序监视器首先是脚本,因为它需要持久状态。它召唤 find_where_to_watch,将当前提供程序列表与JSON快照进行比较,并编写Markdown增量报告,显示新的、已删除的、未更改的和缺少的提供程序可用性。

本地标准化MCP:

npm run build
set -a && source ./.env && set +a && npm run demo:provider-monitor -- --country US --titles "The Matrix,Inception" --services "Netflix,Prime Video"

Cloudflare托管的MCP:

TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/provider-change-monitor.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --country US --titles "The Matrix,Inception" --services "Netflix,Prime Video"

脚本写道:

examples/provider-change-monitor.md
examples/provider-change-snapshot.json

收藏缺口查找器

收集差距查找器脚本现在调用升级的MCP工具 build_collection_gap_plan 并编写一个可重复的Markdown完成报告,其中包含关注的条目、缺失的条目、剩余运行时间、提供程序可用性和最短的完成路径。

本地标准化MCP:

npm run build
set -a && source ./.env && set +a && npm run demo:collection-gaps -- --franchise "The Matrix" --watched "The Matrix" --country US --services "Netflix,Prime Video"

Cloudflare托管的MCP:

TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/collection-gap-finder.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --franchise "The Matrix" --watched "The Matrix" --country US --services "Netflix,Prime Video"

脚本写道:

examples/collection-gap-finder.md

Cloudflare Workers上的远程MCP

此仓库还可以作为Cloudflare Workers上的远程MCP服务器运行。远程服务器在以下位置公开了相同的TMDB工具 /mcp 通过流式HTTP,Claude、Cowork、Claude Desktop连接器和其他远程MCP客户端可以连接到公共URL。

现有的本地stdio服务器对于Codex和本地Claude Desktop的使用保持不变。Cloudflare入口点是 src/worker.ts.

Worker还提供浏览器演示 /: 周末值班礼宾。它支持个人选择和观看派对模式,然后使用TMDB发现、趋势、正在播放、学分、海报和观看提供商数据构建排名电影入围名单。浏览器应用程序还包括一个用于Cloudflare使用的帮助抽屉和一个工作流演示面板,其中包含用于脚本优先工件的命令,如每周流媒体雷达、提供商更改监视器和收集差距查找器。

浏览器演示还包括 MCP刀具表面 调用已部署的面板 /mcp 路由,验证预期的工具合同,并采样 compare_movies, find_where_to_watch, get_weekend_watchlist, plan_watch_party, build_franchise_watch_order, build_collection_gap_plan, recommend_from_taste_profile,以及 build_person_watch_path.

有关完整的浏览器应用程序、部署的Worker、访问令牌和MCP切换,请参阅 docs/weekend-watch-concierge.md.

部署

  1. 登录Cloudflare:

    npx wrangler login
    
  2. 将TMDB密钥存储为Worker密钥:

    npx wrangler secret put TMDB_API_KEY
    
  3. 在共享部署之前,将访问令牌存储为Worker密钥:

    npx wrangler secret put ACCESS_TOKEN
    

    当 ACCESS_TOKEN 设置, POST /api/concierge 和 POST /mcp 要求:

    Authorization: Bearer <your-access-token>
    
  4. 检查Worker捆绑包:

    npm run worker:dry-run
    
  5. 部署:

    npm run worker:deploy
    

Cloudflare将打印一个URL,如下所示:

https://tmdb-mcp.<your-workers-subdomain>.workers.dev

在远程客户端中使用此MCP端点:

https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp

使用此浏览器演示URL:

https://tmdb-mcp.<your-workers-subdomain>.workers.dev/

来自Claude/Cowork的连接

对于Claude定制连接器:

  1. 打开克劳德设置: Customize -> Connectors.
  2. 点击 + -> Add custom connector.
  3. 使用已部署的Worker MCP URL:
    https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp
    
  4. 在对话中启用连接器并询问TMDB问题,例如:
    What movies are trending this week?
    

对于仍需要本地命令的Claude Desktop版本或MCP客户端,请使用 mcp-remote 代理:

{
  "mcpServers": {
    "tmdb-remote": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp"
      ]
    }
  }
}

安全说明

如果 ACCESS_TOKEN 如果未配置,则Worker是无权限的,便于进行个人测试。任何拥有Worker URL的人都可以调用只读TMDB工具并使用您的TMDB API配额。保持 ACCESS_TOKEN 在您自己的帐户之外共享之前,请先配置或使用Cloudflare Access。

周末值班礼宾

运行离线礼宾测试:

npm test

这将构建TypeScript项目,启动一个与TMDB兼容的小型本地夹具服务器,并验证 createWeekendConcierge 在尊重运行时过滤器的同时,首先对请求的流媒体服务匹配进行排名。它不需要TMDB API密钥。

在本地运行Worker:

npm run worker:dev

这将从以下位置同步本地值 .env 进入一个未被追踪的领域 .dev.vars 文件,以便Wrangler可以公开 TMDB_API_KEY 在当地发展过程中,工人。

对于受保护的本地测试,请添加 ACCESS_TOKEN 到 .env浏览器应用程序有一个访问令牌字段,烟雾脚本可以读取 ACCESS_TOKEN 或 TMDB_MCP_ACCESS_TOKEN 来自shell环境。

打开:

http://127.0.0.1:8787/

在本地工人运行后对礼宾API进行烟雾测试:

npm run smoke:concierge

烟雾测试远程MCP端点,并呼叫面向客服的礼宾工具:

node scripts/remote-mcp-smoke.mjs http://127.0.0.1:8787/mcp --call-concierge

对于受保护的部署:

TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/remote-mcp-smoke.mjs https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --call-concierge

或者测试已部署的Worker:

node scripts/concierge-smoke.mjs https://tmdb-mcp.<your-workers-subdomain>.workers.dev

该应用程序使用:

  • POST /api/concierge 排名电影精选
  • POST /api/collection-gap-plan 规划实验室收集缺口
  • POST /api/taste-profile 关于规划实验室的口味建议
  • POST /api/person-watch-path 规划实验室人员观察路径
  • GET /health 用于部署健康状况
  • POST /mcp 用于远程MCP客户端

代理人可以致电 get_weekend_watchlist 与:

  • mood: crowd, thriller, thoughtful, funny, family,或 mindbend
  • country:例如,手表提供商地区 IN 或 US
  • language:例如,原始语言代码 en, hi, ta, te,或 any
  • runtime:最大分钟数,例如 120, 150,或 any
  • minRating:最低TMDB额定值
  • services:首选流媒体服务
  • familySafe:设置为 true 当TMDB流派数据可用时,排除常见的成熟流派

代理人可以致电 plan_watch_party 当决定是针对一个群体时。它接受:

  • moods:从以下一到三个值 crowd, thriller, thoughtful, funny, family,或 mindbend
  • groupSize:观看人数
  • country, language, runtime, minRating,以及 services:与周末观察名单含义相同
  • avoidTitles:该组已经看过或希望排除的标题
  • familySafe:设置为 true 当TMDB流派数据可用时,排除常见的成熟流派

代理人可以致电 build_franchise_watch_order 收藏或宇宙指南。它接受:

  • query:特许经营或收藏名称,例如 The Matrix, Dune, Batman,或 Mission Impossible
  • country:例如,手表提供商地区 IN 或 US
  • maxMovies:最多可包含2到20个收藏条目

代理人可以致电 build_collection_gap_plan 用于特许经营完成规划。它接受:

  • query:特许经营或收藏名称
  • watchedTitles:观看的标题或TMDB电影ID
  • country:例如,手表提供商地区 IN 或 US
  • services:首选流媒体服务
  • maxMovies:最多可包含2到20个收藏条目

代理人可以致电 recommend_from_taste_profile 用于个性化推荐。它接受:

  • likedTitles:用户喜欢的一到五部电影
  • dislikedTitles:用户在风格上不喜欢或想要避免的可选电影
  • country, services, language, runtime,以及 minRating:筛选和立即观看偏好
  • maxResults:建议返回的数量,从3个到10个

代理人可以致电 build_person_watch_path 演员、导演、作家或剧组人员。它接受:

  • name:例如,人名 Keanu Reeves 或 Christopher Nolan
  • country:例如,手表提供商地区 IN 或 US
  • services:首选流媒体服务
  • maxTitles:要返回的监视路径条目数,从3到8

Cloudflare MCP演示工作流程

对于具体的端到端代理工作流程,请运行正在播放的后续演示。它使用MCP服务器作为远程客户端:

  1. get_now_playing 在选定地区发现当前的剧院
  2. get_movie_details 对于所选标题
  3. get_watch_providers 立即观看可用性
  4. get_recommendations,与 get_similar_movies 非常新的标题的后备
  5. get_watch_providers 用于后续可用性检查

本地标准化MCP:

npm run build
set -a && source ./.env && set +a && npm run demo:now-playing -- --region US

Cloudflare托管的MCP:

TMDB_MCP_ACCESS_TOKEN=<your-access-token> node scripts/now-playing-follow-on-demo.mjs --mcp-url https://tmdb-mcp.<your-workers-subdomain>.workers.dev/mcp --region US

脚本在此处写入最终工件:

examples/now-playing-follow-on-demo.md

什么 npm run install:local 做

安装程序使用repo拥有的启动器 plugins/tmdb/scripts/run-server.sh.

对于Codex it:

  • 将启动器注册为MCP服务器
  • 安装本地 TMDB 插件负载,使其出现在插件UI中

对于Claude Desktop来说:

  • 将同一启动器注册为本地MCP服务器

它更新:

  • ~/.codex/config.toml
  • ~/.codex/.tmp/plugins/.agents/plugins/marketplace.json
  • ~/.codex/plugins/cache/openai-curated/tmdb/...
  • ~/Library/Application Support/Claude/claude_desktop_config.json

发射器显示 TMDB_API_KEY 从您的shell环境或repo .env 文件。

使用Claude Desktop

如果您更喜欢手动设置,请添加 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "tmdb-local": {
      "command": "/full/path/to/mcp-server-tmdb/plugins/tmdb/scripts/run-server.sh",
      "args": []
    }
  }
}

编辑配置后重新启动Claude Desktop。

使用Codex

安装程序将这些块添加到 ~/.codex/config.toml:

[mcp_servers.tmdb_local]
command = "/full/path/to/mcp-server-tmdb/plugins/tmdb/scripts/run-server.sh"

[plugins."tmdb@openai-curated"]
enabled = true

编辑配置后重新启动Codex。在一次新的食品法典委员会会议上, TMDB 应该出现在插件列表中并贡献 mcp__tmdb__ 命名空间。

验证

离线烟雾测试:

TMDB_API_KEY=dummy node plugins/tmdb/scripts/smoke-test.mjs

在线烟雾测试:

set -a && source ./.env && set +a && node plugins/tmdb/scripts/smoke-test.mjs --online

插件文档

有关插件打包、本地安装行为和Codex特定说明,请参阅 plugins/tmdb/README.md.

与BizClaw/NanoClaw一起使用

内置于代理容器中。刚刚设置 TMDB_API_KEY 在你的 .env file--不需要配置。

示例提示

"What's trending in movies this week?"
"Find me Thriller movies from 2023"
"Who is Christopher Nolan and what has he directed?"
"Where can I watch Inception in India?"
"Get details for movie ID 550 (Fight Club)"
"Find movies similar to Interstellar"
"What are the trending TV shows right now?"

许可证

麻省理工学院