Trakt

🎬 MCP Trakt: エンターテイメントデータへの AI ゲートウェイ

AI 言語モデルと Trakt.tv API の間にブリッジを作成し、LLM がリアルタイムのエンターテイメント データと個人の Trakt 視聴履歴にアクセスできるようにするモデル コンテキスト プロトコル (MCP) サーバー。

🖥️ AI実験

この段落以外、ここにあるものはすべてAIによって生成されており、コードも例外ではありません。MCPについてもっと学びたいという目標があり、Cursorもよく使っていたので、これらを統合するのは自然な流れだと思いました。その結果、このプロジェクトが生まれました。今後の変更もすべてAIによって行われます。

🤖 MCP とは何ですか?

モデル コンテキスト プロトコル (MCP) は、Claude のような大規模言語モデル (LLM) が外部システムやデータ ソースと対話できるようにするオープン仕様です。

MCP は、AI モデルが次のことを行うための標準化された方法を作成します。

  • トレーニングの締め切り日を超えてリアルタイムデータにアクセスする
  • 専用サーバーを介して外部APIおよびWebサービスに接続する
  • 特殊なツールと機能を安全に実行する
  • 外部リソースの読み取りと書き込み
  • テキストのみの形式では扱いにくい複雑なデータを処理する

MCP は基本的に、次のものを定義することによって機能します。

  1. リソース: AI が読み書きできる構造化データ ソース ( trakt://shows/trendingなど)
  2. ツール: AIが特定のアクションを実行するために呼び出すことができる関数( fetch_trending_showsなど)
  3. セッション: AIとMCPサーバー間の安全な接続

このような MCP サーバーは、AI モデルと外部世界の間の橋渡しとして機能し、再トレーニングを必要とせずに新しい機能を拡張できるようにします。

📺 Trakt とは何ですか?

Trakt.tvは、視聴したテレビ番組や映画を自動的に追跡するプラットフォームです。このサービスでは、以下のサービスを提供しています。

  • 複数のストリーミングサービスにわたる視聴習慣の包括的な追跡
  • 視聴中のコンテンツを友達と共有したり話し合ったりできるソーシャル機能
  • 視聴履歴に基づいてパーソナライズされたおすすめ
  • 開発者がアプリケーション構築に使用できる広範なAPI

Trakt は、次のような特徴を持つエンターテイメント追跡の標準となっています。

  • 1,400万人以上のユーザーが視聴習慣を追跡
  • 詳細なメタデータを含む、数百万本の映画やテレビ番組のデータ
  • 人気のメディアプレーヤーやストリーミングサービスとの統合

この MCP サーバーは、Trakt の豊富な API エコシステムを活用して、Claude などの AI アシスタントとの会話にリアルタイムのエンターテイメント データを直接提供します。

🚀 カーソル開発体験

このプロジェクト全体は、AI時代向けに開発されたコードエディタであるCursorを使用して開発され、すべてのコードはClaude 3.7 Sonnetによって生成されました。このアプローチにより、以下のことが実証されました。

  • AI支援開発が特殊なMCPサーバーの構築を劇的に加速する方法
  • 機能的で構造化されたコードを書く現代のAIの能力
  • 人間の意図とAI実装の協調ワークフロー

✨ 特徴

🌎 パブリック トラック データ

  • トレンドや人気の番組や映画にアクセス
  • 最もお気に入り、再生、視聴されたコンテンツを見つける
  • Traktのグローバルコミュニティからリアルタイムデータを取得する
  • タイトル、年、人気度指標を含むフォーマットされた回答

👤 個人の追跡データ

  • 視聴した番組を表示: 個人的に視聴した番組の完全なリストを取得します
  • 各シリーズの正確な最終視聴日を確認します
  • 各番組を何回視聴したかを追跡する
  • 現在視聴中の**番組にチェックインして、**視聴済みとしてマークします
    • 番組ID(より正確)または番組タイトル(より便利)
    • Twitter、Mastodon、Tumblrにチェックインを共有する
    • チェックインにカスタムメッセージを含める
    • 人間が読める形式でエピソードをいつ視聴したかを確認します
  • 番組を検索して詳細とIDを見つけます
  • デバイスコードフローによるTraktによる安全な認証
  • 個人データはTraktアカウントから直接取得されます

🔄 一般的な機能

  • MCP リソースを通じて Trakt API データを公開します
  • リアルタイムのエンターテイメント情報を取得するためのツールを提供します
  • AIモデルがパーソナライズされたエンターテイメントの推奨を提供できるようにする
  • シンプルな認証とログアウトのプロセス

📺 現在人気の番組

2025 年 4 月現在、次のような人気番組にアクセスできます。

  • 『ホワイト・ロータス』(2021年) - 視聴者数7,870人
  • 『デアデビル:ボーン・アゲイン』(2025年) - 視聴者数6,738人
  • 「セヴァランス」(2022年) - 視聴者数4,507人

🎥 現在人気の映画

今一番人気の映画:

  • 「ブラックバッグ」(2025年) - 視聴者数1,491人
  • 「ワーキングマン」(2025年) - 視聴者数1,226人
  • 「ミッキー17」(2025年) - 視聴者数764人

🔌 利用可能なリソース

リソースを表示

リソース説明サンプルデータ
trakt://shows/trending過去24時間で最も視聴された番組番組のタイトル、年、視聴者数
trakt://shows/popular評価に基づく最も人気のある番組番組タイトル、年、人気スコア
trakt://shows/favorited最もお気に入りになった番組タイトル、年、お気に入りの数を表示
trakt://shows/played最も再生された番組タイトル、年、再生回数を表示
trakt://shows/watchedユニークユーザーによる最も視聴された番組番組タイトル、年、視聴者数

映画リソース

リソース説明サンプルデータ
trakt://movies/trending過去24時間で最も視聴された映画映画のタイトル、年、視聴者数
trakt://movies/popular評価に基づく最も人気のある映画映画のタイトル、年、人気スコア
trakt://movies/favorited最もお気に入りの映画映画のタイトル、年、お気に入りの数
trakt://movies/played最も再生された映画映画のタイトル、年、再生回数
trakt://movies/watchedユニークユーザーによる最も視聴された映画映画のタイトル、年、視聴者数

ユーザーリソース

リソース説明サンプルデータ
trakt://user/auth/status現在の認証ステータス認証ステータス、トークンの有効期限
trakt://user/watched/shows認証されたユーザーが視聴した番組番組タイトル、年、最終視聴日、再生回数
trakt://user/watched/movies認証されたユーザーが視聴した映画映画のタイトル、年、最終視聴日、再生回数

🛠️ 利用可能なツール

ツールを表示

# Get trending shows with optional limit parameter fetch_trending_shows(limit=10) # Get popular shows with optional limit parameter fetch_popular_shows(limit=10) # Get favorited shows with optional limit and period parameters fetch_favorited_shows(limit=10, period="weekly") # Get most played shows with optional limit and period parameters fetch_played_shows(limit=10, period="weekly") # Get most watched shows with optional limit and period parameters fetch_watched_shows(limit=10, period="weekly") # Search for shows by title to get show IDs and details search_shows(query="Breaking Bad", limit=5)

映画ツール

# Get trending movies with optional limit parameter fetch_trending_movies(limit=10) # Get popular movies with optional limit parameter fetch_popular_movies(limit=10) # Get favorited movies with optional limit and period parameters fetch_favorited_movies(limit=10, period="weekly") # Get most played movies with optional limit and period parameters fetch_played_movies(limit=10, period="weekly") # Get most watched movies with optional limit and period parameters fetch_watched_movies(limit=10, period="weekly")

認証とユーザーツール

# Start the device authorization flow with Trakt start_device_auth() # Check the status of an ongoing authentication check_auth_status() # Clear authentication (logout) clear_auth() # Fetch shows watched by the authenticated user fetch_user_watched_shows(limit=0) # 0 for all shows # Fetch movies watched by the authenticated user fetch_user_watched_movies(limit=0) # 0 for all movies

チェックインツール

# Method 1: Check in using show ID (recommended when precision is important) # First use search_shows to find the correct show ID search_shows(query="Breaking Bad", limit=5) # Then use the ID for check-in checkin_to_show( season=1, episode=3, show_id="1388", message="Loving this show!" ) # Method 2: Check in using show title (more convenient) checkin_to_show( season=1, episode=1, show_title="Breaking Bad", show_year=2008, # Optional but helps with accuracy message="I'm the one who knocks!", share_twitter=True, share_mastodon=False, share_tumblr=False )

🔐 認証

サーバーは Trakt のデバイス認証フローを使用します。

  1. ユーザー固有のデータを要求すると、必要に応じてサーバーが自動的に認証を開始します。
  2. ブラウザでアクセスするためのコードとURLが届きます
  3. Traktのウェブサイトでコードを入力してアプリを承認した後、承認が完了したことをClaudeに知らせてください。
  4. クロードは認証ステータスを確認し、個人データを取得します
  5. 認証トークンは、将来のリクエストのために安全に保存されます

clear_authツールを使用していつでもログアウトできます。

🚀 セットアップ

  1. このリポジトリをクローンする
    git clone https://github.com/yourusername/mcp-trakt.git cd mcp-trakt
  2. 依存関係をインストールする
    pip install -r requirements.txt
  3. 環境を設定する
    cp .env.example .env
    次に、 .envを編集して Trakt API 資格情報を追加します。
    TRAKT_CLIENT_ID=your_client_id TRAKT_CLIENT_SECRET=your_client_secret
  4. サーバーを実行する
    python server.py

🧪 開発とテスト

MCP Inspectorによるテスト

mcp dev server.py

Claude Desktopへのインストール

mcp install server.py

📝 クロードと一緒に使う

インストールすると、次のような質問をクロードに尋ねることができます。

  • 「今、どんな番組が流行っているの?」
  • 「今週人気の映画をいくつかお勧めいただけますか?」
  • 「今月最も視聴された番組は何ですか?」
  • 「視聴した番組を表示してください」(認証が必要です)
  • 「最後に見た番組は何でしたか?」(認証が必要です)
  • 「私が見た映画を見せてください」(認証が必要です)
  • 「最後に観た映画は何でしたか?」(認証が必要です)
  • 「『ブレイキング・バッド』のような番組を検索」
  • 「ブレイキング・バッド シーズン2 エピソード5を視聴する」(タイトルを使用)
  • 「番組ID 1388のシーズン1エピソード3にチェックインして、Twitterでシェアしてください」(IDを使用)

Claude はこの MCP サーバーを使用して、Trakt からのリアルタイム データを提供します。

👤 個人データへのアクセス

認証により、次のものにアクセスできます。

  • 視聴した番組と映画の完全な履歴
  • 各番組と映画の最終視聴日
  • 各番組や映画を視聴した回数
  • 現在視聴中の番組にチェックインして進捗状況を追跡できます
  • 個人視聴統計
  • ソーシャルメディアプラットフォームで視聴アクティビティを共有する

すべてのデータは、Trakt アカウントからリアルタイムで直接取得されます。

🔮 今後の展開

  • ユーザー認証を拡張してより多くの個人データにアクセスできるようにする
  • 今後のエピソードのカレンダーイベントを追加する
  • スクロブリング(視聴中の動画の追跡)をサポート
  • 視聴履歴に基づいた推奨事項の実装
  • 番組に加えて映画も検索対象に拡張
  • 共有のためのより多くのソーシャルメディアプラットフォームのサポートを追加

📄 ライセンス

MITライセンス


ID: i7vhmgvc4t