mcpField
A
arr-mcp

arr-mcp

ローカル
github.comゲーム・エンタメ843 日前に更新

arr-mcp について

arr-mcpは、家庭のメディア環境を運用する人向けに、管理・再生サービスを1つのエンドポイントにまとめるMCPサーバーです。サービス間の状態を関連付けてリクエストの停滞箇所を調べられ、書き込みは初期状態で無効、実行前にプレビューと確認が必要です。

主な機能

  1. 01サービス横断のメディア診断
  2. 0212種類のメディアサービス対応
  3. 03書き込みのプレビューと確認
  4. 04サービスごとの書き込み制御と監査記録
  5. 05ブラウザーでの設定と診断

活用シーン

  1. 01リクエストした映画がJellyfinにない原因の追跡
  2. 02サービス横断でのインデクサーとダウンロード状況の確認
  3. 03メディアの監視やファイル変更のプレビュー
  4. 04品質プロファイル設定の問題確認

MCP 対応

互換クライアントに、単一のMCPエンドポイントからメディアサービスのツールを提供します。クライアント認証にはMCPトークンまたは対応するOAuth 2.1アクセストークンを使用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"bardesss-arr": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PUID",
"-e",
"PGID",
"-e",
"TZ",
"ghcr.io/bardesss/arr-mcp:1.45.1"
],
"env": {
"PUID": "<PUID>",
"PGID": "<PGID>",
"TZ": "<TZ>"
}
}
}
}
起動コマンドdocker run -i --rm -e PUID -e PGID -e TZ ghcr.io/bardesss/arr-mcp:1.45.1
設定が必要な環境変数
PUIDUser id owning the files in /config
PGIDGroup id owning the files in /config
TZTimezone used for timestamps, e.g. Europe/Amsterdam

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

パッケージ
ocighcr.io/bardesss/arr-mcp:1.45.1

ツール

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

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

詳細

README の画像

arr-mcp

メディアスタック全体と会話しましょう。1つのサーバー、1つのエンドポイント、1つの会話。

Radarr · Sonarr · Whisparr · Prowlarr · Bazarr · Jellyfin · Plex · Seerr · SABnzbd · Transmission · qBittorrent · Profilarr

Release CI Image Platforms Licence

arr-mcp ダッシュボード:設定済みのすべてのサービスをライブでテストし、ステータス、レイテンシ、バージョンを表示

他のプロジェクトはサービスごとに1つのMCPサーバーを提供しています。これはスタック全体を1つで扱います。

その違いこそがすべてです。興味深い疑問はサービスの間にあるからです。

「火曜日にリクエストした映画が、なぜJellyfinに表示されないのですか?」

単一のサービスでは答えられません。Seerr、Radarr、Prowlarr、SABnzbd、Jellyfinにまたがり、5つのAPI、5種類のID、5つの不完全な回答が関係します。arr-mcpはそれらを関連付け、原因の連鎖を返します。

diagnose { query: "Blade" }

まだディスク上にファイルがありません。RadarrまたはSonarrで検索を開始してください。ダウンロードは行われておらず、インデクサーからの失敗報告もありません。

1回の呼び出しで、1つの回答が得られます。サービスが停止していても回答し、推測で穴を埋めるのではなく、確認できなかった箇所を伝えます。

利用される理由

🔍 diagnoseは単一のサービスでは答えられない疑問に答えますリクエスト済み、管理対象、監視対象、ダウンロード済み、インデックス済み、インポート済み、スキャン済みという一連の流れをたどり、不在の原因として最初に該当する項目を示します。
🧮 仕様どおりに動作しない品質プロファイル到達可能なものがない最低スコア、必須にはならない優先言語、より広い分類のスコアがゼロなのに採点されるフォーマットなどです。計算で証明できる問題は推測ではなく証明し、修正案では、それらを管理するProfilarrで行う変更を具体的に示します。
🛡️ インデクサーのテキストはデータであり、指示ではありません公開インデクサーのリリース名は攻撃者が制御でき、モデルのコンテキストにそのまま流れ込みます。arr-mcpはそのすべてを隔離します。
✋ 書き込みはオプトインで、事前確認でき、記録されますサービスごとに有効化するまで無効です。書き込み内容を正確に表示して確認を待ち、いずれの場合も監査ログに記録します。
🖥️ 問題を診断できる設定ページブラウザーからサービスを追加し、問題の内容とその対処方法を確認できます。ログと書き込み監査記録も確認できます。YAMLは不要です。
📚 39個のツール、統一された用語体系すべてのリストで同じ方法でページ分割し、クライアントがstructuredContentを読み取れるかどうかにかかわらず読みやすく回答します。すべてのエラーで修正に必要な設定キーを示し、すべての書き込みでタイトルではなくIDを受け取ります。

