首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
IMDb MCP服务器2026-05-07248分享添加福利群:解决AI开发者的「MCP实战痛点」
一个全面的MCP服务器,提供详细的IMDb数据,包括电影、电视节目和即将上映的影片。
By uzaysozen
2026-05-07248
github
详情内容

IMDb MCP 服务器

License: MIT Python 3.13 Docker RapidAPI smithery badge

这是一个使用 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
    

工具

搜索工具

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

IMDb ID 工具

工具 描述 示例
get_imdb_details 获取电影或电视剧的详细信息 get_imdb_details(imdb_id="tt1375666")
get_directors 获取电影的导演 get_directors(imdb_id="tt1375666")
get_cast 获取电影的演员阵容 get_cast(imdb_id="tt1375666")
get_writers 获取电影的编剧 get_writers(imdb_id="tt1375666")

配置工具

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

电影工具

分页(每页5条结果)

工具 描述 示例
get_top_250_movies 从IMDb获取排名前250的电影 get_top_250_movies()
get_top_box_office_us 获取美国票房记录 get_top_box_office_us()
get_most_popular_movies 获取最受欢迎的电影 get_most_popular_movies()

电视剧工具

分页(每页5条结果)

工具 描述 示例
get_top_250_tv_shows 从IMDb获取排名前250的电视剧 get_top_250_tv_shows()
get_most_popular_tv_shows 获取最受欢迎的电视剧 get_most_popular_tv_shows()

即将上映作品工具

分页(每页5条结果)

工具 描述 示例
get_upcoming_releases 按国家获取即将上映的电影和电视剧 get_upcoming_releases(country_code="US", type="MOVIE")
get_available_country_codes_for_upcoming_releases 获取可用于即将上映作品的国家代码 get_available_country_codes_for_upcoming_releases()

印度焦点工具(分页)

分页(每页5条结果)

工具 描述 示例
get_top_rated_malayalam_movies 获取评分最高的前50部马拉雅拉姆语电影 get_top_rated_malayalam_movies()
get_upcoming_indian_movies 获取最受期待的即将上映的印度电影 get_upcoming_indian_movies()
get_trending_tamil_movies 获取热门泰米尔语电影 get_trending_tamil_movies()
get_trending_telugu_movies 获取热门泰卢固语电影 get_trending_telugu_movies()
get_top_rated_tamil_movies 获取评分最高的前50部泰米尔语电影 get_top_rated_tamil_movies()
get_top_rated_telugu_movies 获取评分最高的前50部泰卢固语电影 get_top_rated_telugu_movies()
get_top_rated_indian_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 Server:

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接口
  • 使用Requests进行API通信
  • 使用FastMCP实现服务器
  • 自定义内存缓存系统
  • 智能分页,每次请求限制为5条结果,优化AI代理的消费

分页系统

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

目的

  • AI优化响应:每次响应限制为5条,防止AI代理处理数据时信息过载
  • 聚焦结果:帮助代理向用户提供更相关且简洁的信息
  • 改进处理:减少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)

限制

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

故障排除

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

许可证

此 MCP 服务器在 MIT 许可下提供。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档