mcpField
M
mcp-arr

mcp-arr

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

mcp-arr について

mcp-arr は、*arr メディアスイートの Sonarr、Radarr、Lidarr、Prowlarr を操作する MCP サーバーです。これらのアプリでテレビ、映画、音楽のライブラリを管理するユーザーに向けたもので、ローカルの stdio と리モート HTTP の両方で動作します。

主な機能

  1. 01Sonarr、Radarr、Lidarr のライブラリ参照と追加
  2. 02Prowlarr のインデクサー状態確認と検索
  3. 03ダウンロードキューと公開予定の確認
  4. 04品質プロファイルと設定レビューのツール
  5. 05サービス横断の検索と状態確認
  6. 06TRaSH Guides の参照ツール

活用シーン

  1. 01サービス横断でダウンロードキューの進捗を確認
  2. 02Prowlarr のインデクサーが正常か確認
  3. 03Sonarr の品質プロファイルと命名規則をレビュー
  4. 04今後のエピソードやアルバムの公開予定を確認

MCP 対応

このプロジェクトは MCP サーバーであり、各 *arr アプリの参照、追加、検索、設定ツールを MCP クライアントに公開します。リモート連携向けに汎用の search と fetch ツールも提供します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"aplaceforallmystuff-mcp-arr": {
"command": "npx",
"args": [
"-y",
"mcp-arr-server"
],
"env": {
"SONARR_URL": "<SONARR_URL>",
"SONARR_API_KEY": "<SONARR_API_KEY>",
"RADARR_URL": "<RADARR_URL>",
"RADARR_API_KEY": "<RADARR_API_KEY>",
"LIDARR_URL": "<LIDARR_URL>",
"LIDARR_API_KEY": "<LIDARR_API_KEY>",
"READARR_URL": "<READARR_URL>",
"READARR_API_KEY": "<READARR_API_KEY>",
"PROWLARR_URL": "<PROWLARR_URL>",
"PROWLARR_API_KEY": "<PROWLARR_API_KEY>"
}
}
}
}
起動コマンドnpx -y mcp-arr-server
設定が必要な環境変数
SONARR_URLSonarr server URL
SONARR_API_KEYシークレットSonarr API key
RADARR_URLRadarr server URL
RADARR_API_KEYシークレットRadarr API key
LIDARR_URLLidarr server URL
LIDARR_API_KEYシークレットLidarr API key
READARR_URLReadarr server URL
READARR_API_KEYシークレットReadarr API key
PROWLARR_URLProwlarr server URL
PROWLARR_API_KEYシークレットProwlarr API key

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

パッケージ
npmmcp-arr-server1.0.0

ツール

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

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

詳細

MCP *arr サーバー

アーキテクチャ

Oathe Security npm version CI License: MIT MCP

*arr メディア管理スイート(Sonarr、Radarr、Lidarr、Prowlarr)用の MCP サーバーです。

Claude/Codex スタイルのクライアント向けローカル stdio モードと、ChatGPT コネクターなどのホスト型 MCP クライアント向けリモート HTTP モードの両方に対応しています。

これを使う理由

  • メディア管理を一元化 - すべての *arr アプリケーションをひとつのインターフェースから操作できます
  • 自然言語での問い合わせ - ライブラリについて平易な英語で質問できます
  • サービス横断検索 - テレビ番組、映画、音楽のコンテンツを同時に検索できます
  • ダウンロードの監視 - すべてのサービスのキューの状態と進捗を確認できます
  • カレンダー連携 - すべてのメディア種別の今後のリリースを確認できます
  • 設定のレビュー - AI によるセットアップ最適化の提案を受けられます
  • 柔軟な設定 - 使用するサービスだけを有効にできます

機能

