Arcane RMCP について
Arcane RMCPは、既存のArcane環境とDockerリソースを管理するRust製MCPサーバー兼CLIです。stdioとStreamable HTTPに対応し、権限スコープと破壊的操作の明示的な確認を適用します。
主な機能
- 01ArcaneとDockerの状態確認
- 02プロジェクト、コンテナ、イメージ、ボリュームの管理
- 03GitOps同期とレジストリの操作
- 04イメージ更新と脆弱性の確認
- 05CLIによる設定、診断、監視
活用シーン
- 01環境とコンテナの状態確認
- 02Arcane管理プロジェクトのデプロイや更新
- 03脆弱性情報とイメージ更新の確認
- 04スクリプトやMCP経由で管理操作を実行
MCP 対応
Arcaneを操作する単一の `arcane` ツールを、stdioまたはStreamable HTTP MCPで公開します。既存のArcane APIに認証し、操作スコープと破壊的操作の確認を適用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y arcane-rmcpRARCANE_API_URLArcane API base URL.RARCANE_API_KEYシークレットArcane API key or bearer token.ARCANE_RMCP_VERSIONOptional GitHub release tag override for the downloaded Arcane RMCP binary.ARCANE_RMCP_REPOOptional GitHub owner/repo override for release asset downloads.ARCANE_RMCP_RELEASE_BASE_URLOptional release download base URL override.RUST_LOGTracing filter for Arcane RMCP logs.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
arcane-rmcp
MCP と CLI を介した、認証済みの stdio および HTTP による Arcane Docker・Compose 管理。
MCP ツール arcane と rarcane CLI を提供します。エージェントは、stdio MCP、Streamable HTTP MCP、またはシェルコマンドを直接実行して、Arcane 環境の確認、Compose プロジェクト、コンテナー、イメージ、ネットワーク、ボリューム、レジストリ、GitOps 同期、イメージ更新、脆弱性の検出結果、システム操作を管理できます。
30 秒で始める手順: RARCANE_API_URL と RARCANE_API_KEY を設定し、npx -y @dinglebear/rarcane status を実行します。次に、RARCANE_MCP_HOST=127.0.0.1 npx -y @dinglebear/rarcane serve でループバック HTTP を起動し、{"action":"status"} を指定して tools/call を呼び出します。
ステータス: 稼働中の RMCP アップストリームクライアントサーバーです。書き込みに対応しています。破壊的な Docker および Arcane 操作には明示的な確認が必要です。HTTP MCP は、ループバック開発モード、静的ベアラートークン、lab-auth を介した Google OAuth に対応しています。
用途外: Arcane の置き換え、Docker や Arcane の認可の回避、任意のシェルコマンドの実行、レジストリまたは Git の認証情報の保存、マルチテナント分離、MCP ツール引数による Arcane API キーの受け渡し。
目次
- 命名
- 機能と境界
- インストール
- クイックスタート
- クライアント設定
- ランタイムのインターフェース
- MCP ツールリファレンス
- CLI リファレンス
- 設定
- 認証
- 安全性と信頼モデル
- アーキテクチャ
- 配布契約
- 開発
- 検証
- デプロイ
- トラブルシューティング
- 関連サーバー
- ドキュメント
- ライセンス
命名
| インターフェース | このリポジトリ |
|---|---|
| リポジトリ | arcane-rmcp |
| Rust クレート | rarcane |
| バイナリ/CLI | rarcane |
| npm パッケージ | @dinglebear/rarcane |
| npm バイナリのエイリアス | rarcane |
| MCP サーバー名 | バンドルされたプラグイン/クライアント設定では rarcane |
| MCP ツール | arcane |
| 設定ホーム | ホストでは ~/.rarcane、コンテナーでは /data |
| 環境変数のプレフィックス | npm ランチャーの制御には RARCANE_*、RARCANE_MCP_*、RARCANE_RMCP_* |
リポジトリと npm パッケージにはアップストリームサービス名を使用し、配布バイナリには過去から使われている Rust CLI 名 rarcane を引き続き使用します。MCP サーバーは rarcane として登録できますが、クライアントが呼び出すツール名は arcane です。
機能と境界
- Arcane のステータスに加え、Docker 環境、プロジェクト、コンテナー、イメージ、ネットワーク、ボリューム、レジストリ、GitOps、更新、脆弱性、システムの状態を読み取ります。
- アクション/サブアクションのディスパッチを通じて、対応する Arcane リソースの作成、更新、起動、停止、再起動、削除、クリーンアップ、デプロイ、同期、スキャン、バックアップを実行します。
- 書き込み操作を Arcane に転送する前に、アクションのスコープと破壊的操作の確認を適用します。
- クライアント側での検出に使用できる
quick_startプロンプトとrarcane://schema/mcp-toolリソースを提供します。 - ローカルのプラグイン/ランタイム確認用に、セットアップ、doctor、watch コマンドを提供します。
| このリポジトリの責任範囲 | Arcane の責任範囲 | 明示的な対象外 |
|---|---|---|
| MCP/CLI の投影、リクエストの検証、認証ポリシー、レスポンスの整形、セットアップ確認、スキーマ/リソースの公開、破壊的操作のゲート。 | Docker の状態、Arcane のプロジェクトと環境、アップストリームの認可、レジストリの認証情報、GitOps のシークレット、脆弱性スキャナーの出力、API のセマンティクス。 | Docker ソケットへの直接アクセス、シェル実行、認証情報の保存、汎用 REST プロキシの動作、マルチテナントのサンドボックス化、スケジューラーの動作、Arcane UI/API の置き換え。 |
インストール
| パス | コマンド | 最適な用途 | 備考 |
|---|---|---|---|
| npm / npx | npx -y @dinglebear/rarcane --help | ローカル MCP クライアントや手早い試用に適しています。 | GitHub Releases から対応する rarcane バイナリをダウンロードします。 |
| リリースインストーラー | curl -fsSL https://raw.githubusercontent.com/dinglebear-ai/rarcane/main/scripts/install.sh | bash | Node を使わないホストへのインストールに適しています。 | 現在の Linux ホストに rarcane をインストールします。 |
| Docker / Compose | docker compose up -d | 共有 HTTP MCP デプロイに適しています。 | .env を読み込み、コンテナーポート 40110 を公開します。 |
| ソースからビルド | cargo build --release | 開発や監査に適しています。 | target/release/rarcane を生成します。 |
| プラグイン | claude plugin install plugins/rarcane | このチェックアウトから Claude Code のローカルプラグインをセットアップする場合に適しています。 | パッケージ化されたスキルとモニターのメタデータを使用します。このプラグインにはライフサイクルフックは含まれていません。インストール後に rarcane setup repair を一度実行してください。 |
npm / npx
バイナリを手動でインストールせずに、stdio MCP サーバーまたは CLI を実行します。
npx -y @dinglebear/rarcane --help
npx -y @dinglebear/rarcane mcp
npx -y @dinglebear/rarcane status
npm パッケージは postinstall 中に rarcane をダウンロードします。ダウンロードの
動作を変更するのは、パッケージングのテスト時のみにしてください。
| 変数 | 用途 |
|---|---|
RARCANE_RMCP_SKIP_DOWNLOAD=1 | postinstall によるバイナリのダウンロードをスキップします。 |
RARCANE_RMCP_VERSION または RARCANE_RMCP_BINARY_VERSION | GitHub Release のタグを選択します。 |
RARCANE_RMCP_REPO | リリースのダウンロードに使用する GitHub リポジトリを選択します。 |
RARCANE_RMCP_RELEASE_BASE_URL | カスタムのリリースベース URL を選択します。 |
ソースからビルド
git clone https://github.com/dinglebear-ai/rarcane
cd rarcane
cargo build --release
./target/release/rarcane --help
サポートされる Rust の最小バージョン:1.90。
クイックスタート
1. Arcane を設定する
ブリッジが既存の Arcane API サーバーを参照するように設定します。
export RARCANE_API_URL=https://arcane.example.com
export RARCANE_API_KEY=...
API キーは環境変数または設定ファイルからのみ読み込まれます。MCP ツールの
引数や CLI の --params-json には渡さないでください。
2. 安全な CLI 呼び出しを実行する
npx -y @dinglebear/rarcane status
3. ループバック HTTP MCP を起動する
RARCANE_MCP_HOST=127.0.0.1 npx -y @dinglebear/rarcane serve
別のシェルで、次を実行します。
curl -sf http://127.0.0.1:40110/health
4. 最初の MCP 呼び出しを行う
curl -s -X POST http://127.0.0.1:40110/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"arcane","arguments":{"action":"status"}}}'
クライアントの設定
Claude Code Stdio
{
"mcpServers": {
"rarcane": {
"command": "npx",
"args": ["-y", "arcane-rmcp", "mcp"],
"env": {
"RARCANE_API_URL": "https://arcane.example.com",
"RARCANE_API_KEY": "..."
}
}
}
}
Claude Code HTTP
{
"mcpServers": {
"rarcane": {
"type": "http",
"url": "http://127.0.0.1:40110/mcp",
"headers": {
"Authorization": "Bearer ${RARCANE_MCP_TOKEN}"
}
}
}
}
Codex / Labby Gateway
長時間稼働するサーバーを共有する場合は、Labby を通じて Arcane を HTTP アップストリームとして 登録します。ローカルのみで使用する場合は、stdio として直接実行します。
[mcp_servers.rarcane]
command = "npx"
args = ["-y", "arcane-rmcp", "mcp"]
汎用 MCP JSON
{
"command": "rarcane",
"args": ["mcp"],
"env": {
"RARCANE_API_URL": "https://arcane.example.com"
}
}
RARCANE_API_KEY、レジストリの認証情報、Git の認証情報、OAuth
シークレット、SSH キー、パスワード、アップストリームのベアラートークンを MCP ツールの引数に含めないでください。
環境変数、設定ファイル、または MCP クライアントのシークレットストレージを使用してください。
MCP 呼び出し元が、アクションの引数として認証情報、トークン、キー、シークレットを渡すことはありません。
実行環境
| 実行環境 | 状態 | エントリーポイント | 用途 |
|---|---|---|---|
| MCP stdio | サポート対象 | rarcane mcp、npx -y @dinglebear/rarcane mcp | ローカルの子プロセス型 MCP クライアント。 |
| MCP HTTP | サポート対象 | rarcane serve、POST /mcp | ローカルまたは共有サーバーへのデプロイ向けのストリーミング可能な HTTP MCP。 |
| CLI | サポート対象 | rarcane <command> | スクリプトからの同等操作やデバッグ。 |
| プロンプト | サポート対象 | quick_start | クライアントを status と公開 help に案内します。 |
| リソース | サポート対象 | rarcane://schema/mcp-tool | arcane ツールの JSON スキーマ。 |
| REST API | 提供なし | N/A | REST API はすでに Arcane が提供しています。 |
| Web UI | 提供なし | N/A | Web UI はすでに Arcane が提供しています。 |
MCP ツールリファレンス
公開される MCP ツールは arcane の 1 つです。必須の action 引数と、ほとんどのドメインで必須となる subaction を渡してください。
| アクション | 主なサブアクション | スコープ |
|---|---|---|
help | アクションのリファレンスまたはドメイン固有のヘルプ | public |
status | ローカルブリッジと Arcane 設定のステータス | rarcane:read |
elicit_name | MCP エリシテーションのデモ | rarcane:read |
scaffold_intent | 副作用のないスキャフォールド計画の引き継ぎ | rarcane:read |
environment | list、get、create、update、delete、test | 読み取り/書き込み |
project | list、get、create、update、up、down、restart、pull、destroy、redeploy、build | 読み取り/書き込み |
container | list、get、create、start、stop、restart、update、delete、stats | 読み取り/書き込み |
image | list、get、pull、delete、prune、scan | 読み取り/書き込み |
network | list、get、create、delete、prune | 読み取り/書き込み |
volume | list、get、create、delete、prune、browse、list-backups、create-backup、delete-backup、restore、restore-files | 読み取り/書き込み |
system | docker-info、prune、start-all、stop-all、convert | 読み取り/書き込み |
image-update | check-all、check、check-batch、summary | 読み取り |
vulnerability | summary、list、scanner-status、ignore、unignore、list-ignored | 読み取り/書き込み |
registry | list、get、create、update、delete、test | 読み取り/書き込み |
gitops | list、get、create、update、delete、sync、status、browse | 読み取り/書き込み |
必須パラメーターの正確な情報は、src/actions.rs のアクション仕様と、生成されたスキーマの注記である
docs/MCP_SCHEMA.md を参照してください。
読み取り専用ツール引数の例:
{
"action": "container",
"subaction": "list",
"envId": "default"
}
破壊的操作の例:
{
"action": "container",
"subaction": "stop",
"envId": "default",
"id": "my-container",
"params": {
"confirm": true
}
}
CLI リファレンス
rarcane は MCP ツールと同じサービスレイヤーを公開します。
rarcane status
rarcane help --domain container
rarcane call --action container --subaction list --env-id default
rarcane call --action system --subaction docker-info --env-id default
rarcane call --action container --subaction stop --env-id default --id my-container --confirm
rarcane doctor --json
rarcane watch --url http://127.0.0.1:40110
rarcane setup check
rarcane setup repair
--params-json はアクション固有の JSON ペイロードを受け付けます。認証情報を渡すために使用しないでください。
設定
ホストへのインストールでは、~/.rarcane/.env、~/.rarcane/config.toml、およびプロセス環境変数が読み込まれます。
コンテナーでは、/data/.env、/data/config.toml、およびプロセス環境変数が読み込まれます。
| 変数 | デフォルト | 用途 |
|---|---|---|
RARCANE_API_URL | 未設定 | Arcane API のベース URL。 |
RARCANE_API_KEY | 未設定 | Arcane API キーまたはベアラートークン。 |
RARCANE_MCP_HOST | 127.0.0.1 | HTTP のバインドホスト。 |
RARCANE_MCP_PORT | 40110 | HTTP のバインドポート。 |
RARCANE_MCP_SERVER_NAME | arcane-rmcp | 公開する MCP サーバー名。 |
RARCANE_MCP_TOKEN | 未設定 | HTTP MCP 用の静的ベアラートークン。 |
RARCANE_MCP_NO_AUTH | false | ループバックでの開発時に限り、認証を無効にします。 |
RARCANE_NOAUTH | false | 上流ゲートウェイが認証を強制することを信頼します。 |
RARCANE_MCP_ALLOWED_HOSTS | 未設定 | 追加で受け付ける Host ヘッダーの値。 |
RARCANE_MCP_ALLOWED_ORIGINS | 未設定 | 追加で受け付ける CORS オリジン。 |
RARCANE_MCP_PUBLIC_URL | 未設定 | OAuth 発行者メタデータ用の公開ベース URL。 |
RARCANE_MCP_AUTH_MODE | bearer | bearer または oauth。 |
RARCANE_MCP_ALLOW_DESTRUCTIVE | false | 呼び出しごとの破壊的操作の確認ゲートをバイパスします。共有環境には設定しないでください。 |
RARCANE_HOME | ~/.rarcane | 設定/アプリデータのルートを上書きします。 |
RUST_LOG | info | ログフィルター。 |
認証
Stdio MCP は信頼されたローカルの子プロセスとして実行され、HTTP 認証は使用しません。
HTTP MCP の認証ポリシー:
| 状態 | 条件 | 動作 |
|---|---|---|
| ループバック開発 | 127.0.0.1、localhost、または [::1] にバインド | ローカルでの未認証開発が許可されます。 |
| ベアラートークンを使用した公開 | RARCANE_MCP_TOKEN を設定した非ループバック | Authorization: Bearer <token> とアクションスコープが必要です。 |
| OAuth を使用した公開 | RARCANE_MCP_AUTH_MODE=oauth | lab-auth を介して Google OAuth/JWT を使用します。静的ベアラートークンも引き続きサポートされます。 |
| 信頼されたゲートウェイ | RARCANE_NOAUTH=true | リバースプロキシまたはゲートウェイで認証がすでに適用されていることを前提とします。 |
OAuth モードでは、docs/CONFIG.md に記載されている RARCANE_MCP_* Google OAuth 変数を使用します。
OAuth モードは単一レプリカ構成です。クライアント/セッション状態と署名キーは 1 台のホストに保存されます。これらの保存先が外部化されるか、安全に共有できるようになるまでは、複数の OAuth レプリカを実行しないでください。
安全性と信頼モデル
- Arcane API の認証情報は、設定または環境変数からのみ読み込まれます。
- MCP の呼び出し元が選択できるのはアクションとペイロードであり、上流の認証情報ではありません。
- 破壊的なサブアクションは、
params.confirm=trueまたは CLI の--confirmが指定されていない場合、拒否されます。 - 不明なアクション、不明なサブアクション、環境 ID の欠落、ID の欠落、および安全でないボリュームパスは、上流への呼び出し前に拒否されます。
- 非ループバックの HTTP デプロイでは、ベアラー認証、OAuth、または認証済みの信頼されたゲートウェイを使用する必要があります。
- このブリッジは Arcane 自体をサンドボックス化しません。Docker の認可と Docker 操作の影響については、引き続き Arcane が責任を負います。
アーキテクチャ
ArcaneClient (src/arcane.rs) HTTP transport and redacted errors
|
ArcaneService (src/app.rs) action validation, confirmation, response normalization
|
MCP shim (src/mcp/tools.rs) JSON args -> service -> Value
CLI shim (src/cli.rs) argv -> service -> stdout
配布契約
Cargo.toml、Cargo.lock、packages/arcane-rmcp/package.json、.release-please-manifest.json、およびserver.jsonのリリースバージョンを一致させる必要があります。- GitHub Releases では、npm ランチャーが使用する
rarcaneバイナリを公開します。 - npm パッケージ名は
@dinglebear/rarcane、インストールされるバイナリエイリアスはrarcaneです。 - Docker/OCI メタデータでは
ghcr.io/dinglebear-ai/rarcane:<version>を使用します。 plugins/rarcane/.mcp.jsonではnpx -y @dinglebear/rarcane mcpを起動する必要があります。これにより、stdio クライアントは HTTP サーバーではなく MCP トランスポートを開始します。- ルートの README は手動で管理されています。生成された詳細情報や正式な情報源となる詳細は、
src/actions.rs、docs/MCP_SCHEMA.md、およびパッケージ/レジストリのマニフェストにあります。
開発
cargo fmt --check
cargo test
cargo clippy -- -D warnings
cargo build --release
npm --prefix packages/arcane-rmcp run check
検証
just verify # fmt-check → lint → check → test
just template-check # patterns, plugin layout, schema docs, scaffold contract
npm --prefix packages/arcane-rmcp run check
git diff --check
ランタイムのスモークテスト:
RARCANE_API_URL=https://arcane.example.com \
RARCANE_API_KEY=... \
rarcane status
HTTP のスモークテスト:
RARCANE_MCP_HOST=127.0.0.1 rarcane serve
curl -sf http://127.0.0.1:40110/health
デプロイ
ローカル開発ではループバックを使用してください:
RARCANE_MCP_HOST=127.0.0.1 rarcane serve
共有 HTTP デプロイでは Docker Compose を使用してください:
cp .env.example .env
docker compose up -d
非ループバックアドレスにバインドする場合は、RARCANE_MCP_TOKEN、RARCANE_MCP_AUTH_MODE=oauth、または認証済みゲートウェイの背後で RARCANE_NOAUTH=true を設定してください。
トラブルシューティング
| 症状 | 確認事項 |
|---|---|
RARCANE_API_URL is required | 環境変数または ~/.rarcane/.env に RARCANE_API_URL を設定します。 |
| Arcane 呼び出しが未認証エラーになる | Arcane で RARCANE_API_KEY を更新し、ブリッジを再起動します。 |
HTTP /mcp が未認証エラーを返す | RARCANE_MCP_TOKEN を設定し、Authorization: Bearer <token> を送信します。 |
| stdio クライアントが応答しない、または JSON エラーをログに出力する | クライアント設定で、デフォルトの HTTP サーバーモードではなく arcane-rmcp mcp が実行されることを確認します。 |
| 破壊的なアクションが拒否される | 対象を確認したうえで、CLI の --confirm または MCP の params.confirm=true を追加します。 |
| ポートの競合 | RARCANE_MCP_PORT を設定するか、40110 をすでに使用しているプロセスを停止します。 |
関連サーバー
- soma - プロバイダー連携型 MCP サーバー向け RMCP ランタイム。
- unifi-rmcp - UniFi コントローラー REST API ブリッジ。
- tailscale-rmcp - デバイス、ユーザー、テールネット操作向けの Tailscale API ブリッジ。
- unraid - NAS およびサーバー管理向け Unraid GraphQL ブリッジ。
- apprise-rmcp - 多数の配信バックエンドに対応する Apprise 通知ファンアウトブリッジ。
- gotify-rmcp - 送信、メッセージ、アプリ、クライアントに対応する Gotify プッシュ通知ブリッジ。
- yarr - Sonarr、Radarr、Prowlarr、Plex、および関連サービス向けのメディアスタックブリッジ。
- ytdl-rmcp - メディアのダウンロードとメタデータのワークフローサーバー。
- synapse-rmcp - scout および flux アクション向けのローカル Synapse ワークフローサーバー。
- cortex - Syslog およびホームラボのログ集約 MCP サーバー。
- axon - RAG、クロール、スクレイピング、抽出、セマンティック検索のプロジェクト。
- labby - ホームラボのコントロールプレーンおよび MCP ゲートウェイプロジェクト。
- lumen - ローカルのセマンティックコード検索 MCP サーバー。
ドキュメント
docs/API.mdは、アクションのコントラクトをまとめた概要です。docs/CONFIG.mdは、設定と認証に関するリファレンスをまとめたものです。docs/QUICKSTART.mdは、スモークテストのガイドをまとめたものです。docs/MCP_SCHEMA.mdは、アクション、リソース、プロンプト、検証ルールに関する生成済みスキーマおよびスキーマ差分のコントラクトです。plugins/rarcane/skills/rarcane/SKILL.mdは、エージェント向けの使用ガイドです。
ライセンス
このプロジェクトのうち、Dinglebear が独自に作成した部分は AGPL-3.0-only の下でライセンスされています。AGPL 以外の条件を必要とする組織向けに、別途商用ライセンスも用意されています。サードパーティの素材は、引き続き各素材の元のライセンスが適用されます。詳しくは LICENSING.md をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。