mcpField
Y
Yarr MCP

Yarr MCP

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

Yarr MCP について

Yarr MCPは、Sonarr、Radarr、Plex、Jellyfinなどを管理する運用者やエージェント向けのセルフホスト型メディア運用サーバーです。MCPとCLIで共通の操作レイヤーを使い、Code Modeで複数手順の処理も実行できます。

主な機能

  1. 01メディアサービスの状態確認
  2. 02認証付き上流API呼び出し
  3. 03生成されたOpenAPI操作
  4. 04他サービス向けの厳選コマンド
  5. 05Code Modeと再利用可能なスニペット

活用シーン

  1. 01メディアスタック全体の状態確認
  2. 02複数手順のメディア操作
  3. 03保存した自動化スニペットの再利用

MCP 対応

MCPクライアントにメディアサービスの操作を公開し、デフォルトでは単一のCode Modeツールを提供します。サービスごとのツールに切り替えられ、stdioとStreamable HTTPに対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"ai-dinglebear-yarr": {
"command": "npx",
"args": [
"-y",
"yarr-mcp"
],
"env": {
"YARR_SONARR_URL": "<YARR_SONARR_URL>",
"YARR_SONARR_API_KEY": "<YARR_SONARR_API_KEY>",
"YARR_RADARR_URL": "<YARR_RADARR_URL>",
"YARR_RADARR_API_KEY": "<YARR_RADARR_API_KEY>",
"YARR_PLEX_URL": "<YARR_PLEX_URL>",
"YARR_PLEX_TOKEN": "<YARR_PLEX_TOKEN>",
"YARR_VERSION": "<YARR_VERSION>",
"YARR_REPO": "<YARR_REPO>",
"YARR_RELEASE_BASE_URL": "<YARR_RELEASE_BASE_URL>",
"RUST_LOG": "<RUST_LOG>"
}
}
}
}
起動コマンドnpx -y yarr-mcp
設定が必要な環境変数
YARR_SONARR_URLOptional Sonarr base URL.
YARR_SONARR_API_KEYシークレットOptional Sonarr API key.
YARR_RADARR_URLOptional Radarr base URL.
YARR_RADARR_API_KEYシークレットOptional Radarr API key.
YARR_PLEX_URLOptional Plex base URL.
YARR_PLEX_TOKENシークレットOptional Plex token.
YARR_VERSIONOptional GitHub release tag override for the downloaded Yarr binary.
YARR_REPOOptional GitHub owner/repo override for release asset downloads.
YARR_RELEASE_BASE_URLOptional release download base URL override.
RUST_LOGTracing filter for Yarr logs.

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

パッケージ
npmyarr-mcp1.1.1

ツール

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

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

詳細

yarr

MCP と CLI を通じて、Sonarr、Radarr、Plex などを横断的に運用するセルフホスト可能なメディアフリート管理ツールです。

セルフホストのメディアスタックに対して Claude Code、Codex、Gemini CLI を実行する場合、yarr を使うと、11種類もの場当たり的な連携の代わりに、エージェントがすべてを一貫した方法で照会・制御できます。これは上流クライアント向けの MCP サーバーです。各アプリケーションを置き換えたり、すべての REST エンドポイントを Web UI として複製したりするものではありません。エージェント向けの一貫したツール群と、運用担当者向けの同等の CLI を提供することが役割です。

対象外: 任意のサービスに対応する汎用 REST ゲートウェイや、それ自体がスケジューラー/自動化エンジンとなる用途です。yarr が通信するのは、対応するサービスの種類に限られます。また、実行するのはユーザーまたはエージェントから指示された操作だけです。

目次

名称

このリポジトリは github.com/dinglebear-ai/yarr で公開されています。

Rust パッケージとインストールされるバイナリはいずれも yarr です。npm ランチャーパッケージは、短い名前の yarr が npm ですでに使用されているため yarr-mcp です。ランチャーをインストールすると、yarr コマンドを使用できます。MCP レジストリ名は ai.dinglebear/yarr、Docker イメージは ghcr.io/dinglebear-ai/yarr です。本番環境の Compose デプロイでは、不変のマニフェストダイジェストを使ってイメージを指定します。

