mcpField
P
Plex

Plex

ローカル
github.com/konsumerゲーム・エンタメ035 週間前に更新

Plex について

Plexは、Plexライブラリの確認、視聴状況やメディア詳細の取得に使えるMCPサーバーとCLIツールのセットです。TMDBやqBittorrentと連携して不足エピソードの確認やダウンロード管理を行い、LLMでメディアライブラリやダウンロードのワークフローを扱いたいユーザー向けです。

主な機能

  1. 01ライブラリとメディア詳細の確認
  2. 02視聴状況と進捗の追跡
  3. 03TMDBによる未所持エピソードの確認
  4. 04qBittorrentのダウンロードとRSSルール管理

活用シーン

  1. 01視聴中の番組と進捗の確認
  2. 02PlexとTMDBを照合して不足分を特定
  3. 03エピソードのダウンロードをqBittorrentに追加
  4. 04新着エピソードの自動ダウンロード用RSSルール設定

MCP 対応

MCPサーバーは、ライブラリ検索、エピソード情報、ダウンロード管理、RSS自動化のためのPlex、TMDB、qBittorrentツールをLLMに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"aitorrent": {
"command": "uvx",
"args": [
"aitorrent"
],
"env": {
"PLEX_URL": "<PLEX_URL>",
"PLEX_TOKEN": "<PLEX_TOKEN>",
"TMDB_API_KEY": "<TMDB_API_KEY>"
}
}
}
}
起動コマンドuvx aitorrent
設定が必要な環境変数
PLEX_URL
PLEX_TOKENシークレット
TMDB_API_KEYシークレット

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiaitorrent

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

あらゆるLLMを、映画やテレビ番組をダウンロードするメディアマネージャーに変えるMCPのセットです。PlexライブラリとqBittorrentクライアントにアクセスできるため、所有しているコンテンツと欲しいコンテンツを把握できます。

asciicast

セットアップ

最も簡単なセットアップ方法は、スキルを使うことです。

npx skills add konsumer/aitorrent

.env.exampleに記載されている環境変数を環境に設定すれば、準備完了です。

認証情報の設定:
cp .env.example .env
# Edit .env with your Plex URL and token

Plexトークン:https://app.plex.tv にサインインし、メディアアイテムをクリックして、三点メニューから「情報を取得」を選択します。左下の「XMLを表示」をクリックし、URLバーにあるX-Plex-Tokenの値をコピーしてください。