カテゴリー機能
Sonarr(テレビ)シリーズの一覧表示、エピソードの表示、番組の検索、ダウンロードの開始、キューの確認、カレンダーの表示、セットアップのレビュー
Radarr(映画)映画の一覧表示、作品の検索、ダウンロードの開始、キューの確認、リリースの表示、セットアップのレビュー
Lidarr(音楽)アーティストの一覧表示、アルバムの表示、ミュージシャンの検索、ダウンロードの開始、キューの確認、カレンダーの表示、セットアップのレビュー
Prowlarr(インデクサー)インデクサーの一覧表示、すべてのトラッカーの横断検索、健全性のテスト、統計の表示
サービス横断ステータス確認、設定済みのすべてのサービスを対象とする統合検索
設定品質プロファイル、ダウンロードクライアント、命名規則、ヘルスチェック、ストレージ情報
TRaSH Guides品質プロファイル、カスタム形式、命名規則の参照、および推奨事項との比較

前提条件

  • Node.js 18+
  • API アクセスが有効な *arr アプリケーションが少なくとも 1 つ稼働していること:

インストール

npm を使用(推奨)
npx mcp-arr-server
リモート HTTP モード
MCP_TRANSPORT=http PORT=3000 npx mcp-arr-server

デフォルトでは、リモートサーバーは 127.0.0.1:3000 で待ち受け、/mcp で MCP を提供します。

リモートモード用の環境変数:

  • MCP_TRANSPORT=http でリモート Streamable HTTP トランスポートを有効にします
  • HOST でバインドするホストを指定します(デフォルトは 127.0.0.1)
  • PORT でポートを指定します(デフォルトは 3000)
  • MCP_PATH で MCP エンドポイントのパスを指定します(デフォルトは /mcp)
Docker

リリースごとに、ビルド済みイメージが GitHub Container Registry に公開されます。ビルドは不要です:

docker pull ghcr.io/aplaceforallmystuff/mcp-arr:latest

タグはリリースバージョンに従います。latest、1、1.7、および 1.7.3 のような各バージョンが用意されています。予期しない変更を避けながら更新を受け取りたい場合は、メジャーまたはマイナーのタグを指定してください。

ローカルの stdio モードで実行:

docker run --rm -i \
  -e SONARR_URL=http://host.docker.internal:8989 \
  -e SONARR_API_KEY=your-sonarr-api-key \
  ghcr.io/aplaceforallmystuff/mcp-arr:latest

リモート HTTP モードで実行:

docker run --rm -p 3000:3000 \
  -e MCP_TRANSPORT=http \
  -e HOST=0.0.0.0 \
  -e PORT=3000 \
  -e SONARR_URL=http://host.docker.internal:8989 \
  -e SONARR_API_KEY=your-sonarr-api-key \
  ghcr.io/aplaceforallmystuff/mcp-arr:latest

最小構成の docker-compose.yml:

services:
  mcp-arr:
    image: ghcr.io/aplaceforallmystuff/mcp-arr:latest
    ports:
      - "3000:3000"
    environment:
      MCP_TRANSPORT: http
      HOST: 0.0.0.0
      PORT: 3000
      SONARR_URL: http://host.docker.internal:8989
      SONARR_API_KEY: your-sonarr-api-key
      RADARR_URL: http://host.docker.internal:7878
      RADARR_API_KEY: your-radarr-api-key
自分でビルドする

まだリリースされていない変更を対象に開発する場合にのみ必要です:

docker build -t mcp-arr .
ソースから
git clone https://github.com/aplaceforallmystuff/mcp-arr.git
cd mcp-arr
npm install
npm run build

設定

API キーを取得する

各 *arr アプリケーションには、「設定」>「一般」>「セキュリティ」に API キーがあります。

  1. *arr アプリケーションのウェブインターフェースを開きます
  2. 設定 > 一般に移動します
  3. セキュリティセクションでAPI キーを探します
  4. 設定で使用する API キーをコピーします
Claude Desktop の場合

Claude Desktop の設定ファイルに追加します:

macOS:~/Library/Application Support/Claude/claude_desktop_config.json