プラグインの命名は意図的に分けています。

  • yarr は、完全な MCP サーバープラグインです。リポジトリと連動する @dinglebear/yarr npm パッケージを stdio 経由で起動し、サービスごとのすべてのフォールバック用スキルを含みます。プラットフォーム固有のバイナリは含めません。
  • sonarr、radarr、prowlarr、overseerr、sabnzbd、qbittorrent、plex、jellyfin、tautulli、tracearr、bazarr は、MCP サーバーも同梱バイナリも含まない、スキルのみのプラグインです。

機能と制限

yarr は、設定済みのメディア自動化フリートを、アクションディスパッチ方式の単一サービスレイヤーを通じてラップします。MCP と CLI の呼び出しは同じ実装を使うため、「エージェントがツールを使った場合」と「運用担当者がコマンドを実行した場合」の動作に差が生じません。

主な機能:

  • 設定済みサービス全体のフリート状態チェック。
  • 対応するサービスの種類に対する、認証情報付きの上流 API パススルー。
  • Sonarr、Radarr、Prowlarr、Overseerr、Jellyfin、Plex 向けの、テーブル駆動型 OpenAPI 操作メタデータ。実行機能は、宣言されたパラメーター、リクエストメディア、および成功レスポンスのトランスポート契約を維持します。未対応の行は除外され、生成された機能マトリックスに記載されます。
  • 使用可能な機械可読仕様を提供していない上流サービス向けの、SABnzbd、qBittorrent、Tautulli、Bazarr、Tracearr 用の厳選コマンド。
  • MCP 経由の Code Mode による、複数ステップのメディア自動化スクリプト。
  • 繰り返し実行できる Code Mode ワークフロー向けの、スニペットの保存と実行。
  • 各サービス向けの、スキルのみの直接 HTTP プラグインフォールバック。

制限:

  • yarr はメディアジョブを独自に保存またはスケジュールしません。
  • ローカル REST アクション API や組み込み Web UI は提供しません。
  • 未知のサービスの種類は受け付けません。
  • MCP 呼び出し元がアクション引数として認証情報、トークン、キー、シークレットを渡すことはありません。認証情報は環境変数、設定ファイル、または厳格なサービス別プラグイン設定 JSON から取得します。

インストール

ネイティブ版のリリースインストーラーが最も安全な標準の選択肢です。インストール前にリリースアーカイブと SHA-256 を検証し、yarr を ~/.local/bin にインストールします。

curl -fsSL https://raw.githubusercontent.com/dinglebear-ai/yarr/main/install.sh | bash
yarr --version

npm ランチャーは、たまたま latest タグが付いているバージョンへのエイリアスではなく、連動する配布物です。使用する前に、正確なリリースバージョンが npm に存在することを確認してください。

YARR_VERSION=2.1.0
npm view "@dinglebear/yarr@${YARR_VERSION}" version
npx -y "@dinglebear/yarr@${YARR_VERSION}" mcp
# Or, after the same availability check:
npm i -g "@dinglebear/yarr@${YARR_VERSION}"

MCP マニフェストでは、バージョンを固定しない npx @dinglebear/yarr や @latest は絶対に使用しないでください。不完全なリリースの後も、npm が古いランチャーを指している場合があります。このドキュメントの更新時点では、GitHub リリース v2.1.0 は公開されていますが、@dinglebear/[email protected] はまだ npm で入手できません。復旧状況はissue #80で追跡されています。正確な npm バージョンが解決するまでは、ネイティブインストーラー、検証済みのリリースアーカイブ、ソースからのビルド、または独立した Unraid パッケージを使用してください。

Unraid プラグイン

連携された Unraid 配布物は、unraid-plugin/にあります。従来の .plg インストーラーと特権サービスのライフサイクル、外部 NestJS GraphQL 拡張機能、Vue 設定/ダッシュボード用カスタム要素を組み合わせています。

Unraid のPlugins > Install Pluginページでプラグイン URL をインストールしてください。

https://raw.githubusercontent.com/dinglebear-ai/yarr/main/unraid-plugin/yarr.plg

新規インストールでは、Yarr はループバックにバインドされます。認証が設定されるまでは LAN またはカスタムアドレスへのバインドは拒否されます。tailnet のみに対応する方法として、Tailscale Serve がサポートされています。サービスの認証情報はサーバー側のブート設定に保持され、ブラウザーに返されることはありません。永続化、検出、更新、ロールバック、アンインストール時の保持、トラブルシューティング、リリースゲートについては、Unraid オペレーターおよびリリースガイドを参照してください。