この分野で、最後の5つすべてに対応しているものはほかにありません。

クイックスタート — 約2分

リポジトリ内の docker-compose.example.yml としても用意されています。 Unraid では、代わりに unraid/arr-mcp.xml を使用してください。appdata のパスと 99:100 の所有権があらかじめ設定された、Community Applications テンプレートです。まだ CA には掲載されていないため、今のところは /boot/config/plugins/dockerMan/templates-user/ に配置し、Add Container の下にあるテンプレート一覧から選択してください。起動後の手順 1〜3 は以下と同じです。

Proxmox VE では、proxmox/ を使って、ソースから非特権 Debian LXC をビルドできます。Docker は一切使用しません。ゲスト内ではなく、ホスト上で実行してください。

bash -c "$(curl -fsSL https://raw.githubusercontent.com/bardesss/arr-mcp/main/proxmox/ct/arr-mcp.sh)"

デフォルトでは、コア数 2、メモリ 2 GB、ディスク 8 GB です。メモリはサービス提供用ではなく、オプションの IMDb ingest 向けに設定されています。config.yaml、MCP トークン(ハッシュ化済み)、データベースは /config に保存されるため、アップデートで変更されることはありません。コンテナ内で update を実行すると、最新リリースから再ビルドできます。ホスト上で上記のコマンドを再実行すると、2つ目のコンテナがビルドされます。インストール後に応答がない場合は、journalctl -u arr-mcp がログです。

Community Scripts の規約に従っていますが、同プロジェクトのカタログには掲載されておらず、実際のホストで実行されたこともありません。特に arm64 では未検証のため、スクリプトは決めつけずに確認を求めます。うまくいった場合も、うまくいかなかった場合も、報告は役に立ちます。#265。起動後の手順 1〜3 は以下と同じです。

services:
  arr-mcp:
    image: ghcr.io/bardesss/arr-mcp:latest
    container_name: arr-mcp
    ports:
      - 6060:6060
    volumes:
      - ./config:/config
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Amsterdam
    restart: unless-stopped

1. http://<host>:6060 を開きます — ホスト名だけを指定し、パスは付けません。コンテナログから読み取るものはありません。

2. 初期設定を行います。 最初のページはサインイン画面ではなく、セットアップフォームです。ユーザー名と、12文字以上のパスワードを設定してください。

重要

ポートを外部に公開する前に設定してください。初期設定が完了するまでは、最初にこのページを開いた人がインスタンスを所有します。また、このインスタンスには各サービスの API キーが保存されています。

3. サービスを追加します — Add a service を選び、URL と API キーを貼り付けて保存します(Plex の場合は X-Plex-Token、Transmission と qBittorrent の場合はユーザー名とパスワードです)。設定はすぐに反映され、再起動は不要です。使用しているサービスだけを設定してください。解析できない設定ファイルが原因でコンテナが停止することはなくなりました。代わりに arr-mcp は、エラーとエディターを表示する修復ページを提供します。

