mcp-arr について
mcp-arr は、*arr メディアスイートの Sonarr、Radarr、Lidarr、Prowlarr を操作する MCP サーバーです。これらのアプリでテレビ、映画、音楽のライブラリを管理するユーザーに向けたもので、ローカルの stdio と리モート HTTP の両方で動作します。
主な機能
- 01Sonarr、Radarr、Lidarr のライブラリ参照と追加
- 02Prowlarr のインデクサー状態確認と検索
- 03ダウンロードキューと公開予定の確認
- 04品質プロファイルと設定レビューのツール
- 05サービス横断の検索と状態確認
- 06TRaSH Guides の参照ツール
活用シーン
- 01サービス横断でダウンロードキューの進捗を確認
- 02Prowlarr のインデクサーが正常か確認
- 03Sonarr の品質プロファイルと命名規則をレビュー
- 04今後のエピソードやアルバムの公開予定を確認
MCP 対応
このプロジェクトは MCP サーバーであり、各 *arr アプリの参照、追加、検索、設定ツールを MCP クライアントに公開します。リモート連携向けに汎用の search と fetch ツールも提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y mcp-arr-serverSONARR_URLSonarr server URLSONARR_API_KEYシークレットSonarr API keyRADARR_URLRadarr server URLRADARR_API_KEYシークレットRadarr API keyLIDARR_URLLidarr server URLLIDARR_API_KEYシークレットLidarr API keyREADARR_URLReadarr server URLREADARR_API_KEYシークレットReadarr API keyPROWLARR_URLProwlarr server URLPROWLARR_API_KEYシークレットProwlarr API keyローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP *arr サーバー

*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 キーがあります。
- *arr アプリケーションのウェブインターフェースを開きます
- 設定 > 一般に移動します
- セキュリティセクションでAPI キーを探します
- 設定で使用する 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 | 設定済みのすべてのサービスを同時に検索します |
search | ChatGPT などのリモート MCP クライアント向けの汎用検索ツールです |
fetch | searchで返された項目の詳細を取得する汎用ツールです |
Sonarr ツール(TV)
| ツール | 説明 |
|---|---|
sonarr_get_series | ライブラリ内のすべてのTVシリーズを一覧表示します |
sonarr_search | 名前でTVシリーズを検索します(追加用のtvdbIdを返します) |
sonarr_add_series | TVシリーズをSonarrに追加します(タグに対応) |
sonarr_get_root_folders | シリーズの追加に利用できるルートフォルダーを取得します |
sonarr_get_quality_profiles | シリーズの追加に利用できる品質プロファイルを取得します |
sonarr_get_queue | limitとoffsetによるページネーションで、現在のダウンロードキューを表示します |
sonarr_get_calendar | 今後のエピソードを確認します |
sonarr_get_episodes | シリーズのエピソードを一覧表示します(未取得と利用可能なものを表示します) |
sonarr_search_missing | シリーズ内の未取得のエピソードをすべて検索するよう指示します |
sonarr_search_episode | 特定のエピソードを検索するよう指示します |
sonarr_refresh_series | Sonarr内の特定のシリーズのメタデータを更新するよう指示します |
Radarr ツール(映画)
| ツール | 説明 |
|---|---|
radarr_get_movies | ライブラリ内のすべての映画を一覧表示します |
radarr_search | 名前で映画を検索します(追加用のtmdbIdを返します) |
radarr_add_movie | 映画をRadarrに追加します(タグに対応) |
radarr_get_root_folders | 映画の追加に利用できるルートフォルダーを取得します |
radarr_get_quality_profiles | 映画の追加に利用できる品質プロファイルを取得します |
radarr_get_queue | limitとoffsetによるページネーションで、現在のダウンロードキューを表示します |
radarr_get_calendar | 今後の公開予定を確認します |
radarr_search_movie | ライブラリ内の映画をダウンロードするため、検索するよう指示します |
radarr_search_movies | 複数の映画IDを一度に指定して、まとめて検索するよう指示します |
radarr_update_movie | 映画の品質プロファイル、監視状態、最低入手可能性、タグ、またはパスを更新します |
radarr_delete_queue_item | ダウンロードキューから項目を削除します(リリースをブロックリストに追加することもできます) |
radarr_refresh_movie | Radarr内の特定の映画のメタデータを更新するよう指示します |
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_queue | limitと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_setup | AI によるセットアップ分析用の包括的な設定情報 |
{service}_review_setup ツールは、すべての設定情報を 1 回の呼び出しで返すため、セットアップの最適化について自然言語で会話できます。Claude は品質プロファイルを分析し、改善案を提案したり、特定のコンテンツが取得されない理由を説明したり、カスタムフォーマットなどの複雑な設定を支援したりできます。
⚠️ 免責事項:設定レビュー用ツールは、*arr の設定に対して読み取り専用のアクセスを提供します。設定の変更は、*arr アプリケーションのインターフェースから直接行う必要があります。AI の提案はあくまで推奨事項です。大幅な変更を行う前に、必ず設定をバックアップしてください。AI が生成した推奨事項に従ったことで発生する設定変更、データ損失、その他の問題について、メンテナーは責任を負いません。
TRaSH Guides ツール
TRaSH Guides のコミュニティが厳選した品質プロファイル、カスタムフォーマット、命名規則に、Claude または ChatGPT から直接アクセスできます。これらのツールは *arr の設定がなくても動作し、TRaSH Guides の GitHub リポジトリから参照データを取得します。
| ツール | 説明 |
|---|---|
trash_list_profiles | Radarr または Sonarr で利用可能な TRaSH の品質プロファイルを一覧表示します |
trash_get_profile | カスタムフォーマット、スコア、品質設定を含む詳細なプロファイルを取得します |
trash_list_custom_formats | カテゴリ(hdr、audio、resolution など)で絞り込めるカスタムフォーマットの一覧を表示します |
trash_get_naming | Plex、Emby、Jellyfin、または標準向けの推奨命名規則を取得します |
trash_get_quality_sizes | 各品質レベルの推奨最小/最大/優先サイズを取得します |
trash_compare_profile | TRaSH の推奨設定とお使いのプロファイルを比較します(*arr の設定が必要です) |
trash_compare_naming | TRaSH の推奨設定とお使いの命名設定を比較します(*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をご覧ください。
リンク
- Servarr Wiki - すべての *arr アプリケーションのドキュメント
- TRaSH Guides - 品質プロファイル、カスタム形式、セットアップガイド
- Sonarr API Docs
- Model Context Protocol
- GitHub Repository
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。