クイックスタート

最初の画面から始める 30 秒の手順は次のとおりです。

export YARR_SERVICES=sonarr
export YARR_SONARR_URL=http://127.0.0.1:8989
export YARR_SONARR_API_KEY=...

yarr sonarr status
yarr mcp

次に、MCP クライアントの接続先として stdio コマンドを指定します。

{
  "mcpServers": {
    "yarr": {
      "command": "yarr",
      "args": ["mcp"],
      "env": {
        "YARR_SERVICES": "sonarr",
        "YARR_SONARR_URL": "http://127.0.0.1:8989",
        "YARR_SONARR_API_KEY": "${YARR_SONARR_API_KEY}"
      }
    }
  }
}

Claude Code プラグインをインストールする場合は、シェルではなく Claude Code のチャットセッション内でマーケットプレイスコマンドを使用してください。

/plugin marketplace add dinglebear-ai/yarr
/plugin install yarr@yarr

完全版プラグインは、マニフェストでバージョンを固定した正確なランチャーを起動します。プラグインをインストールまたはデバッグする前に、そのバージョンが存在することを確認してください。

npm view @dinglebear/[email protected] version

issue #80 が解決するまで、完全版プラグインは npm から起動できません。サービス固有のスキルのみのプラグインはそのランチャーに依存せず、アップストリームのワークフローに直接使用できます。

MCP サーバーを使わずにサービススクリプトを直接実行する場合は、スキルのみのプラグインを 1 つインストールしてください。

/plugin install sonarr@yarr
/plugin install plex@yarr

クライアント設定

stdio

stdio は、ローカル MCP で推奨されるトランスポートです。必要に応じて yarr mcp を起動するため、ローカルの HTTP ポートをバインドする必要はありません。

{
  "mcpServers": {
    "yarr": {
      "command": "yarr",
      "args": ["mcp"],
      "env": {
        "RUST_LOG": "info,yarr=debug"
      }
    }
  }
}
Streamable HTTP

複数のクライアントやマシンで 1 つの MCP エンドポイントを共有する場合は、永続サーバーを実行してください。

YARR_MCP_TOKEN=change-me yarr serve
{
  "mcpServers": {
    "yarr": {
      "url": "http://127.0.0.1:40070/mcp",
      "headers": {
        "Authorization": "Bearer ${YARR_MCP_TOKEN}"
      }
    }
  }
}

HTTP MCP の初期化スモークコール:

curl --fail http://127.0.0.1:40070/mcp \
  -H "Authorization: Bearer $YARR_MCP_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl-smoke","version":"1"}}}'

セッションを認識する tools/list や Code Mode の呼び出しには、mcporter などの MCP クライアントを使用してください。生の tools/call を一度だけ呼び出しても、完全な MCP セッションにはなりません。

実行時のインターフェース

インターフェース状態目的
MCP必須フリート全体に対して、デフォルトの yarr Code Mode ツールを 1 つ提供します
CLI必須デバッグと自動化のためのスクリプト可能な同等機能を提供します
REST提供なしアップストリームクライアントのサーバーは、ローカル REST アクション API を公開しません
Webコア:提供なしコアサーバーに UI は組み込まれていません。従来の Unraid 配布物は、別個の設定/ダッシュボード Web インターフェースを提供します

YARR_MCP_TOOL_MODE=flat を設定すると、単一の Code Mode ツールの代わりに、設定済みサービスごとにアクションディスパッチ型の MCP ツールを 1 つずつ公開します。このモードは、Labby のように独自の検出レイヤーとサンドボックスレイヤーをすでに提供しているゲートウェイの背後で有用です。codemode がデフォルトであり、単独で使う MCP クライアントに適しています。

MCP ツールリファレンス

デフォルトでは、MCP は yarr という名前のツールを 1 つ公開します。

フィールド型必須備考
codestringはいインプロセスの Code Mode サンドボックスで実行される JavaScript の非同期アロー関数

Code Mode 内では、スクリプトで次のものを使用できます。

  • sonarr.get_series()、 radarr.post_movie({ body })、prowlarr.get_indexer()、 plex.get_sessions() などのサービスごとの呼び出し可能な関数。
  • qbittorrent.download_queue() や tautulli.stats_activity() などの厳選されたコマンド。
  • api.<service>.get/post/put/delete(path, body) にある生のパススルーヘルパー。
  • 基盤となるアクションディスパッチのエスケープハッチである callTool(action, params)。
  • 検索用の codemode.search(query) と codemode.describe(path)。
  • 再利用可能なスクリプトやアーティファクト用の codemode.run(name, input)、codemode.snippets()、writeArtifact(...)。

