imdb-mcp-server

by uzaysozen
Verified

Integrations

  • Offers Docker deployment support with a pre-configured Docker image, allowing containerized execution of the IMDb MCP server with proper environment variable configuration.

  • Provides comprehensive access to IMDb movie and TV show data, including search capabilities, detailed information about titles, cast and crew details, top-rated content lists, box office data, upcoming releases, and country-specific movie information with special focus on Indian cinema.

  • Utilizes RapidAPI's IMDb API service to fetch movie and TV show information, requiring users to set up a RapidAPI account and subscribe to the IMDb API to obtain the necessary API key.

IMDb MCP 服务器

一个使用 IMDb API 服务为电影和电视节目信息实现模型上下文协议 (MCP) 的 Python 服务器。

目录

概述

该服务器提供了一套全面的工具,可通过 IMDb API 访问 IMDb 数据。它充当代理和 IMDb 数据库之间的桥梁,提供有关电影、电视节目、演员、导演等的详细信息。

特征

  • 🎬 电影和电视节目搜索功能
  • 📋 有关电影和电视节目的详细信息
  • 👨‍👩‍👧‍👦演员和工作人员信息
  • 🏆 最受好评和最热门的内容列表
  • 💰 票房数据
  • 🌍 特定国家的电影信息(特别关注印度电影)
  • 🔜 即将发布
  • 🔄 高效的响应缓存系统

配置

此服务器需要 RapidAPI 提供的 IMDb API 服务的 API 密钥:

  1. RapidAPI上创建帐户
  2. 在 RapidAPI 上订阅IMDb API
  3. 设置环境变量:
    RAPID_API_KEY_IMDB=your_api_key_here

工具

搜索工具

工具描述例子
搜索_imdb使用各种过滤选项搜索电影和电视节目search_imdb(primary_title="Inception")

IMDb ID 工具

工具描述例子
获取 imdb 详细信息检索有关电影或电视节目的详细信息get_imdb_details(imdb_id="tt1375666")
获取目录检索电影导演get_directors(imdb_id="tt1375666")
获取演员检索电影演员表get_cast(imdb_id="tt1375666")
获取写入器检索电影编剧get_writers(imdb_id="tt1375666")

配置工具

工具描述例子
获取类型获取所有可用的内容类型get_types()
获取流派获取所有可用的类型get_genres()
获取国家获取所有可用国家get_countries()
获取语言获取所有可用语言get_languages()

电影工具

分页(每页 5 条结果)

工具描述例子
获取前 250 部电影从 IMDb 获取排名前 250 的电影get_top_250_movies()
获取美国票房榜单创下美国票房纪录get_top_box_office_us()
获取最热门电影获取最受欢迎的电影get_most_popular_movies()

电视节目工具

分页(每页 5 条结果)

工具描述例子
获取前 250 部电视节目从 IMDb 获取排名前 250 的电视节目get_top_250_tv_shows()
获取最热门电视节目获取最受欢迎的电视节目get_most_popular_tv_shows()

即将发布的工具

分页(每页 5 条结果)

工具描述例子
获取即将发布的版本按国家/地区获取即将上映的电影和电视节目get_upcoming_releases(country_code="US", type="MOVIE")
获取即将发布的可用国家/地区代码获取即将发布的版本可用的国家/地区代码get_available_country_codes_for_upcoming_releases()

印度聚焦工具(分页)

分页(每页 5 条结果)

工具描述例子
获取马拉雅拉姆语评分最高的电影获取评分最高的 50 部马拉雅拉姆语电影get_top_rated_malayalam_movies()
获取即将上映的印度电影获取最受期待的即将上映的印度电影get_upcoming_indian_movies()
获取热门泰米尔电影获取热门泰米尔电影get_trending_tamil_movies()
获取热门泰卢固语电影获取热门泰卢固语电影get_trending_telugu_movies()
获取最热门的泰米尔电影获取评分最高的 50 部泰米尔电影get_top_rated_tamil_movies()
获取泰卢固语评分最高的电影获取评分最高的 50 部泰卢固语电影get_top_rated_telugu_movies()
获取印度电影评分最高获取评分最高的 250 部印度电影get_top_rated_indian_movies()

提示和响应示例

近期将上映的 5 部动作片是什么?

我会帮你找到即将上映的动作片。

调用 MCP 工具get_upcoming_releases

现在我将从这些即将上映的动作片中寻找:

调用 MCP 工具get_upcoming_releases

根据搜索结果,以下是即将上映的 5 部动作片:

  1. 《我的世界》大电影(2025 年 4 月 4 日)
    • 类型:动作、冒险、喜剧
    • 描述:四个格格不入的人被拉过一个入口,进入一个立方体仙境,并与一位熟练的工匠一起踏上回家的旅程。
  2. 《怪诞故事》 (2025年4月4日)
    • 类型:动作、冒险、喜剧
    • 描述:四个相互关联的故事,背景设定在 1987 年的加利福尼亚州奥克兰,讲述了对音乐、电影、人物、地点和回忆的热爱。
  3. 醒来(2025年4月4日)
    • 类型:动作、恐怖
    • 描述:年轻的活动家闯入一家家具店抗议环境问题,却发现自己被一个痴迷于狩猎的夜间警卫困住了。
  4. 战争(2025年4月11日)
    • 类型:动作、剧情、战争
    • 描述:根据前海豹突击队员雷·门多萨在伊拉克战争期间的真实经历改编。
  5. 《业余爱好者》 (2025年4月11日)
    • 类型:动作、惊悚
    • 描述:一名中央情报局密码员勒索他的机构训练他追捕杀害他妻子的恐怖分子。

