mcpField
U
Unitrends Backup

Unitrends Backup

ローカル
github.comファイル・ストレージ02 週間前に更新

Unitrends Backup について

Unitrends Backup は、Unitrends アプライアンスまたは MSP Console を使うチーム向けの MCP サーバーです。バックアップ状況や復旧ポイントの確認、復元の開始、アラートと RPO 準拠状況の確認をツール経由で行えます。

主な機能

  1. 01アプライアンスと保護対象アセットの一覧
  2. 02実行中および過去のジョブの監視
  3. 03アセットの復旧ポイントの参照
  4. 04復元のキュー登録と進行状況の確認
  5. 05未解決アラートと RPO 準拠状況の確認
  6. 06インタラクティブカードでのアプライアンス詳細表示

活用シーン

  1. 01アプライアンス全体のバックアップ状況確認
  2. 02アセットの復旧ポイントの特定
  3. 03復元を登録して状況を追跡
  4. 04アラートと RPO 準拠状況の確認

MCP 対応

Unitrends Backup API の操作を MCP クライアント向けのツールとして公開します。アプライアンス、アセット、ジョブ、復旧ポイント、復元、アラート、準拠状況を照会できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"wyre-technology-unitrends": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"UNITRENDS_BASE_URL",
"-e",
"UNITRENDS_USERNAME",
"-e",
"UNITRENDS_PASSWORD",
"-e",
"UNITRENDS_VERIFY_TLS",
"-e",
"MCP_TRANSPORT",
"-e",
"AUTH_MODE",
"-e",
"LOG_LEVEL",
"ghcr.io/wyre-technology/unitrends-mcp:v1.1.3"
],
"env": {
"UNITRENDS_BASE_URL": "<UNITRENDS_BASE_URL>",
"UNITRENDS_USERNAME": "<UNITRENDS_USERNAME>",
"UNITRENDS_PASSWORD": "<UNITRENDS_PASSWORD>",
"UNITRENDS_VERIFY_TLS": "<UNITRENDS_VERIFY_TLS>",
"MCP_TRANSPORT": "<MCP_TRANSPORT>",
"AUTH_MODE": "<AUTH_MODE>",
"LOG_LEVEL": "<LOG_LEVEL>"
}
}
}
}
起動コマンドdocker run -i --rm -e UNITRENDS_BASE_URL -e UNITRENDS_USERNAME -e UNITRENDS_PASSWORD -e UNITRENDS_VERIFY_TLS -e MCP_TRANSPORT -e AUTH_MODE -e LOG_LEVEL ghcr.io/wyre-technology/unitrends-mcp:v1.1.3
設定が必要な環境変数
UNITRENDS_BASE_URLBase URL of the Unitrends appliance or MSP Console (e.g. https://unitrends.example.com)
UNITRENDS_USERNAMEUnitrends API username
UNITRENDS_PASSWORDシークレットUnitrends API password
UNITRENDS_VERIFY_TLSVerify TLS certificates. Set 'false' for self-signed appliances.
MCP_TRANSPORTTransport mode for the server. Set to 'stdio' for local CLI use; the image defaults to 'http' for gateway hosting.
AUTH_MODEシークレットCredential source: 'env' reads vars locally, 'gateway' expects header injection from the WYRE MCP Gateway.
LOG_LEVELLog verbosity: debug, info, warn, error

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

パッケージ
ocighcr.io/wyre-technology/unitrends-mcp:v1.1.3

ツール

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

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

詳細

Unitrends Backup MCP Server

CI License: Apache 2.0

Model Context Protocol サーバーです。Unitrends Backup API を Claude やその他の MCP クライアントに公開します。

できること

Unitrends アプライアンス(または MSP Console)のバックアップ状況を、AI アシスタントで直接確認できます。アプライアンスや保護対象のアセットの一覧表示、実行中および過去のバックアップジョブの監視、リカバリポイントの参照、リストアやレプリケーションのキュー登録、未解決のアラームや RPO コンプライアンスの確認が可能です。

  • インタラクティブなアプライアンスカード(MCP Apps):unitrends_get_appliance は MCP Apps ホスト(Claude Desktop/web)でインタラクティブなカードとして表示されます。デフォルトではニュートラルなデザインで、window.__BRAND__ の挿入または MCP_BRAND_* 環境変数でブランド設定ができます。他のホストでは従来どおり JSON が返されます。

ツール

ツール目的
unitrends_list_appliancesMSP Console 配下のアプライアンスを一覧表示します
unitrends_get_appliance1 台のアプライアンスの詳細を取得します(MCP Apps ホストではインタラクティブなカードとして表示されます)
unitrends_list_assets保護対象のアセットを一覧表示します(applianceId が必須です。未指定の場合は入力を求めます)
unitrends_get_asset1 件のアセットの詳細を取得します
unitrends_list_running_jobs現在実行中およびキューに登録されたバックアップジョブを取得します
unitrends_list_job_history過去のジョブを取得します(日付範囲の入力を求めます)
unitrends_list_recovery_pointsアセットのリカバリポイントを取得します
unitrends_queue_restoreリストアをキューに登録します(破壊的操作 — 確認が必要です)
unitrends_get_restore_statusリストアの進捗を確認します
unitrends_list_alerts未解決のアラームを取得します
unitrends_get_success_rateRPO コンプライアンスレポートを取得します(日付範囲の入力を求めます)

認証情報

.env.example をコピーします。このファイルの CONDUIT_S2S_SECRET は空のままにしてください。

ローカル(env モードおよび stdio)

stdio トランスポートは以下の変数を読み込みます。CONDUIT_S2S_SECRET は使用しません。

export UNITRENDS_BASE_URL="https://unitrends.example.com"
export UNITRENDS_USERNAME="..."
export UNITRENDS_PASSWORD="..."
export UNITRENDS_VERIFY_TLS="true"   # 'false' for self-signed appliances
HTTP サービス間認証

MCP_TRANSPORT=http の場合、CONDUIT_S2S_SECRET が必要です。値が空、または既知のプレースホルダー(changeme、change-me、placeholder、secret、example、your-s2s-secret、your-secret、replace-me、replace-with-a-real-secret、s2s-secret)の場合、プロセスはエラーを記録してゼロ以外の終了コードで終了します。シークレットが出力されることはありません。openssl rand -hex 32 で生成してください。

MCP_ALLOW_INSECURE_DEV=1 を設定した場合に限り、シークレットなしで HTTP を起動できます。このフラグは正確に 1 でなければなりません。プロセスは警告を記録し、X-Gateway-S2S を検証せず、127.0.0.1 のみでリッスンします。このモードでは、ループバック以外の MCP_HTTP_HOST(0.0.0.0 を含む)は無視され、上書きがログに記録されます。既知のプレースホルダーが設定されている場合は、引き続き起動が拒否されます。この迂回手段を使うには、シークレットの設定を解除してください。

実際のシークレットが設定されている場合、MCP_HTTP_HOST が反映されます(0.0.0.0 も指定できます)。MCP_HTTP_HOST が未設定でシークレットが設定されている場合、サーバーは 0.0.0.0 にバインドします。シークレットがない場合、バインドアドレスは 127.0.0.1 です。コンテナーイメージでは MCP_HTTP_HOST=0.0.0.0 が設定されています。

実際のシークレットが設定されている場合、すべての /mcp リクエストに X-Gateway-S2S を含める必要があります。値は t=<unix seconds>,v1=<hex hmac-sha256> です。MAC は、ヘッダーにも含まれる同じプレフィックスの ASCII 文字列 t=<unix seconds> に対し、CONDUIT_S2S_SECRET をキーとして HMAC-SHA256 で計算します。タイムスタンプはサーバーの時刻から 300 秒以内でなければなりません。ヘッダーがないか無効な場合は 401 が返され、ベンダーの認証情報が読み取られる前にリクエストが拒否されます。

/health は認証なしで利用でき、認証情報を読み取りません。コンテナーのヘルスチェックに使用されます。

ホスト型(ゲートウェイモード)

AUTH_MODE=gateway(Compose のデフォルト)では、すべての /mcp リクエストに以下のヘッダーが必要です。必須ヘッダーが欠けているリクエストは 401 となり、プロセス環境の UNITRENDS_* にはフォールバックしません。

  • X-Unitrends-Base-URL(必須)
  • X-Unitrends-Username(必須)
  • X-Unitrends-Password(必須、シークレット)
  • X-Unitrends-Verify-TLS(任意、デフォルトは true)
  • X-Gateway-S2S(CONDUIT_S2S_SECRET が設定されている場合は必須)
// Gateway injects vendor credentials and the X-Gateway-S2S proof
const response = await fetch("http://gateway:8080/mcp", {
  method: "POST",
  headers: {
    "content-type": "application/json",
    accept: "application/json, text/event-stream",
    "x-gateway-s2s": "<t=unix,v1=hmac-sha256 of t=unix, keyed with CONDUIT_S2S_SECRET>",
    "x-unitrends-base-url": "https://unitrends.example.com",
    "x-unitrends-username": "your_username",
    "x-unitrends-password": "your_password",
  },
  body: JSON.stringify({ jsonrpc: "2.0", id: 1, method: "tools/list" }),
});

シングルテナント HTTP(イメージのデフォルトである AUTH_MODE=env)では、引き続き有効な X-Gateway-S2S ヘッダーが必要です。そのうえで、リクエストに認証情報ヘッダーが含まれていない場合は、環境から UNITRENDS_* を読み取ります。

実行

npm install
npm run build
npm start                       # stdio

# HTTP refuses to start until CONDUIT_S2S_SECRET is a real secret
CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" MCP_TRANSPORT=http npm start

# Local HTTP only, without a service-to-service secret (always binds 127.0.0.1)
MCP_TRANSPORT=http MCP_ALLOW_INSECURE_DEV=1 npm start
Docker

イメージはコンテナー内の 0.0.0.0 でリッスンし、デフォルトで AUTH_MODE=env を使用します。ポートをループバックに公開し、S2S シークレットを渡してください。CONDUIT_S2S_SECRET が空、または既知のプレースホルダーの場合、HTTP は起動しません。

docker build -t unitrends-mcp .
docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -e UNITRENDS_BASE_URL="https://unitrends.example.com" \
  -e UNITRENDS_USERNAME="..." \
  -e UNITRENDS_PASSWORD="..." \
  -p 127.0.0.1:8080:8080 \
  unitrends-mcp

ゲートウェイモードでは、これらのベンダー変数を読み取りません。認証情報は各リクエストで渡し、リクエストには CONDUIT_S2S_SECRET で署名された X-Gateway-S2S も含める必要があります。

docker run \
  -e CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" \
  -e AUTH_MODE=gateway \
  -p 127.0.0.1:8080:8080 \
  unitrends-mcp

Compose は、CONDUIT_S2S_SECRET が未設定または空の場合は起動を拒否し、AUTH_MODE=gateway を設定します。また、UNITRENDS_BASE_URL、UNITRENDS_USERNAME、UNITRENDS_PASSWORD は注入せず、127.0.0.1:8080:8080 を公開します。

CONDUIT_S2S_SECRET="$CONDUIT_S2S_SECRET" docker compose up

ライセンス

Apache 2.0 — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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