生成される呼び出し可能な関数は、メタデータテーブルに基づいています。メソッド/パス、必須のパス引数、既知のクエリ名、JSON ボディの有無、制限付きの単一ファイル multipart エスケープハッチを保持します。必須のクエリ、ヘッダー/Cookie パラメーター、style/explode ルール、フォームスキーマ、メディアタイプ、レスポンススキーマをすべて検証するわけではありません。JSON 以外のエンドポイントやシリアライズに注意が必要なエンドポイントで生成された操作を使用する前に、docs/API.md を参照してください。

例:

async () => {
  const queue = await radarr.get_queue();
  await radarr.post_command({
    body: { name: "MoviesSearch", movieIds: [456] }
  });
  return { queued: queue.records?.length };
}
汎用アクション

次のアクションは、設定済みのすべてのサービス種別で使用できます。

アクションスコープCLI説明
service_statusyarr:readyarr <service> status上流サービスのステータスエンドポイントを取得します
api_getyarr:writeyarr <service> get --path <path>認証情報を使用して GET リクエストをプロキシします
api_postyarr:writeyarr <service> post --path <path> --body <json>POST リクエストをプロキシします
api_putyarr:writeyarr <service> put --path <path> --body <json>PUT リクエストをプロキシします
api_deleteyarr:writeyarr <service> delete --path <path>DELETE リクエストをプロキシします
helppublicyarr helpアクションのリファレンスを返します
Code Mode アクション
アクションスコープサーフェス説明
codemodeyarr:writeyarr ツール / yarr codemode --code <JS>フリート全体に対して JS アロー関数を実行します
opyarr:write<service>.<operation>() / yarr <service> op <name>生成された OpenAPI 操作をディスパッチします
snippet_listyarr:readyarr snippet list / codemode.snippets()保存済みスニペットを一覧表示します
snippet_saveyarr:writeyarr snippet save再利用可能なスニペットを保存します
snippet_runyarr:writeyarr snippet run / codemode.run(name, input)保存済みスニペットを実行します
snippet_deleteyarr:writeyarr snippet delete保存済みスニペットを削除します

confirm 引数はありません。CLI の破壊的コマンドは即座にディスパッチされます。 MCP からの直接呼び出し、および Code Mode 内のネストされた破壊的呼び出しにはエリシテーションが必要です。ピアがエリシテーションを実行できない場合、または承認が得られない場合は、フェイルクローズします。

CLI リファレンス

CLI はサービスごとにグループ化されています。

yarr help
yarr radarr status
yarr sonarr get --path /api/v3/system/status
yarr radarr post --path /api/v3/command --body '{"name":"RefreshMovie"}'
yarr sonarr put --path /api/v3/series/editor --body '{"seriesIds":[1],"qualityProfileId":4}'
yarr radarr delete --path /api/v3/movie/12

# Generated operations for spec-backed services.
yarr sonarr op get_series
yarr radarr op post_command --args '{"body":{"name":"MoviesSearch","movieIds":[456]}}'

# Curated commands for doc-only services.
yarr qbittorrent queue
yarr tautulli activity

# Code Mode and snippets.
yarr codemode --code 'async () => sonarr.get_system_status()'
yarr snippet list

--service フラグはありません。help、codemode、snippet などのインフラコマンドにはサービス指定が不要です。

設定

.env.example をコピーするか、config.example.toml を出発点として使用してください。一般的な環境変数:

YARR_MCP_HOST=127.0.0.1
YARR_MCP_PORT=40070
YARR_MCP_TOKEN=change-me

YARR_SERVICES=sonarr,radarr,prowlarr,tautulli,overseerr,bazarr,tracearr,sabnzbd,qbittorrent,plex,jellyfin
YARR_SONARR_URL=http://sonarr:8989
YARR_SONARR_API_KEY=...
YARR_RADARR_URL=http://radarr:7878
YARR_RADARR_API_KEY=...
YARR_QBITTORRENT_URL=http://qbittorrent:8080
YARR_QBITTORRENT_USERNAME=...
YARR_QBITTORRENT_PASSWORD=...
YARR_PLEX_URL=http://plex:32400
YARR_PLEX_TOKEN=...

