Skip to main content
Glama

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

ツール

エリア

ツール

概要

stack_health

Sonarr

sonarr_health, sonarr_series, sonarr_series_detail, sonarr_missing_episodes, sonarr_search_episodes, sonarr_search_season, sonarr_queue, sonarr_blocklist_clear*, sonarr_lookup

Radarr

radarr_health, radarr_movies, radarr_search_movies*, radarr_queue

Prowlarr

prowlarr_health, prowlarr_indexers

Jellyseerr

jellyseerr_requests

Bazarr

bazarr_status

* = 書き込みアクション(検索をトリガーするか、シリーズのブロックリストをクリアします)。その他はすべて読み取り専用です。削除/削除や設定変更のツールは意図的にありません — これにより影響範囲を小さく保ちます。必要に応じて後で追加します。

セットアップ

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/mcp

Docker なしで実行する場合(開発用)

pip install -r requirements.txt
set -a; source .env; set +a
python server.py

Claude に公開する

MCP エンドポイントは https://<your-hostname>/mcp です。

  1. トンネルを張ります。 docker-compose.yml の cloudflared サービスをコメントアウトして独自のトンネルを設定するか、既存の Jellyfin トンネルに http://arr-mcp:8787(ホストからは http://localhost:8787)を指すホスト名を追加します。ホスト名の前に Cloudflare Access を置くか、ベアラートークンに依存します — 理想的には両方です。

  2. 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 にコピー

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    An 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.
    29
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables 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.
    70
    11 npm
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    MCP server to manage your *ARR media stack (Radarr, Sonarr, Lidarr, Readarr, Prowlarr) for searching, adding, and managing movies, TV shows, music, books, and indexers.
    1
    ISC