Windows:%APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "arr": {
      "command": "npx",
      "args": ["-y", "mcp-arr-server"],
      "env": {
        "SONARR_URL": "http://localhost:8989",
        "SONARR_API_KEY": "your-sonarr-api-key",
        "RADARR_URL": "http://localhost:7878",
        "RADARR_API_KEY": "your-radarr-api-key",
        "LIDARR_URL": "http://localhost:8686",
        "LIDARR_API_KEY": "your-lidarr-api-key",
        "PROWLARR_URL": "http://localhost:9696",
        "PROWLARR_API_KEY": "your-prowlarr-api-key"
      }
    }
  }
}
Claude Code の場合

~/.claude.jsonに追加します:

{
  "mcpServers": {
    "arr": {
      "command": "npx",
      "args": ["-y", "mcp-arr-server"],
      "env": {
        "SONARR_URL": "http://localhost:8989",
        "SONARR_API_KEY": "your-sonarr-api-key",
        "RADARR_URL": "http://localhost:7878",
        "RADARR_API_KEY": "your-radarr-api-key"
      }
    }
  }
}

注:実行中のサービスのみを設定してください。サーバーは、指定した環境変数に基づいて利用可能なサービスを自動的に検出します。

TRaSH のみのモード:*arr サービスを設定しなくても、サーバーは起動し、TRaSH Guides のリファレンスツールと汎用のsearchおよびfetchを公開します。

ChatGPT/リモート MCP

ChatGPT でmcp-arrを使用するには、接続可能なホストでリモート HTTP モードでサーバーを実行し、ChatGPT を/mcpエンドポイントに接続します。

サーバーは、ChatGPT 形式のリモート MCP 連携で想定される汎用のsearchおよびfetchツールを公開するようになりました。

  • searchは、一致する*arr メディアと TRaSH プロファイルを検索します
  • fetchは、選択した検索結果の詳細を構造化データで返します

既存のサービス固有ツールも引き続き利用でき、ローカルでのワークフローや上級者向けのワークフローにおいて、より豊富な機能を提供します。

使用例

ライブラリの管理
  • 「すべてのテレビシリーズを表示して」
  • 「Radarr にある映画を教えて」
  • 「音楽ライブラリにあるアーティストをすべて一覧表示して」
コンテンツの検索と追加
  • 「Sonarr で SF 番組を検索して」
  • 「90 年代のアクション映画を探して」
  • 「この番組をテレビライブラリに追加して」
  • 「その映画を Radarr に追加して」
  • 「ジャズアルバムを検索して、このアーティストを追加して」
  • 「この映画に『4k』タグを付けて追加して」
  • 「Sonarr にどんなタグがある?」
ダウンロードキュー
  • 「今ダウンロード中のものは?」
  • 「Sonarr のキューを確認して」
  • 「Radarr のダウンロードの進捗を表示して」
今後のリリース
  • 「今週配信されるテレビエピソードは?」
  • 「今後公開される映画を表示して」
  • 「今月リリース予定の新しいアルバムはある?」
コンテンツのダウンロード
  • 「この番組で見逃しているエピソードは?」
  • 「そのシリーズの未視聴エピソードをダウンロードして」
  • 「この特定の映画を検索して」
  • 「見逃しているあのアルバムを取得して」
インデクサーの管理
  • 「インデクサーは正常に動作している?」
  • 「インデクサーのパフォーマンスはどう?」
  • 「Prowlarr のインデクサーをすべてテストして」
設定の確認
  • 「Sonarr の設定を確認して、改善案を提案して」
  • 「Radarr の品質プロファイルを表示して」
  • 「Lidarr にヘルス上の問題はある?」
  • 「テレビ番組にはどんな命名規則を使っている?」
  • 「品質プロファイルについて説明して。なぜ 4K を取得できないの?」
  • 「ダウンロードクライアントの設定を確認して」
  • 「ルートフォルダーの空き容量はどれくらい?」
サービス横断
  • 「すべての*arr サービスの状態を確認して」
  • 「すべてのサービスで『コメディ』を検索して」

利用可能なツール

