Plex MCP Server

Integrations

  • Integrates with Plex Media Server API, allowing searching for movies, viewing detailed movie information, managing playlists, retrieving genres, and accessing recently added content from Plex libraries.

Plex MCP サーバー

これはPythonベースのMCPサーバーで、Plex Media Server APIと統合して映画の検索やプレイリストの管理を行うことができます。PlexAPIライブラリを使用することで、Plexサーバーとのシームレスな連携が可能です。

スクリーンショット

Plex MCP サーバーの動作例をいくつか示します。

1. Plexライブラリで監督別に映画を探す

監督名を指定して、Plexライブラリ内の映画を検索します。例えば、「アルフレッド・ヒッチコック」を検索すると、ライブラリ内の彼の映画のリストが表示されます。


2. 監督の行方不明の映画を探す

Plexライブラリにない特定の監督の映画を特定します。これにより、コレクションの欠落箇所を発見するのに役立ちます。


3. Plexライブラリにプレイリストを作成する

検索で見つかった映画を使って、Plexライブラリに新しいプレイリストを作成します。これにより、ライブラリを効率的に整理できます。

設定

前提条件

  • Python 3.8以上
  • uvパッケージマネージャー
  • APIアクセスを備えたPlexメディアサーバー

インストール

Smithery経由でインストール

Smithery経由で Claude Desktop 用の Plex Media Server 統合を自動的にインストールするには:

npx -y @smithery/cli install @djbriane/plex-mcp --client claude

手動でインストールする

  1. このリポジトリをクローンします:
    git clone <repository-url> cd plex-mcp
  2. uvを使用して依存関係をインストールします。
    uv venv source .venv/bin/activate uv sync
  3. Plex サーバーの環境変数を設定します。
    • PLEX_TOKEN : Plex認証トークン
    • PLEX_SERVER_URL : PlexサーバーのURL(例: http ://192.168.1.100:32400)

Plexトークンを見つける

Plex トークンは次の方法で見つけることができます:

  • Plexウェブアプリにサインイン
  • 開発者ツールを開く
  • コンソールタブで以下を貼り付けて実行します:
    window.localStorage.getItem('myPlexAccessToken')

クロードとの使用

Claude アプリに次の構成を追加します。

{ "mcpServers": { "plex": { "command": "uv", "args": [ "--directory", "FULL_PATH_TO_PROJECT", "run", "src/plex_mcp/plex_mcp.py" ], "env": { "PLEX_TOKEN": "YOUR_PLEX_TOKEN", "PLEX_SERVER_URL": "YOUR_PLEX_SERVER_URL" } } } }

利用可能なコマンド

Plex MCP サーバーは次のコマンドを公開します:

指示説明OpenAPIリファレンス
search_moviesライブラリ内の映画をさまざまなフィルター (タイトル、監督、ジャンルなど) で検索します。結果の数を制御するためのlimitパラメータもサポートされています。/library/sections/{sectionKey}/search
get_movie_details特定の映画に関する詳細情報を取得します。/library/metadata/{ratingKey}
get_movie_genres特定の映画のジャンルを取得します。/library/sections/{sectionKey}/genre
list_playlistsPlex サーバー上のすべてのプレイリストを一覧表示します。/playlists
get_playlist_items特定のプレイリスト内のアイテムを取得します。/playlists/{playlistID}/items
create_playlist指定した映画で新しいプレイリストを作成します。/playlists
delete_playlistPlex サーバーからプレイリストを削除します。/playlists/{playlistID}
add_to_playlist既存のプレイリストに映画を追加します。/playlists/{playlistID}/items
recent_moviesライブラリから最近追加された映画を取得します。/library/recentlyAdded

テストの実行

このプロジェクトには単体テストと統合テストの両方が含まれています。各テストを実行するには、以下の手順に従ってください。

ユニットテスト

ユニット テストでは、ダミー データを使用して、ライブ Plex サーバーを必要とせずに各モジュールの機能を検証します。

すべてのユニットテストを実行するには:

uv run pytest

統合テスト

統合テストは、.env ファイルで定義された環境変数を使用して、ライブ Plex サーバーに対して実行されます。まず、プロジェクトルートに Plex の設定を記述した .env ファイルを作成します。

PLEX_SERVER_URL=https://your-plex-server-url:32400 PLEX_TOKEN=yourPlexTokenHere

統合テストには統合マーカーが付いています。統合テストのみを実行するには、以下の手順を実行してください。

uv run pytest -m integration

Plex サーバーへの接続に問題がある場合は、トラブルシューティングのために統合テストを実行してみてください。

コードスタイルと規約

  • モジュール構造:
    インポート、ログ設定、ユーティリティ関数、クラス定義、グローバルヘルパー、ツールメソッド、およびメイン実行 ( if __name__ == "__main__":によって保護される) には、明確なセクション ヘッダーを使用します。
  • ネーミング:
    クラスにはCamelCase、関数、変数、フィクスチャにはlower_snake_caseを使用してください。テストでは、組み込みフィクスチャ(例: monkeypatch )をカスタムフィクスチャの前に記述してください。
  • ドキュメントとコメント:
    すべてのモジュール、クラス、関数に簡潔な docstring を含め、複雑なロジックにはインライン コメントを追加します。
  • エラー処理とログ記録:
    一貫したエラー メッセージ (プレフィックス「ERROR:」) と明示的な例外処理を備えた Python のloggingモジュールを使用します。
  • 非同期パターン:
    I/O バウンド関数を async として定義し、 asyncio.to_thread()を使用してブロッキング操作を処理します。
-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Plex メディア サーバー API と統合して、Plex メディア ライブラリ内の映画を検索したり、プレイリストを管理したりできる Python ベースの MCP サーバーです。

  1. スクリーンショット
    1. 1. Plexライブラリで監督別に映画を探す
    2. 2. 監督の行方不明の映画を探す
    3. 3. Plexライブラリにプレイリストを作成する
  2. 設定
    1. 前提条件
    2. インストール
    3. Smithery経由でインストール
    4. 手動でインストールする
    5. Plexトークンを見つける
  3. クロードとの使用
    1. 利用可能なコマンド
      1. テストの実行
        1. ユニットテスト
        2. 統合テスト
      2. コードスタイルと規約

        Related MCP Servers

        • -
          security
          A
          license
          -
          quality
          Integrates with The Movie Database (TMDB) API to provide movie information, search capabilities, and recommendations.
          Last updated -
          3
          14
          JavaScript
          MIT License
          • Apple
          • Linux
        • -
          security
          A
          license
          -
          quality
          This MCP server integrates with Google Drive to allow listing, reading, and searching over files.
          Last updated -
          1,495
          43,407
          JavaScript
          MIT License
        • -
          security
          F
          license
          -
          quality
          An MCP server that enables LLMs to search YouTube, retrieve video information, and access video transcripts through standardized tools.
          Last updated -
          TypeScript
        • -
          security
          F
          license
          -
          quality
          Integrates with Spotify Web API through the Model Context Protocol, allowing users to search tracks, control playback, and manage playlists programmatically.
          Last updated -
          JavaScript

        View all related MCP servers

        ID: q5egvqu8p8