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データベース間の橋渡しとして機能し、映画、テレビ番組、俳優、監督などの詳細情報を提供します。

特徴

  • 🎬 映画やテレビ番組の検索機能
  • 📋 映画やテレビ番組の詳細情報
  • 👨‍👩‍👧‍👦 キャストとクルーの情報
  • 🏆 評価の高い人気コンテンツリスト
  • 💰 興行収入データ
  • 🌍 国別の映画情報(特にインド映画に重点を置いたもの)
  • 🔜 今後のリリース
  • 🔄効率的なレスポンスキャッシュシステム

構成

このサーバーには、IMDb API サービス用の RapidAPI からの 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映画のキャストを取得するget_cast(imdb_id="tt1375666")
get_writers映画の脚本家を検索するget_writers(imdb_id="tt1375666")

設定ツール

道具説明
get_types利用可能なすべてのコンテンツタイプを取得するget_types()
ジャンルを取得する利用可能なすべてのジャンルを取得するget_genres()
国を取得する利用可能なすべての国を取得するget_countries()
言語を取得する利用可能なすべての言語を取得するget_languages()

映画ツール

ページ区切り(1ページあたり5件の結果)

道具説明
上位250の映画を取得するIMDbからトップ250の映画を入手get_top_250_movies()
ゲットトップボックスオフィスUS米国の興行収入記録を見るget_top_box_office_us()
最も人気のある映画最も人気のある映画を入手get_most_popular_movies()

テレビ番組ツール

ページ区切り(1ページあたり5件の結果)

道具説明
トップ250のテレビ番組を取得するIMDbからトップ250のテレビ番組を入手get_top_250_tv_shows()
最も人気のあるテレビ番組を取得する最も人気のあるテレビ番組を入手get_most_popular_tv_shows()

今後のリリースツール

ページ区切り(1ページあたり5件の結果)

道具説明
今後のリリースを取得する国別に今後の映画やテレビ番組の公開情報を入手get_upcoming_releases(country_code="US", type="MOVIE")
今後のリリースで利用可能な国コードを取得する今後のリリースで利用可能な国コードを取得するget_available_country_codes_for_upcoming_releases()

インドのスポットライトツール(ページ区切り)

ページ区切り(1ページあたり5件の結果)

道具説明
マラヤーラム語映画でトップ評価を獲得マラヤーラム語映画のトップ50をご覧くださいget_top_rated_malayalam_movies()
今後のインド映画最も期待される今後のインド映画を入手get_upcoming_indian_movies()
トレンドのタミル映画話題のタミル映画をチェックget_trending_tamil_movies()
トレンドのテルグ語映画話題のテルグ語映画をチェックget_trending_telugu_movies()
タミル映画でトップ評価を獲得評価の高いタミル映画トップ50get_top_rated_tamil_movies()
テルグ語映画でトップ評価を獲得評価の高いテルグ語映画トップ50get_top_rated_telugu_movies()
インド映画でトップ評価を獲得インド映画のトップ250を見るget_top_rated_indian_movies()

プロンプトと応答の例

近い将来公開されるアクション映画5本は何ですか?

これから公開されるアクション映画を探してきます。

MCPツールget_upcoming_releasesと呼ばれる

次に、今後公開されるアクション映画を探します。

MCPツールget_upcoming_releasesと呼ばれる

検索結果に基づいて、近い将来に公開される予定のアクション映画 5 本を紹介します。

  1. マインクラフト映画(2025年4月4日)
    • ジャンル: アクション、アドベンチャー、コメディ
    • 説明: 4 人のはみ出し者がポータルを通って立方体のワンダーランドに引き込まれ、熟練の職人とともに家に帰るための冒険に乗り出します。
  2. フリーキー・テイルズ(2025年4月4日)
    • ジャンル: アクション、アドベンチャー、コメディ
    • 説明: 1987 年のカリフォルニア州オークランドを舞台に、音楽、映画、人々、場所、思い出への愛を描いた 4 つの相互に関連した物語。
  3. 目覚めよ(2025年4月4日)
    • ジャンル: アクション、ホラー
    • 説明: 若い活動家たちが環境問題に抗議するために家具店に侵入するが、狩猟に夢中な夜警に捕らわれてしまう。
  4. 戦争(2025年4月11日)
    • ジャンル: アクション、ドラマ、戦争
    • 説明: 元海軍特殊部隊のレイ・メンドーサのイラク戦争中の実際の体験に基づいています。
  5. アマチュア(2025年4月11日)
    • ジャンル: アクション、スリラー
    • 説明: CIA の暗号解読者が、CIA を脅迫して、妻を殺したテロリストを追跡するための訓練を受けさせます。

インストール

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. 必要に応じて Python パスを調整しながら、これをclaude_desktop_config.jsonに追加します。
{ "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
  • APIインターフェース用のMCP
  • 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)

制限事項

  • APIレート制限はRapidAPIサブスクリプションに基づいて適用されます
  • 詳細情報には追加のAPI呼び出しが必要な場合があります
  • 検索結果はリクエストごとに一定数のアイテムに制限される場合があります
  • サーバーの再起動時にメモリ内キャッシュが失われます
  • すべてのページ区切りの応答は、ページごとに最大 5 つの項目を返します。

トラブルシューティング

問題解決
APIキーが認識されませんRAPID_API_KEY_IMDB環境変数が正しく設定されていることを確認してください
レート制限を超えましたRapidAPI サブスクリプションの階層と制限を確認してください
タイムアウトエラーサーバーには30秒のタイムアウトがあります。大規模なリクエストの場合は、パラメータを制限してみてください。
空の結果より広い検索語を試すか、コンテンツがIMDbのデータベースに存在するかどうかを確認してください
メモリ使用量が多い多くのユニークなクエリを長時間実行する場合は、時々サーバーを再起動してキャッシュをクリアしてください。

ライセンス

この MCP サーバーは MIT ライセンスの下で利用できます。

ID: 420kawzfbk