サポートされているサービス種別は、sonarr、radarr、prowlarr、tautulli、 overseerr、bazarr、tracearr、sabnzbd、qbittorrent、plex、jellyfin です。

*_API_KEY は、ほとんどの Arr 系サービスで使用されます。qBittorrent はユーザー名/パスワードによるログインを使用します。Plex と Jellyfin のトークンヘッダーは個別に処理されます。

YARR_MCP_TOOL_MODE=codemode がデフォルトです。ゲートウェイにサービスごとの個別ツールを認識させる場合に限り、YARR_MCP_TOOL_MODE=flat を使用してください。

認証

YARR_MCP_TOKEN は、ループバックを含むあらゆる HTTP バインドで /mcp を認証します。 このトークンには YARR_MCP_STATIC_TOKEN_SCOPES のスコープが適用されます。デフォルトは 読み取り専用の yarr:read です。読み取り専用のベアラーデプロイメントでは、 YARR_MCP_TOOL_MODE=flat を使用する必要があります。デフォルトの Code Mode サーフェスを使用するには、 明示的に yarr:write スコープを指定する必要があります。127.0.0.1 または localhost で、ベアラー/OAuth の設定が明示されていない場合、ローカル開発向けに認証はバイパスされます。

認証状態:

状態条件動作
LoopbackDev明示的な認証なしでループバックにバインドする場合、またはループバックで認証なしを明示した場合認証なし、スコープなし
TrustedGatewayUnscoped信頼されたゲートウェイの背後で YARR_NOAUTH=true の場合ローカル認証もスコープもなし
Mounted bearerYARR_MCP_TOKEN を設定してあらゆる HTTP バインドを使用する場合設定された静的トークンスコープによるベアラー認証
Mounted OAuthあらゆる HTTP バインドで YARR_MCP_AUTH_MODE=oauth を設定する場合OAuth/JWT 認証と任意のベアラー認証

認証なしでアクセスできるヘルスエンドポイントは /health、/ready、/status、および /metrics です。/status はシークレットをマスキングします。/metrics は HTTP と上限付きの ドメインメトリクスを公開するため、必要に応じてネットワークアクセスを制限してください。

安全性と信頼モデル

シークレットはサーバー側に保持されます。MCP クライアントが指定するのはアクションのパラメーターであり、上流の トークンではありません。apikey=、token=、X-Plex-Token などのクエリ文字列内のシークレットは、パスの 検証時に拒否されます。

help はアクション層では公開されていますが、マウントされた HTTP トランスポートでは、引き続きベアラーまたは OAuth による トランスポート認証が必要です。service_status には yarr:read が必要です。 認証情報付きのパススルー、生成された操作、キュレーション済みの書き込み操作、および Code Mode には yarr:write が必要です。書き込みスコープは読み取りスコープも満たします。

生成された DELETE 操作、api_delete、download_remove、 stats_delete_image_cache、および trace_terminate_stream は破壊的な操作です。CLI コマンドはこれらをただちに実行します。MCP 呼び出しでは、Code Mode 内も含め、実際の実行時点で対話型の確認プロンプトが表示されます。 確認を回避できる呼び出し引数や、ネストされた callTool の経路はありません。

MCP クライアントに返される前に、共有トークン制限レイヤーによってレスポンスのサイズが制限されます。

アーキテクチャ

