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 服务

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_appliances列出 MSP Console 下的设备
unitrends_get_appliance获取单个设备的详细信息(在 MCP Apps 宿主中以交互式卡片形式呈现)
unitrends_list_assets列出受保护的资产(需要 applianceId — 缺少时会提示填写)
unitrends_get_asset获取单个资产的详细信息
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>(即标头中出现的相同前缀)计算的 HMAC-SHA256,密钥为 CONDUIT_S2S_SECRET。时间戳与服务器时钟的偏差不得超过 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

如果未设置 CONDUIT_S2S_SECRET 或其值为空,Compose 将拒绝启动;同时会设置 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。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。