安装

通过 Smithery 安装

要通过Smithery自动为 Claude Desktop 安装 IMDb 服务器:

npx -y @smithery/cli install @uzaysozen/imdb-mcp-server --client claude

选项 1:使用 Docker(推荐)

  1. 克隆此存储库
git clone https://github.com/uzaysozen/imdb-mcp-server.git cd imdb-mcp-server
  1. 安装依赖项
pip install -r requirements.txt
  1. 构建 Docker 镜像
docker build -t imdb_server .
  1. 运行 Docker 容器(确保您的 API 密钥作为环境变量传递)
docker run -d -p 8000:8000 -e RAPID_API_KEY_IMDB=your_api_key_here --name imdb_server imdb_server
  1. 将其添加到您的claude_desktop_config.json中:
{ "mcpServers": { "imdb_server": { "command": "docker", "args": [ "exec", "-i", "imdb_server", "imdb-mcp-server" ], "env": { "RAPID_API_KEY_IMDB": "your_api_key_here" } } } }

选项 2:直接执行 Python

  1. 克隆此存储库
git clone https://github.com/uzaysozen/imdb-mcp-server.git cd imdb-mcp-server
  1. 安装依赖项
pip install -r requirements.txt
  1. 设置 API 密钥环境变量
export RAPID_API_KEY_IMDB=your_api_key_here
  1. 将其添加到您的claude_desktop_config.json中,根据需要调整 Python 路径:
{ "mcpServers": { "imdb_server": { "command": "/path/to/your/python", "args": [ "/path/to/imdb_server.py" ], "env": { "RAPID_API_KEY_IMDB": "your_api_key_here" } } } }

启动服务器

# Start the server directly python imdb_server.py # Or using MCP CLI mcp run imdb_server.py # Or if using Docker, the server starts automatically with the container docker run -d -p 8000:8000 -e RAPID_API_KEY_IMDB=your_api_key_here --name imdb_server imdb_server

添加您选择的配置后,重新启动 Claude Desktop 以加载 IMDb 服务器。之后,您就可以在与 Claude 的对话中使用所有电影和电视节目数据工具了。

技术细节

该服务器建立在:

  • 通过 RapidAPI 实现的 IMDb API
  • MCP API接口
  • API 通信请求
  • 用于服务器实现的 FastMCP
  • 自定义内存缓存系统
  • 智能分页将每个请求的结果限制为 5 个项目,以优化 AI 代理的使用

分页系统

所有数据检索工具都实现分页以增强 AI 代理的性能:

目的

  • AI 优化响应:将每个响应限制为 5 个项目,以防止处理数据的 AI 代理不堪重负
  • 重点结果:帮助代理向用户提供更相关、更简洁的信息
  • 改进处理能力:减少人工智能代理在分析电影和电视节目数据时的认知负荷

执行

  • 每个分页端点接受一个start参数(默认值:0)
  • 结果包括导航元数据(totalCount、hasMore、nextStart)
  • 所有收集端点的页面大小均为一致的 5 项
  • 带分页的示例请求: get_top_250_movies(start=5)返回第 6-10 项

好处

  • 更好的代理响应:防止 AI 代理同时接收过多数据
  • 可管理信息:创建代理可以有效处理的可消化数据块
  • 顺序访问:允许通过多个工具调用对大型数据集进行结构化探索

缓存系统

服务器实现了高效的缓存系统,以提高性能并减少 API 调用:

特征

  • 内存缓存:将 API 响应存储在内存中以便快速检索
  • 可配置的到期时间和大小:缓存条目在可自定义的时间段后过期(默认值:10 分钟),默认大小为 100 个缓存键
  • 自动缓存清理:定期(默认值:5 分钟)删除过期条目,以使用后台线程管理内存使用情况
  • 缓存键:根据 URL 和查询参数生成,以确保唯一性

好处

  • 减少 API 使用:通过重复使用响应来帮助保持在 API 速率限制内
  • 更快的响应时间:消除缓存查询的网络延迟
  • 成本效率:最大限度地减少 API 调用次数,特别是对于热门或重复的查询

配置

可以在代码中调整缓存大小和过期时间:

# Default are 600 seconds (10 minutes) and 100 cache keys response_cache = ResponseCache(expiry_seconds=120, max_size=50)

限制

  • API 速率限制基于您的 RapidAPI 订阅
  • 某些详细信息可能需要额外的 API 调用
  • 每个请求的搜索结果可能会限制为一定数量的项目
  • 服务器重启时内存缓存丢失
  • 所有分页响应每页最多返回 5 个项目

故障排除

问题解决方案
无法识别 API 密钥确保 RAPID_API_KEY_IMDB 环境变量已正确设置
超出速率限制检查您的 RapidAPI 订阅等级和限制
超时错误服务器有 30 秒的超时时间;对于较大的请求,请尝试限制参数
空结果尝试更广泛的搜索词或检查内容是否存在于 IMDb 数据库中
内存使用率高如果长时间运行并有很多唯一查询,请偶尔重新启动服务器以清除缓存

执照

此 MCP 服务器在 MIT 许可下可用。

ID: 420kawzfbk