MCP shim (src/mcp/tools.rs)   CLI shim (src/cli.rs)
  JSON args -> dispatch          argv -> dispatch
        \                          /
         execute_service_action (src/actions/dispatch.rs)
             shared validation + curated-command dispatch
                          |
         YarrService (src/app.rs + src/app/*.rs)
           validation, service lookup, response shaping
                          |
         YarrClient (src/yarr.rs)
           network calls and auth headers

src/mcp.rs と src/cli.rs は、それぞれのサブモジュールを再エクスポートする薄いファサードです。 execute_service_action によって、CLI と MCP の同等性は手作業で同期するものではなく、構造的に保証されます。

サービスレイヤーが管理する内容:

  • サポート対象サービスのカタログと設定の検索
  • 安全なパス検証
  • 認証情報のマスキング
  • qBittorrent のログインフロー
  • レスポンスの正規化

配布に関する契約

リリースの識別情報の信頼できる唯一の情報源は、Cargo.toml、 Cargo.lock、xtask/Cargo.toml、.release-please-manifest.json、 packages/yarr-mcp/package.json、および server.json で共有されるバージョンです。

生成コードとドキュメントは、コミット済みのソース入力から再生成する必要があります。手作業でパッチを適用してはいけません。

  • 生成された OpenAPI 操作は src/openapi/generated/ にあり、specs/ のベンダー化された仕様から生成されます。
  • キュレーション済みのアクションは、手書きのアクションレジストリとドキュメントに記載されています。
  • プラグインマニフェストにはバージョンを含めません。マーケットプレイスは git のコミット SHA からプラグインのバージョンを導出します。
  • npm パッケージのバージョンと GitHub Release のタグは一致している必要があります。
  • server.json には、ai.dinglebear/yarr レジストリ ID の下で、正確な yarr-mcp npm バージョンと stdio 起動契約を指定する必要があります。
  • Docker イメージのパスは ghcr.io/dinglebear-ai/yarr です。本番環境へのデプロイでは、 昇格済みの不変な @sha256: ダイジェストを使用します。

開発

cargo run -- help
cargo fmt --check
cargo test
cargo clippy -- -D warnings
cargo build --release

生成された操作を変更する場合:

cargo xtask gen-openapi
cargo xtask tool-docs
cargo test --test parity

プラグインのパッケージングを変更する場合:

cargo test --test plugin_contract
cargo test --test template_invariants

検証

ドキュメントの変更を取り込む前に、README ガイドチェッカーを使用してください。

python3 /home/jmagar/workspace/soma/scripts/check-readme-guide.py README.md

配布に関わる作業では、パッケージと Rust のチェックを実行してください。

npm --prefix packages/yarr-mcp run check
cargo fmt --check
cargo check
cargo test
git diff --check

実際のインストールを検証する場合は、ネイティブインストーラーを検証してください。npm の経路を試すのは、 連携する正確なバージョンが解決された後に限ります。

curl -fsSL https://raw.githubusercontent.com/dinglebear-ai/yarr/main/install.sh | bash
yarr --version

YARR_VERSION=2.1.0
npm view "@dinglebear/yarr@${YARR_VERSION}" version
npx -y "@dinglebear/yarr@${YARR_VERSION}" mcp

ドキュメントの変更では、リポジトリ内のリンクとアンカーのチェックも必要です。

python3 scripts/check-doc-links.py

デプロイ

永続的な HTTP MCP サーバーとして実行します。

YARR_MCP_HOST=0.0.0.0 \
YARR_MCP_PORT=40070 \
YARR_MCP_TOKEN=change-me \
YARR_MCP_STATIC_TOKEN_SCOPES=yarr:read \
YARR_MCP_TOOL_MODE=flat \
yarr serve

Docker Compose によるデプロイについては、docker-compose.yml、 docker-compose.prod.yml、docs/DOCKER.md、docs/DEPLOYMENT.md を参照してください。 本番環境にデプロイする場合、ループバックの外部に公開するときは、yarr を信頼できるリバースプロキシまたは MCP ゲートウェイの背後に配置してください。

トラブルシューティング

  • HTTP MCP から 401 または 403 が返される場合:YARR_MCP_TOKEN、OAuth モード、ゲートウェイのヘッダーを確認してください。

  • unknown service:サービスが YARR_SERVICES に登録されており、対応する YARR_<SERVICE>_URL があることを確認してください。

  • アップストリームから 401 が返される場合:ツールの引数ではなく、サーバー環境にサービス固有の API キーまたはトークンが設定されていることを確認してください。

  • query-string secret rejected:トークンを --path から削除し、設定に追加してください。

  • プラグインのスキルがサービスに接続できない場合:~/.config/lab-<service>/config.json にあるサービスごとの設定 JSON がないか、古くなっています。このファイルはプラグインの SessionStart/ConfigChange フックによって書き込まれるため、新しいセッションを開始するか、プラグインの設定を変更して更新してください。手動で再作成するには、設定を自分でエクスポートしてください。スクリプトが読み取る CLAUDE_PLUGIN_OPTION_* は、フックのみが設定します。

    CLAUDE_PLUGIN_OPTION_SONARR_URL=https://sonarr.example.com \
    CLAUDE_PLUGIN_OPTION_SONARR_API_KEY=… \
      bash plugins/sonarr/scripts/setup.sh
    

    スキルスクリプトは Bash ツール経由で実行されますが、Bash ツールには CLAUDE_PLUGIN_OPTION_* 変数が一切 渡されません。変数を受け取るのはフックプロセスのみです。そのため、これらのプラグインにはフックが必要です。スキルの文章には機密値が置換されず、これらのプラグインには ${user_config.*} 環境変数ブロックを受け取る MCP サーバーもないため、機密値(sensitive: true)をスキルに渡せる唯一の経路がフックだからです。

  • Code Mode で呼び出し可能なものが見つからない場合:codemode.search(...) と codemode.describe(...) を使用してください。生成される名前は、正規化後のアップストリーム OpenAPI 操作 ID に従います。

  • npm またはフルプラグインで E404/ETARGET が報告される場合:固定されたランチャーの正確なバージョンを npm view @dinglebear/[email protected] version で確認してください。固定されていない latest にはフォールバックしないでください。issue #80 が未解決の間は、ネイティブバイナリを使用してください。

関連サーバー

  • soma - プロバイダー対応 MCP サーバー向け RMCP ランタイム。
  • unifi-rmcp - UniFi コントローラー REST API ブリッジ。
  • tailscale-rmcp - デバイス、ユーザー、テイルネット操作向け Tailscale API ブリッジ。
  • unraid-rmcp - NAS およびサーバー管理向け Unraid GraphQL ブリッジ。
  • apprise-rmcp - 多数の配信バックエンド向け Apprise 通知ファンアウトブリッジ。
  • gotify-rmcp - 送信、メッセージ、アプリ、クライアント向け Gotify プッシュ通知ブリッジ。
  • arcane-rmcp - コンテナーおよび関連リソース向け Arcane Docker 管理ブリッジ。
  • ytdl-rmcp - メディアのダウンロードとメタデータ処理のワークフローサーバー。
  • synapse-rmcp - scout および flux アクション向けのローカル Synapse ワークフローサーバー。
  • cortex - Syslog とホームラボのログを集約する MCP サーバー。
  • axon - RAG、クロール、スクレイピング、抽出、セマンティック検索プロジェクト。
  • labby - ホームラボのコントロールプレーンおよび MCP ゲートウェイプロジェクト。
  • lumen - ローカルセマンティックコード検索 MCP サーバー。

ドキュメント

情報の正式な参照先となるドキュメントは、次のように分かれています。

  • docs/README.md は、対象読者向けのドキュメント一覧です。
  • docs/DOCS.md では、権限、生成ドキュメントのルール、鮮度チェック、新しいドキュメントの配置場所を定義しています。
  • docs/API.md では、アクションの契約と Code Mode の呼び出し形式を扱っています。
  • docs/CONFIG.md、docs/ENV.md、docs/AUTH.md では、設定、環境変数、認証状態、ツールモードを扱っています。
  • docs/QUICKSTART.md では、ネイティブ、ソース、特定バージョンの npm、Unraid の初回実行手順を扱っています。
  • docs/MCP_SCHEMA.md と docs/TOOLS_ACTIONS_ENDPOINTS.md は、検証済みのスキーマ/アクションリファレンスです。
  • docs/DEPLOYMENT.md、docs/DOCKER.md、docs/SYSTEMD.md では、本番環境での実行方法を扱っています。
  • docs/CI.md、docs/SCRIPTS.md、docs/runbooks/ では、検証、リリース、インシデント、ロールバックを扱っています。
  • docs/PATTERNS.md には、RMCP サーバーファミリー全体で共有される規約が記載されています。
  • docs/PLUGINS.md、plugins/README.md、plugins/yarr/README.md では、マーケットプレイス向けのパッケージ化とランチャーの利用可否を扱っています。
  • unraid-plugin/README.md は、従来型の Unraid ディストリビューション向けに、運用、API、復旧、検証、リリースのガイドを提供します。
  • CLAUDE.md には、リポジトリ固有のエージェント用メモリと、「How to add an action」チェックリストが記載されています。

ライセンス

このプロジェクトのうち、Dinglebear が著作権を有するオリジナル部分は、AGPL-3.0-only の下でライセンスされています。AGPL の条件以外を必要とする組織向けに、別途商用ライセンスも提供しています。第三者の素材には、引き続き各素材の元のライセンスが適用されます。LICENSING.md を参照してください。

コメント

MCP は初めてですか?

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

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