arr-mcp
arr-mcp
Model Context Protocol サーバーの小規模な実装で、*arr メディアスタック(Sonarr、Radarr、Prowlarr、Jellyseerr、Bazarr)をクリーンで型付けされたツールの背後に置くものです。Claude などの MCP クライアントは、各アプリの REST API を介してそれらのツールを直接呼び出します。ブラウザも、スクリーンスクレイピングも、LAN への VPN も不要です。
サーバーは API キーを自身で保持し、クライアントがそれらを見ることはありません。.104 Docker ホスト上で動作し、認証付き Cloudflare Tunnel を介してクラウドから到達できるため、自宅にいる場合でも、スマホから Claude を操作している場合でも機能します。
なぜこれが存在するのか
Claude がこれまでメディアスタックで行っていたことはすべて、Mac 上のブラウザ拡張機能を経由していました。これには、接続 ID の変動(「どのブラウザ?」)、セッション/2FA の煩わしさ、VPN とリモートコントロールの操作などがありました。このサーバーはブラウザと Mac をループから完全に排除し、UI スクレイピングを高速で構造化された API 呼び出しに置き換えます。
Related MCP server: mcp-arr-suite
ツール
エリア | ツール |
概要 |
|
Sonarr |
|
Radarr |
|
Prowlarr |
|
Jellyseerr |
|
Bazarr |
|
* = 書き込みアクション(検索をトリガーするか、シリーズのブロックリストをクリアします)。その他はすべて読み取り専用です。削除/削除や設定変更のツールは意図的にありません — これにより影響範囲を小さく保ちます。必要に応じて後で追加します。
セットアップ
cp config.example.env .env
# edit .env: real API keys (Settings > General > Security > API Key in each app)
# and a strong MCP_AUTH_TOKEN: python3 -c "import secrets; print(secrets.token_urlsafe(48))"
docker compose up -d --buildクイックローカルチェック(MCP セッションが欠落しているという 400/406 が返るはずです — これはサーバーが起動しており、トークンが受け入れられたことを意味します。401 はトークンが間違っていることを意味します):
curl -s -o /dev/null -w "%{http_code}\n" \
-H "Authorization: Bearer <your MCP_AUTH_TOKEN>" \
http://localhost:8787/mcpDocker なしで実行する場合(開発用)
pip install -r requirements.txt
set -a; source .env; set +a
python server.pyClaude に公開する
MCP エンドポイントは https://<your-hostname>/mcp です。
トンネルを張ります。
docker-compose.ymlのcloudflaredサービスをコメントアウトして独自のトンネルを設定するか、既存の Jellyfin トンネルにhttp://arr-mcp:8787(ホストからはhttp://localhost:8787)を指すホスト名を追加します。ホスト名の前に Cloudflare Access を置くか、ベアラートークンに依存します — 理想的には両方です。Claude にカスタムコネクタとして追加します。 設定 → カスタマイズ → コネクタ → カスタムコネクタを追加 → URL
https://<your-hostname>/mcp。ベアラートークンをAuthorization: Bearer <token>ヘッダーとして指定します。 Claude は上記のツールを一覧表示します。
セキュリティに関する注意
ベアラートークン(
MCP_AUTH_TOKEN)は、エンドポイントがインターネットから到達可能になる前に必須です。空のままにすると、サーバーは警告を出力し、認証なしで提供します — localhost にバインドされている場合のみ許容されます。コンテナはデフォルトで
127.0.0.1:8787にバインドされるため、選択したトンネルを介してのみ公開されます。API キーは
.env(git 無視、docker 無視)にのみ存在します。漏洩した場合は各アプリでローテーションしてください。スコープは意図的に読み取り重視です。破壊的なツール(シリーズの削除、キューからの削除、設定の編集)を追加する前に、インターネットから到達可能なエンドポイントで利便性がリスクに見合うかどうかを判断してください。
ファイル
server.py— MCP サーバーとすべてのツール(ストリーミング可能な HTTP トランスポート + ベアラー認証)arr_client.py— すべてのサービスで共有される軽量な非同期 REST クライアントconfig.py— 環境変数からサービスごとにクライアントを構築(欠落 = 無効)Dockerfile/docker-compose.yml— コンテナ + オプションのトンネルconfig.example.env—.envにコピー
This server cannot be deployed
Maintenance
Related MCP Connectors
Jikan MCP — wraps the Jikan v4 API (anime/manga data, free, no auth)
Discover MCP servers and A2A agents; verify, message, post, follow, react, and receive webhooks.
AniList MCP — wraps AniList GraphQL API (free, no auth)
The official Planning Center MCP server for interacting with your ministry's data.
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server for the Servarr stack — Sonarr, Radarr, Lidarr, Readarr, and Prowlarr — packaged as a Docker container. Lets an MCP client (Claude Desktop, etc.) browse and search whichever \*arr apps you're running.291MIT
- AlicenseAqualityCmaintenanceEnables interaction with the *arr media management suite (Sonarr, Radarr, Lidarr, Prowlarr, SABnzbd) and TRaSH Guides through MCP tools, allowing media library management, searching, and configuration via natural language.7011 npm1MIT
- AlicenseAqualityBmaintenanceMCP server to manage your *ARR media stack (Radarr, Sonarr, Lidarr, Readarr, Prowlarr) for searching, adding, and managing movies, TV shows, music, books, and indexers.1ISC
- AlicenseBqualityDmaintenanceEnables control and management of a self-hosted media stack (Radarr, Sonarr, Prowlarr, SABnzbd, qBittorrent) through natural language via MCP.15GPL 3.0