TMDB APIキー(任意):不足しているエピソードを見つけたり、ライブラリにない番組を検索したりする場合に使います。

  1. https://www.themoviedb.org で無料アカウントを作成します
  2. 設定 > API(https://www.themoviedb.org/settings/api)に移動します
  3. 「APIキーをリクエスト」をクリックします(まだの場合)
  4. 「開発者」を選択してフォームに入力します(アプリケーションの種類には「個人プロジェクト」を選択できます)
  5. 承認されたら、**APIキー(v3認証)**の値をコピーします(「API読み取りアクセストークン」ではありません)
  6. .envにTMDB_API_KEY=your_key_hereを追加します

重要:「APIキー(v3認証)」欄の値を使用してください。これは32文字の16進数文字列です。「API読み取りアクセストークン」(「eyJ」で始まるJWT形式)は、このツールでは使用できません。

qBittorrent:Web UIを有効にしてqBittorrentが実行されていることを確認してください。デフォルトの認証情報はadmin/adminadminで、「ツール」>「オプション」>「Web UI」で設定されています。

ツール

CLIの使い方

インストールせずにuvxでCLIツールを直接実行できます。

# List your collection names
uvx --from aitorrent aitorrent-plex-cli list

# List all your shows (show/season/episode) in "TV Shows" collection
uvx --from aitorrent aitorrent-plex-cli list "TV Shows"

# List all your movies by collection in "Movies" collection
uvx --from aitorrent aitorrent-plex-cli list "Movies"

# List all your music by artist/album in "Music" collection
uvx --from aitorrent aitorrent-plex-cli list "Music"

# Show what you're currently watching (on-deck and in-progress shows with relative times)
uvx --from aitorrent aitorrent-plex-cli watching

watchingコマンドには、次の情報が表示されます。

  • 視聴中:現在視聴しているエピソードや映画と、進捗率
  • 視聴途中:視聴を途中まで進めているテレビ番組と、完了状況の統計および最後に視聴した時期(例:「2日前」)
TMDB CLI

tmdbinfo.pyスクリプトは、The Movie Databaseを検索します(TMDB APIキーが必要です)。

# Search for TV shows
uvx --from aitorrent aitorrent-tmdb-cli search-shows "Star Trek Lower Decks"

# Get detailed show information (seasons, episodes, air dates)
uvx --from aitorrent aitorrent-tmdb-cli show-details 85948

# Get specific season details
uvx --from aitorrent aitorrent-tmdb-cli season-details 85948 1

# Search for movies
uvx --from aitorrent aitorrent-tmdb-cli search-movies "The Matrix"

# Get detailed movie information
uvx --from aitorrent aitorrent-tmdb-cli movie-details 603

このツールは、Plexライブラリにない番組や映画を見つけたり、エピソードの放送日を調べたりするのに便利です。

qBittorrent CLI

qbtinfo.pyスクリプトは、トレントのダウンロードと自動化を管理します。

# List all torrents
uvx --from aitorrent aitorrent-qbt-cli list

# List only downloading torrents
uvx --from aitorrent aitorrent-qbt-cli list downloading

# Add a torrent by magnet link or URL
uvx --from aitorrent aitorrent-qbt-cli add "magnet:?xt=urn:btih:..." --path "/path/to/save" --category "TV Shows"

# List RSS feeds
uvx --from aitorrent aitorrent-qbt-cli rss list-feeds

# Add an RSS feed
uvx --from aitorrent aitorrent-qbt-cli rss add-feed "https://showrss.info/user/123456.rss?magnets=true&namespaces=true&name=null&quality=1080p" --folder "TV Shows"

# Refresh RSS feeds
uvx --from aitorrent aitorrent-qbt-cli rss refresh

# List RSS auto-download rules
uvx --from aitorrent aitorrent-qbt-cli rss list-rules

# Create RSS rule for a show (auto-downloads new episodes)
uvx --from aitorrent aitorrent-qbt-cli rss add-show "Star Trek: Strange New Worlds" --season 2 --quality 1080p --category "TV Shows" --feeds "TV Shows\ShowRSS"

# Attach an existing rule to specific feeds
uvx --from aitorrent aitorrent-qbt-cli rss attach-rule "Star Trek: Strange New Worlds S02" "TV Shows\ShowRSS,TV Shows\EZTV"

RSS自動ダウンロード機能は、RSSフィードに新しいエピソードが追加されると自動的にダウンロードします。現在放送中の番組を追いかけるのに最適です。重要:ルールを実行するには、特定のフィードに紐付ける必要があります。ルールの作成時に--feedsパラメーターを使うか、attach-ruleで既存のルールを紐付けてください。

MCPサーバーの使い方

同じ機能を、LLMで利用するためのMCP(Model Context Protocol)サーバーとしても使用できます。

LLMのMCP設定(~/.claude.json)に追加してください。

{
  "mcpServers": {
    "plex-info": {
      "command": "uvx",
      "args": ["--from", "aitorrent", "aitorrent-plex", "mcp"],
      "env": {
        "PLEX_URL": "http://localhost:32400",
        "PLEX_TOKEN": "your_plex_token_here",
        "TMDB_API_KEY": "your_tmdb_api_key_here"
      }
    },
    "tmdb-info": {
      "command": "uvx",
      "args": ["--from", "aitorrent", "aitorrent-tmdb", "mcp"],
      "env": {
        "TMDB_API_KEY": "your_tmdb_api_key_here"
      }
    },
    "qbt-info": {
      "command": "uvx",
      "args": ["--from", "aitorrent", "aitorrent-qbt", "mcp"],
      "env": {
        "QBT_URL": "http://localhost:8080",
        "QBT_USERNAME": "admin",
        "QBT_PASSWORD": "adminadmin"
      }
    }
  }
}

Claude Codeでも同じ設定ができます。

claude mcp add plex-info --transport stdio \
  --env PLEX_URL=http://localhost:32400 \
  --env PLEX_TOKEN=your_plex_token_here \
  --env TMDB_API_KEY=your_tmdb_api_key_here \
  -- uvx --from aitorrent aitorrent-plex mcp

claude mcp add tmdb-info --transport stdio \
  --env TMDB_API_KEY=your_tmdb_api_key_here \
  -- uvx --from aitorrent aitorrent-tmdb mcp

claude mcp add qbt-info --transport stdio \
  --env QBT_URL=http://localhost:8080 \
  --env QBT_USERNAME=admin \
  --env QBT_PASSWORD=adminadmin \
  -- uvx --from aitorrent aitorrent-qbt mcp

LLMから次のツールを利用できます。

ライブラリとコンテンツ:

  • plex_list_libraries - 種類とともに、すべてのPlexライブラリを一覧表示します
  • plex_list_library_content - 指定したライブラリの全コンテンツを一覧表示します(シーズンやエピソードを含むテレビ番組、コレクション別の映画、またはアーティストやアルバム別の音楽)
  • plex_search - すべてのライブラリまたは指定したライブラリ内で、タイトルからメディアを検索します

詳細情報:

  • plex_get_show_details - シーズン、エピソード、放送日を含む、指定したテレビ番組の詳細情報を取得します(不足しているエピソードを見つけるのに便利です)
  • plex_get_movie_details - キャスト、ジャンル、コレクション、評価を含む、指定した映画の詳細情報を取得します
  • plex_get_artist_details - アルバムとトラックをすべて含む、指定した音楽アーティストの詳細情報を取得します

視聴状況と進捗:

  • plex_get_on_deck - 現在「続きを視聴」できるアイテムを取得します。ユーザーが現在視聴中のコンテンツが表示されます
  • plex_get_in_progress_shows - 視聴が途中のテレビ番組を、視聴完了率とともに取得します。ユーザーが視聴を続けている番組を見つけるのに便利です
  • plex_get_show_watch_status - 特定の番組の詳細な視聴状況を取得します(シーズンごとの視聴済み/未視聴エピソード)
  • plex_get_recently_added - 最近追加されたアイテムを取得します

上位レベルのダウンロードヘルパー:

  • plex_get_episodes_to_download - 上位レベル:ダウンロードが必要なすべてのエピソードを、書式設定済みの検索クエリとダウンロード先のパスとともに取得します(コンテキストの使用量を削減します)
  • plex_find_missing_episodes - TMDB のエピソード一覧と Plex ライブラリを照合して、欠落しているエピソードを見つけます(TMDB_API_KEY が必要です)
  • plex_get_next_episodes - 最後に視聴したエピソードの次にある未視聴エピソードを取得します(TMDB_API_KEY が必要です)
  • plex_format_torrent_query - 番組情報をトレント検索クエリとして書式設定します(例:「Star Trek Strange New Worlds 2022 S02E05 1080p」)

TMDB ツール(スタンドアロンの tmdb-info MCP):

  • tmdb_search_shows - The Movie Database で番組名からテレビ番組を検索します
  • tmdb_get_show_details - すべてのシーズンとエピソードを含む、番組の詳細情報を取得します
  • tmdb_get_season_details - 特定のシーズンの詳細情報を取得します
  • tmdb_search_movies - TMDB で映画のタイトルから検索します
  • tmdb_get_movie_details - 映画の詳細情報を取得します

ファイルシステムとダウンロード先の管理:

  • plex_get_show_path - 番組のエピソードが保存されている実際のファイルシステムパスを取得します(例:/media/video/tv/Doctor Who)
  • plex_suggest_download_path - エピソードのダウンロード先を自動で提案します(既存の番組のパス、または新しい番組の場合はライブラリの場所を使用します)
  • plex_list_library_subdirs - ライブラリ内のすべての番組フォルダーを一覧表示します(あいまい検索や、既存の項目の確認に便利です)

qBittorrent のトレント管理:

  • qbt_get_torrents - 任意のステータスフィルター(ダウンロード中、完了など)を指定して、トレントの一覧を取得します
  • qbt_get_torrent_details - 特定のトレントの詳細情報を取得します
  • qbt_add_torrent - 任意で保存先のパスとカテゴリを指定して、マグネットリンクまたは URL からトレントを追加します
  • qbt_get_categories - 保存先のパスとともに、すべてのトレントカテゴリを取得します
  • qbt_create_category - 新しいカテゴリを作成します(番組やコレクションごとの整理に便利です)
  • qbt_get_transfer_info - 現在のダウンロード/アップロード速度と統計情報を取得します

qBittorrent の検索:

  • qbt_search_torrents - qBittorrent にインストールされたプラグインを使ってトレントを検索します(シーダー数順に並べたマグネットリンクを返します)
  • qbt_get_search_plugins - インストール済みの検索プラグインの一覧を取得します
  • qbt_get_downloading_episodes - 上位レベル:現在ダウンロード中のトレントを解析し、エピソード情報を抽出します(重複ダウンロードを防止します)

qBittorrent の RSS フィード管理:

  • qbt_get_rss_feeds - すべての RSS フィードとフォルダーを取得します(設定済みのフィードを確認する際に使用します)
  • qbt_add_rss_feed - 新しい RSS フィード URL を追加します
  • qbt_remove_rss_feed - RSS フィードまたはフォルダーを削除します
  • qbt_refresh_rss_feed - 新しいアイテムを確認するため、RSS フィードを手動で更新します

qBittorrent の RSS 自動化:

  • qbt_get_rss_rules - すべての RSS 自動ダウンロードルールを取得します(ルールがどのフィードに紐づけられているかも表示します)
  • qbt_create_show_rss_rule - 番組の新しいエピソードを自動ダウンロードする RSS ルールを作成します(紐づけるフィードを指定できます)
  • qbt_attach_rule_to_feeds - 既存のルールを特定のフィードに紐づけます(重要:フィードに紐づけないとルールは実行されません!)
  • qbt_delete_rss_rule - RSS 自動ダウンロードルールを削除します
MCP の使用例

これらのツールを使うと、LLM は次のようなリクエストに対応できます。

基本的なライブラリ管理:

  • 「Breaking Bad が好きです」 → 番組を検索し、詳細を取得して、視聴できるエピソードを確認します
  • 「現在視聴中の番組は何ですか?」 → 次に視聴する番組と視聴中の番組を取得し、現在追いかけている番組を確認します
  • 「Marvel コレクションの映画を探して」 → ライブラリを検索し、コレクションで絞り込みます
  • 「Tarantino の映画をすべて表示して」 → そのコレクションの映画を検索し、詳細を取得します
  • 「The Beatles のアルバムは何を持っていますか?」 → アーティストを検索し、ディスコグラフィー全体を取得します
  • 「ライブラリに追加された新しいコンテンツは何ですか?」 → 最近追加されたコンテンツを取得します

Torrent のダウンロード計画(TMDB を使用):

  • 「視聴中の番組の次のシーズンをダウンロードして」 → 視聴中の番組を取得 → 不足しているエピソードを検索 → torrent クエリを作成
  • 「The Office の不足しているエピソードは何ですか?」 → TMDB のデータと Plex を比較 → 不足しているエピソードの一覧を作成
  • 「Doctor Who のコレクションを揃えたいのですが、古いエピソードは除いてください」 → 不足しているエピソードを検索 → 年で絞り込み → torrent クエリを作成
  • 「Star Trek: Strange New Worlds の新しいエピソードを取得して」 → 次のエピソードを取得 → 放送済みか確認 → 「1080p」を指定した torrent クエリを作成
  • 「Breaking Bad の S02E05-E10 を 1080p でダウンロードして」 → 希望の画質を指定して、複数の torrent クエリを作成

完全なワークフロー(Plex + qBittorrent + TMDB):

  • 「Star Trek: Strange New Worlds を視聴しています。新しいエピソードが公開されたら自動的にダウンロードしてください」 →

    1. plex_get_in_progress_shows() - SNW を視聴中であることを確認します
    2. plex_get_next_episodes("Star Trek: Strange New Worlds") - S02E06 が放送済みで、まだライブラリにないことを確認します
    3. plex_get_show_path("Star Trek: Strange New Worlds") - 既存のパスを取得します:/media/video/tv/Star Trek Strange New Worlds
    4. plex_format_torrent_query("Star Trek Strange New Worlds", 2, 6, 2022, "1080p") - 検索クエリを作成します
    5. [ユーザーが torrent を検索して magnet リンクを取得します]
    6. qbt_add_torrent(magnet_link, save_path="/media/video/tv/Star Trek Strange New Worlds") - 正しいフォルダーにダウンロードします
    7. qbt_get_rss_feeds() - 設定されている RSS フィード(例:「TV Shows\ShowRSS」)を確認します
    8. qbt_create_show_rss_rule("Star Trek Strange New Worlds", season=2, quality="1080p", save_path="/media/video/tv/Star Trek Strange New Worlds", feed_paths=["TV Shows\\ShowRSS"]) - 指定したフィードから、今後のエピソードを同じ場所に自動ダウンロードするよう設定します
  • 「Doctor Who のコレクションを揃えてください。ただし、古いエピソードは除いてください」 →

    1. plex_find_missing_episodes("Doctor Who") - 不足しているエピソードをすべて取得します
    2. plex_get_show_path("Doctor Who") - 既存のパスを取得します:/media/video/tv/Doctor Who
    3. air_date が 2005 以降のエピソード(新しい Doctor Who)に絞り込みます
    4. 不足している各エピソードについて、torrent クエリを作成 → 検索 → 正しい save_path を指定して qBittorrent に追加します
    5. ダウンロードしたコンテンツは、Plex 内の既存の Doctor Who フォルダーに自動的に保存されます
  • 「まだライブラリにない新しい番組をダウンロードして」 →

    1. plex_search("The Expanse") - Plex に番組が見つかりません
    2. plex_list_library_subdirs("TV Shows") - 重複を避けるため、既存の番組フォルダーを確認します
    3. plex_suggest_download_path("The Expanse", "TV Shows") - 次のパスを提案します:/media/video/tv/The Expanse
    4. 提案されたパスにエピソードをダウンロードします
    5. Plex は次回のライブラリスキャン時に、自動的にそれらを検出します

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。