什么是 IMDb Explorer?
从 IMDb 探索电影、剧集、演员、幕后、评分与票房,浏览榜单、待映和各国片单,并按片名、类型、年份、语言等精准筛选。
README
IMDb MCP Server
A Python server implementing Model Context Protocol (MCP) for movie and TV show information using the IMDb API service.
Table of Contents
- Overview
- Features
- Requirements
- Configuration
- Tools
- Example Prompt and Response
- Installation
- Starting the Server
- Technical Details
- Limitations
- Troubleshooting
- License
Overview
This server provides a comprehensive set of tools for accessing IMDb data through the IMDb API. It serves as a bridge between agents and the IMDb database, offering detailed information about movies, TV shows, actors, directors, and more.
Features
- 🎬 Movie and TV show search capabilities
- 📋 Detailed information about movies and TV shows
- 👨👩👧👦 Cast and crew information
- 🏆 Top-rated and popular content lists
- 💰 Box office data
- 🌍 Country-specific movie information (with special focus on Indian cinema)
- 🔜 Upcoming releases
- 🔄 Efficient response caching system
Requirements
- Python: 3.13 or higher
- Package Manager: uv (recommended) or pip
- RapidAPI Account: Required for IMDb API access
Configuration
This server requires an API key from RapidAPI for the IMDb API service:
-
Create an account on RapidAPI
-
Subscribe to the IMDb API on RapidAPI
-
Configure the API key using one of these methods:
Method 1: Smithery Configuration (for HTTP mode)
- When installing via Smithery, provide your API key through the Smithery configuration system
- The key is passed per-request, allowing for multi-user scenarios
Method 2: Environment Variable (for stdio mode)
bashexport RAPID_API_KEY_IMDB=your_api_key_here
Tools
Search Tools
| Tool | Description | Example |
|---|---|---|
| search_imdb | Search for movies and TV shows with various filtering options | search_imdb(primary_title="Inception") |
IMDb ID Tools
| Tool | Description | Example |
|---|---|---|
| get_imdb_details | Retrieve detailed information about a movie or TV show | get_imdb_details(imdb_id="tt1375666") |
| get_directors | Retrieve the directors of a movie | get_directors(imdb_id="tt1375666") |
| get_cast | Retrieve the cast of a movie | get_cast(imdb_id="tt1375666") |
| get_writers | Retrieve the writers of a movie | get_writers(imdb_id="tt1375666") |
Configuration Tools
| Tool | Description | Example |
|---|---|---|
| get_types | Get all available content types | get_types() |
| get_genres | Get all available genres | get_genres() |
| get_countries | Get all available countries | get_countries() |
| get_languages | Get all available languages | get_languages() |
Movies Tools
Paginated (5 results per page)
| Tool | Description | Example |
|---|---|---|
| get_top_250_movies | Get the top 250 movies from IMDb | get_top_250_movies(start=0) |
| get_top_box_office_us | Get the US box office records | get_top_box_office_us(start=0) |
| get_most_popular_movies | Get the most popular movies | get_most_popular_movies(start=0) |
TV Shows Tools
Paginated (5 results per page)
| Tool | Description | Example |
|---|---|---|
| get_top_250_tv_shows | Get the top 250 TV shows from IMDb | get_top_250_tv_shows(start=0) |
| get_most_popular_tv_shows | Get the most popular TV shows | get_most_popular_tv_shows(start=0) |
Upcoming Releases Tools
Paginated (5 results per page)
| Tool | Description | Example |
|---|---|---|
| get_upcoming_releases | Get upcoming movie and TV show releases by country | get_upcoming_releases(country_code="US", type="MOVIE", start=0) |
| get_country_codes_for_upcoming_releases | Get available country codes for upcoming releases | get_country_codes_for_upcoming_releases() |
India Spotlight Tools
Paginated (5 results per page)
| Tool | Description | Example |
|---|---|---|
| get_top_rated_malayalam_movies | Get top 50 rated Malayalam movies | get_top_rated_malayalam_movies(start=0) |
| get_upcoming_indian_movies | Get most anticipated upcoming Indian movies | get_upcoming_indian_movies(start=0) |
| get_trending_tamil_movies | Get trending Tamil movies | get_trending_tamil_movies(start=0) |
| get_trending_telugu_movies | Get trending Telugu movies | get_trending_telugu_movies(start=0) |
| get_top_rated_tamil_movies | Get top 50 rated Tamil movies | get_top_rated_tamil_movies(start=0) |
| get_top_rated_telugu_movies | Get top 50 rated Telugu movies | get_top_rated_telugu_movies(start=0) |
| get_top_rated_indian_movies | Get top 250 rated Indian movies | get_top_rated_indian_movies(start=0) |
Example Prompt and Response
What are the 5 action movies that will be released in the nearest future?
I'll find the upcoming action movies for you.
Called MCP tool get_upcoming_releases
Now I'll look for the action movies from these upcoming releases:
Called MCP tool get_upcoming_releases
Based on the search results, here are the 5 upcoming action movies that will be released in the nearest future:
-
A Minecraft Movie (April 4, 2025)
- Genres: Action, Adventure, Comedy
- Description: Four misfits are pulled through a portal into a cubic wonderland and embark on a quest with an expert crafter to get back home.
-
Freaky Tales (April 4, 2025)
- Genres: Action, Adventure, Comedy
- Description: Four interconnected stories set in 1987 Oakland, CA about the love of music, movies, people, places and memories.
-
Wake Up (April 4, 2025)
- Genres: Action, Horror
- Description: Young activists invade a furniture store to protest environmental issues but find themselves trapped with a hunting-obsessed night guard.
-
Warfare (April 11, 2025)
- Genres: Action, Drama, War
- Description: Based on ex-Navy Seal Ray Mendoza's real-life experiences during the Iraq War.
-
The Amateur (April 11, 2025)
- Genres: Action, Thriller
- Description: A CIA cryptographer blackmails his agency into training him to pursue terrorists who killed his wife.
Installation
Installing via Smithery (Recommended)
To install IMDb Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @uzaysozen/imdb-mcp-server --client claude
This will automatically configure the server with your RapidAPI key through Smithery's configuration system.
Option 1: Using Docker
- Clone this repository
git clone https://github.com/uzaysozen/imdb-mcp-server.git
cd imdb-mcp-server
- Build the Docker image
docker build -t imdb_server .
- Run the Docker container
docker run -d -p 8081:8081 -e RAPID_API_KEY_IMDB=your_api_key_here --name imdb_server imdb_server
Note: The Docker container runs in HTTP mode by default on port 8081.
Option 2: Direct Python Execution (using uv)
- Clone this repository
git clone https://github.com/uzaysozen/imdb-mcp-server.git
cd imdb-mcp-server
- Install uv (if not already installed)
# On macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
- Install dependencies using uv
uv sync
- Add this to your
claude_desktop_config.json:
{
"mcpServers": {
"imdb_server": {
"command": "uv",
"args": [
"--directory",
"/path/to/imdb-mcp-server",
"run",
"imdb-server"
],
"env": {
"RAPID_API_KEY_IMDB": "your_api_key_here"
}
}
}
}
Starting the Server
Stdio Mode (Default for local development)
# Using uv (recommended)
uv run imdb-server
# Or directly with Python module
python -m imdb_mcp_server
HTTP Mode (Used by Docker and Smithery)
# Using uv
TRANSPORT=http uv run imdb-server
# Or with Python module
TRANSPORT=http python -m imdb_mcp_server
# With custom port
TRANSPORT=http PORT=8081 uv run imdb-server
After adding your chosen configuration, restart Claude Desktop to load the IMDb server. You'll then be able to use all the movie and TV show data tools in your conversations with Claude.
Technical Details
The server is built on:
- Python 3.13+: Modern Python runtime
- FastMCP: Server implementation with HTTP and stdio transport support
- IMDb API via RapidAPI: Primary data source
- Requests: API communication library
- Smithery: Configuration and deployment management
- uv: Fast Python package manager and runner
- Custom in-memory caching system: Optimized response caching with LRU eviction
- Smart pagination: Limits results to 5 items per request, optimizing for AI agent consumption
Transport Modes
The server supports two transport modes:
-
Stdio Mode (Default): Traditional MCP server communication via standard input/output
- Used for local Claude Desktop installations
- Configured via environment variables (
RAPID_API_KEY_IMDB)
-
HTTP Mode: RESTful HTTP transport with CORS support
- Used for Docker deployments and Smithery
- Supports per-request configuration via Smithery config system
- Runs on port 8081 by default (configurable via
PORTenvironment variable)
Pagination System
All data retrieval tools implement pagination to enhance AI agent performance:
Purpose
- AI-Optimized Responses: Limits each response to 5 items, preventing overwhelm in AI agents that process the data
- Focused Results: Helps agents provide more relevant and concise information to users
- Improved Processing: Reduces the cognitive load on AI agents when analyzing movie and TV show data
Implementation
- Each paginated endpoint accepts a
startparameter (default: 0) - Results include navigation metadata (totalCount, hasMore, nextStart)
- Consistent 5-item page size across all collection endpoints
- Example request with pagination:
get_top_250_movies(start=5)returns items 6-10
Benefits
- Better Agent Responses: Prevents AI agents from receiving too much data at once
- Manageable Information: Creates digestible chunks of data that agents can process effectively
- Sequential Access: Allows structured exploration of large datasets through multiple tool calls
Caching System
The server implements an efficient caching system to improve performance and reduce API calls:
Features
- In-memory Cache: Stores API responses in memory for quick retrieval
- Configurable Expiration and Size: Cache entries expire after a customizable time period (default: 10 minutes) and have a default size of 100 cache keys
- Automatic Cache Cleaning: Periodically (default: 5 minutes) removes expired entries to manage memory usage using a background thread
- Cache Keys: Generated based on the URL and query parameters to ensure uniqueness
Benefits
- Reduced API Usage: Helps stay within API rate limits by reusing responses
- Faster Response Times: Eliminates network latency for cached queries
- Cost Efficiency: Minimizes the number of API calls, especially for popular or repeated queries
Configuration
The cache size and expiration time can be adjusted in src/main.py:
# Defaults: 600 seconds (10 minutes) and 100 cache keys
# You can customize by modifying the ResponseCache instantiation:
response_cache = ResponseCache(max_size=100, expiry_seconds=600)
# Example with custom values:
# response_cache = ResponseCache(max_size=50, expiry_seconds=120)
Limitations
- API rate limits apply based on your RapidAPI subscription
- Some detailed information may require additional API calls
- Search results may be limited to a certain number of items per request
- In-memory cache is lost when server restarts
- All paginated responses return a maximum of 5 items per page
Troubleshooting
| Problem | Solution |
|---|---|
| API key not recognized | Stdio mode: Ensure the RAPID_API_KEY_IMDB environment variable is properly set. HTTP mode: Verify the rapidApiKeyImdb is provided in the Smithery configuration |
| Rate limit exceeded | Check your RapidAPI subscription tier and limits at RapidAPI Dashboard |
| Timeout errors | The server has a 30-second timeout; for large requests, try limiting parameters or using pagination |
| Empty results | Try broader search terms or check if the content exists in IMDb's database |
| High memory usage | If running for extended periods with many unique queries, restart the server occasionally to clear the cache |
| Port already in use | Change the port using the PORT environment variable (HTTP mode only): PORT=8082 python src/main.py |
| Import errors | Ensure all dependencies are installed: uv sync or pip install mcp[cli] requests smithery |
| Connection refused (Docker) | Ensure the container is running: docker ps and check the logs: docker logs imdb_server |
License
This MCP server is available under the MIT License.
常见问题
IMDb Explorer 是什么?
从 IMDb 探索电影、剧集、演员、幕后、评分与票房,浏览榜单、待映和各国片单,并按片名、类型、年份、语言等精准筛选。
相关 Skills
Slack动图
by anthropics
面向Slack的动图制作Skill,内置emoji/消息GIF的尺寸、帧率和色彩约束、校验与优化流程,适合把创意或上传图片快速做成可直接发送的Slack动画。
✎ 帮你快速做出适配 Slack 的动图,内置约束规则和校验工具,少踩上传与播放坑,做表情包和演示都更省心。
MCP构建
by anthropics
聚焦高质量 MCP Server 开发,覆盖协议研究、工具设计、错误处理与传输选型,适合用 FastMCP 或 MCP SDK 对接外部 API、封装服务能力。
✎ 想让 LLM 稳定调用外部 API,就用 MCP构建:从 Python 到 Node 都有成熟指引,帮你更快做出高质量 MCP 服务器。
接口测试套件
by alirezarezvani
扫描 Next.js、Express、FastAPI、Django REST 的 API 路由,自动生成覆盖鉴权、参数校验、错误码、分页、上传与限流场景的 Vitest 或 Pytest 测试套件。
✎ 帮你把API与集成测试自动化跑顺,减少回归漏测;能力全面,尤其适合复杂接口场景的QA团队。
相关 MCP Server
Slack 消息
编辑精选by Anthropic
Slack 是让 AI 助手直接读写你的 Slack 频道和消息的 MCP 服务器。
✎ 这个服务器解决了团队协作中需要 AI 实时获取 Slack 信息的痛点,特别适合开发团队让 Claude 帮忙汇总频道讨论或发送通知。不过,它目前只是参考实现,文档有限,不建议在生产环境直接使用——更适合开发者学习 MCP 如何集成第三方服务。
by netdata
io.github.netdata/mcp-server 是让 AI 助手实时监控服务器指标和日志的 MCP 服务器。
✎ 这个工具解决了运维人员需要手动检查系统状态的痛点,最适合 DevOps 团队让 Claude 自动分析性能数据。不过,它依赖 NetData 的现有部署,如果你没用过这个监控平台,得先花时间配置。
by d4vinci
Scrapling MCP Server 是专为现代网页设计的智能爬虫工具,支持绕过 Cloudflare 等反爬机制。
✎ 这个工具解决了爬取动态网页和反爬网站时的头疼问题,特别适合需要批量采集电商价格或新闻数据的开发者。不过,它依赖外部浏览器引擎,资源消耗较大,不适合轻量级任务。