一般ツール
ツール説明
arr_status設定済みのすべての*arr サービスの接続状態を取得します
arr_search_all設定済みのすべてのサービスを同時に検索します
searchChatGPT などのリモート MCP クライアント向けの汎用検索ツールです
fetchsearchで返された項目の詳細を取得する汎用ツールです
Sonarr ツール(TV)
ツール説明
sonarr_get_seriesライブラリ内のすべてのTVシリーズを一覧表示します
sonarr_search名前でTVシリーズを検索します(追加用のtvdbIdを返します)
sonarr_add_seriesTVシリーズをSonarrに追加します(タグに対応)
sonarr_get_root_foldersシリーズの追加に利用できるルートフォルダーを取得します
sonarr_get_quality_profilesシリーズの追加に利用できる品質プロファイルを取得します
sonarr_get_queuelimitとoffsetによるページネーションで、現在のダウンロードキューを表示します
sonarr_get_calendar今後のエピソードを確認します
sonarr_get_episodesシリーズのエピソードを一覧表示します(未取得と利用可能なものを表示します)
sonarr_search_missingシリーズ内の未取得のエピソードをすべて検索するよう指示します
sonarr_search_episode特定のエピソードを検索するよう指示します
sonarr_refresh_seriesSonarr内の特定のシリーズのメタデータを更新するよう指示します
Radarr ツール(映画)
ツール説明
radarr_get_moviesライブラリ内のすべての映画を一覧表示します
radarr_search名前で映画を検索します(追加用のtmdbIdを返します)
radarr_add_movie映画をRadarrに追加します(タグに対応)
radarr_get_root_folders映画の追加に利用できるルートフォルダーを取得します
radarr_get_quality_profiles映画の追加に利用できる品質プロファイルを取得します
radarr_get_queuelimitとoffsetによるページネーションで、現在のダウンロードキューを表示します
radarr_get_calendar今後の公開予定を確認します
radarr_search_movieライブラリ内の映画をダウンロードするため、検索するよう指示します
radarr_search_movies複数の映画IDを一度に指定して、まとめて検索するよう指示します
radarr_update_movie映画の品質プロファイル、監視状態、最低入手可能性、タグ、またはパスを更新します
radarr_delete_queue_itemダウンロードキューから項目を削除します(リリースをブロックリストに追加することもできます)
radarr_refresh_movieRadarr内の特定の映画のメタデータを更新するよう指示します
Lidarr ツール(音楽)
ツール説明
lidarr_get_artistsライブラリ内のすべてのアーティストを一覧表示します
lidarr_search名前でアーティストを検索します(追加用のforeignArtistIdを返します)
lidarr_add_artistアーティストをLidarrに追加します(タグに対応)
lidarr_get_root_foldersアーティストの追加に利用できるルートフォルダーを取得します
lidarr_get_quality_profilesアーティストの追加に利用できる品質プロファイルを取得します
lidarr_get_metadata_profilesアーティストの追加に利用できるメタデータプロファイルを取得します
lidarr_get_queuelimitとoffsetによるページネーションで、現在のダウンロードキューを表示します
lidarr_get_albumsアーティストのアルバムを一覧表示します(未取得と利用可能なものを表示します)
lidarr_search_album特定のアルバムを検索するよう指示します
lidarr_search_missingアーティストの未取得のアルバムをすべて検索するよう指示します
lidarr_get_calendar今後のアルバムのリリース予定を確認します
Prowlarr ツール(インデクサー)
ツール説明
prowlarr_get_indexers設定済みのすべてのインデクサーを一覧表示します
prowlarr_searchすべてのインデクサーを対象に検索します
prowlarr_test_indexersすべてのインデクサーをテストし、健全性ステータスを返します
prowlarr_get_statsインデクサーの統計情報(クエリ、取得、失敗)を取得します
設定レビュー用ツール

これらのツールは Sonarr、Radarr、Lidarr で利用できます。{service} をサービス名に置き換えてください(例:sonarr_get_quality_profiles)。

ツール説明
{service}_get_quality_profiles許可されている品質とカスタムフォーマットのスコアを含む、品質プロファイルの詳細情報
{service}_get_healthアプリケーションが検出したヘルスチェックの警告と問題
{service}_get_root_foldersストレージパス、空き容量、アクセス可能な状態かどうか
{service}_get_download_clientsダウンロードクライアントの構成と設定
{service}_get_namingファイルとフォルダーの命名規則
{service}_get_tagsコンテンツ整理用のタグ定義
{service}_review_setupAI によるセットアップ分析用の包括的な設定情報