MCP クライアントは、MCP トークンを使って http://<host>:6060/mcp に接続します。設定ページでトークンを作成してください。トークンは一度だけ表示されるため、すぐにコピーしてクライアントに設定してください。各トークンには独自のティアと有効期限があります。詳しくは MCP トークンをご覧ください。ヘッダーではなく URL しか指定できないクライアントでは、代わりに ?token= でトークンを渡せます。詳しくは allow_token_in_urlをご覧ください。すでに ID プロバイダーを運用している場合、/mcp は短期間有効な OAuth 2.1 アクセストークンも受け付けます。これにより、各クライアントに個別の認証情報と、その実行可能な操作を制限するスコープを設定できます。あるクライアントには読み取り専用、別のクライアントには書き込みを許可するといった設定ができ、許可される操作は config.yaml の設定を超えることはありません。詳しくは auth.oauthをご覧ください。UI での操作もすべて config.yaml に反映され、引き続き手動での編集もサポートされています。MCP Registry を参照するクライアントでは、io.github.bardesss/arr-mcp として見つかります。

接続先を問わず動作します。 Accept: application/json を要求するクライアント、または Accept をまったく送信しないクライアントには、text/event-stream も指定するよう求めて拒否するのではなく、Content-Length を含む単一の JSON オブジェクトを返します。ストリームを受け付けるクライアントには、ストリームを返します。拒否する場合でも、応答は JSON です。そのため、通常の curl をそのまま使えるほか、完全な MCP クライアントも利用できます。

イメージタグは X.Y.Z、X.Y、X、latest のほか、最新開発版向けの main です。新しいツール機能を自分で確認してから承認したい場合は、マイナーバージョン(:1.6 など)を固定してください。イメージは amd64 と arm64 向けに公開されているため、Raspberry Pi や ARM NAS でも、ほかの環境と同じビルドを実行できます。

質問できること

ツールは38種類ありますが、名前を指定する必要はありません。質問すれば、モデルが選びます。

「今ダウンロード中のものは何ですか? 止まっているものはありますか?」 「今週放送されたもののうち、まだ見ていない作品は何ですか?」 「失敗しているインデクサーと、そのエラー内容を教えてください」 「1994年公開で、評価が高く、まだ持っていない作品を探してください」 「公開されたばかりの映画のオランダ語字幕を探してください」 「そのリリースではなく、代わりに1080pのリマックスを取得してください」 「このエピソードが何度も失敗して、ダウンロードされないのはなぜですか?」 「SABnzbdを一時停止してください。1時間だけ帯域幅を空けたいです」 「シードのルールは何ですか? ルールを超えてシード中のものはありますか?」 「このダウンロードは何日も前に完了したのに、まだインポートされていません。対処してください」 「このシリーズを4Kプロファイルに設定し、今後のシーズンだけを監視してください」 「このプロファイルはオランダ語を指定しているのに、英語ばかり取得します。なぜですか?」 「Radarrの設定のうち、Profilarrで設定した内容と食い違っているものはありますか?」 「ファイルとメタデータが一致していない番組はどれですか?」 「これらのエピソードのタイトルがファイルと合っていません。修正してください」 「シーズン5の監視を解除して、ファイルを削除してください」 — 必ず最初にプレビューします。

ドキュメント

ツール39種類すべてのツールの説明、各ツールでできること、意味が自明ではないフィールド
書き込み操作有効化する方法、2段階の権限、プレビューと確認の手順
設定config.yaml、リストを受け取る7つのサービス、Jellyfinのdefault_user、PlexとJellyfinを同時に実行する方法
設定UI4つのページと、それぞれのページでできることのうち、自明ではないもの
管理APIコンパニオンアプリでサービス、設定、トークンを確認・管理するためのJSON API。設定ページで生成するキーを使用します
IMDbの評価シリーズのIMDbスコアを取得する唯一の方法と、その費用
セキュリティOWASP MCP Top 10に照らして確認した脅威モデルと、解決できない問題
貢献対象となるサービス、アダプターの追加方法、AI エージェントが破りがちなルール

要件

  • 対応サービスのうち少なくとも1つにLAN経由で接続できること:Radarr 4.0+、Sonarr 4.0+、 Whisparr 2.x(V2のみ、Erosは対象外)、Prowlarr 1.0+、Bazarr 1.4+、Jellyfin 10.9+、Plex Media Server 1.32+、 Seerr 1.0+、SABnzbd 3.0+、Transmission 3.0+、qBittorrent 4.1+、Profilarr 2.2.0+
  • Docker、またはソースから実行する場合はNode 24+
  • プロトコルリビジョン2026-07-28に対応したMCPクライアント

1.0以降、ツールの仕様は公開APIです。ツール、パラメーター、レスポンスフィールドの名前を変更したり削除したりすると、メジャー変更になります。破壊的変更が通知されず、モデルは名前を変更されたツールでエラーを出すのではなく、そのツールを見つけられなくなるためです。

コントリビューション

コントリビューションを歓迎します。特に、新しいサービスアダプターを歓迎します — Lidarr、 Emby、Deluge は、現在いずれも受け入れられます。受け入れ可能なものの一覧には、 受け入れられないものと併せて事前に記載されています。アダプターは、コードベースの中で意図的に 最も独立性の高いものになっています。まず知っておいていただきたいことが2つあります。すべての サービスが条件を満たすわけではなく、基準はプルリクエストごとに決めるのではなく、文書に明記されています — 条件を満たすサービスをご確認ください。そして、 私が実行していないサービスはテストできません。そのため、もう1つの基準として、ご自身の稼働中の インスタンスでテストし、何をどのバージョンに対してテストしたかをプルリクエストに記載してください。

未検証のアダプターは qBittorrent だけです。 メンテナーは Plex も qBittorrent も実行していません — テストするには、ご自身のサーバーに対してビルドを実行し、動作した内容を報告してください。Plexはその後、 2人のボランティアテスターによって、2台の稼働中の Plex Media Server で検証されました。最初の書き込み機能も 含まれており、メタデータ修復機能もその後、稼働中のサーバー上で映画とシリーズの両方を修復しました (#312)。qBittorrentはリリース済みですが、同じ種類の報告を 引き続き待っています。Plex の設計と、ほかに一覧に載っているもの。

AI を活用したコントリビューションも歓迎します。基準は同じで、それ以外の追加条件はありません。 arr-mcp 自体もコーディングエージェントを使って開発されています。ご利用のコーディングエージェントに CONTRIBUTING.mdを参照させてください。

ツールが見つかりませんか? あるべきだと思うツールではなく、回答できなかった質問の内容を説明して イシューを作成してください。多くの場合、既存ツールに新しいパラメーターを追加すれば解決します — 本当に新しいツールが必要な場合は、その質問が必要性を示してくれます。

セキュリティ

arr-mcp はインターネットに公開することを想定して設計されていません。 /mcp エンドポイントに ベアラートークンが必要なのは、「LAN 内のみ」というのはセキュリティ対策ではなくネットワーク上の前提だからです — このエンドポイントは、設定したすべてのサービス認証情報に加え、有効化するとファイル削除機能にもアクセスでき、 ホームネットワークにはゲストのスマートフォンや IoT デバイスも接続されています。LAN の外からアクセスする必要がある場合は、 TLS を使用するリバースプロキシの背後に配置し、必要に応じて allowed_hosts を固定してください。

ネットワーク以外の対策として、書き込み機能は有効化するまでオフになっており、すべての書き込みは 実行前にプレビューと確認を行い、サービスから返されるデータはすべて命令ではなくデータとして扱われます。セキュリティでは、 これらすべてを OWASP MCP Top 10 に照らして説明するとともに、解決しない問題についても明確に記載しています。 問題を見つけましたか? SECURITY.mdをご覧ください。

謝辞

arr-mcp はつなぎ役です。難しい部分を担っているのは、ほかの人たちです。連携しているサービスのほとんどは、 主にボランティアによって保守されているフリーソフトウェアです — Radarr、 Sonarr、Whisparr、 Prowlarr、 Bazarr、Jellyfin、 Seerr、SABnzbd、 Transmission、qBittorrent、 Profilarr — 基盤となるライブラリも同様です。 MCP TypeScript SDK、 Hono、Zod、Pino、 Vitest、yaml、そして TypeScriptです。arr-mcp が役立った場合は、まずこれらのプロジェクトへの支援をご検討ください。 例外は Plexです。商用製品ですが、その API はほかと同じくらい多くの作業を担っています。

IMDb データセットを有効にする場合:情報は IMDb提供のもので、個人利用および非商用利用に限り、許可を得て使用しています。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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