{service}_review_setup ツールは、すべての設定情報を 1 回の呼び出しで返すため、セットアップの最適化について自然言語で会話できます。Claude は品質プロファイルを分析し、改善案を提案したり、特定のコンテンツが取得されない理由を説明したり、カスタムフォーマットなどの複雑な設定を支援したりできます。

⚠️ 免責事項:設定レビュー用ツールは、*arr の設定に対して読み取り専用のアクセスを提供します。設定の変更は、*arr アプリケーションのインターフェースから直接行う必要があります。AI の提案はあくまで推奨事項です。大幅な変更を行う前に、必ず設定をバックアップしてください。AI が生成した推奨事項に従ったことで発生する設定変更、データ損失、その他の問題について、メンテナーは責任を負いません。

TRaSH Guides ツール

TRaSH Guides のコミュニティが厳選した品質プロファイル、カスタムフォーマット、命名規則に、Claude または ChatGPT から直接アクセスできます。これらのツールは *arr の設定がなくても動作し、TRaSH Guides の GitHub リポジトリから参照データを取得します。

ツール説明
trash_list_profilesRadarr または Sonarr で利用可能な TRaSH の品質プロファイルを一覧表示します
trash_get_profileカスタムフォーマット、スコア、品質設定を含む詳細なプロファイルを取得します
trash_list_custom_formatsカテゴリ(hdr、audio、resolution など)で絞り込めるカスタムフォーマットの一覧を表示します
trash_get_namingPlex、Emby、Jellyfin、または標準向けの推奨命名規則を取得します
trash_get_quality_sizes各品質レベルの推奨最小/最大/優先サイズを取得します
trash_compare_profileTRaSH の推奨設定とお使いのプロファイルを比較します(*arr の設定が必要です)
trash_compare_namingTRaSH の推奨設定とお使いの命名設定を比較します(*arr の設定が必要です)

使用例:

  • 「TRaSH が 4K 映画向けに推奨している品質プロファイルは何ですか?」
  • 「remux-web-1080p プロファイルの詳細を表示してください」
  • 「Radarr のプロファイル 4 を TRaSH の uhd-bluray-web プロファイルと比較してください」
  • 「Plex にはどの命名規則を使えばよいですか?」
  • 「Radarr の HDR 関連カスタムフォーマットを一覧表示してください」

GitHub API の呼び出しを最小限に抑えるため、データは 1 時間キャッシュされます。

開発

# Watch mode for development
npm run watch

# Build TypeScript
npm run build

# Run locally
SONARR_URL="http://localhost:8989" SONARR_API_KEY="your-key" node dist/index.js

トラブルシューティング

「No *arr services configured」

URL と API_KEY の環境変数を少なくとも 1 組設定してください:

SONARR_URL="http://localhost:8989"
SONARR_API_KEY="your-api-key"
「API error: 401 Unauthorized」

API キーが正しくありません。*arr アプリケーションの「Settings > General > Security」で確認してください。

「fetch failed」または「ECONNREFUSED」

*arr アプリケーションが実行されていないか、URL が正しくありません。以下を確認してください:

  • アプリケーションが実行されている
  • URL とポートが正しい
  • 接続を妨げるファイアウォールがない
「Sonarr/Radarr/etc not configured」

設定されていないサービス用のツールを使用しようとしました。対応する URL と API_KEY の環境変数を追加してください。

MCP サーバーの構築やセキュリティ対策についてお困りですか?

私はこのような MCP サーバーを構築・保守しており、AI やエージェントの構成のセキュリティレビューも行っています。チームでカスタムサーバーや連携機能が必要な場合、またはすでに運用中のサーバーのセキュリティレビューをご希望の場合は、jimchristian.net/workをご覧いただくか、相談セッションをご予約ください。

ライセンス

MIT - 詳細はLICENSEをご覧ください。

リンク

コメント

MCP は初めてですか?

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

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