{
  "ok": true,
  "resource": {
    "id": "RES_BE279566E8CC",
    "resource_type": "mcp_server",
    "canonical_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.borealhost%2Fmcp/versions/0.4.1",
    "name": "BorealHost",
    "summary_en": "Agent-native web hosting — deploy sites, manage DNS, register domains, scale infrastructure",
    "summary_zh": "Agent 原生网页托管——部署网站、管理 DNS、注册域名、扩展基础设施",
    "description_en": "BorealHost is an agent-native web hosting platform. The MCP server exposes tools for account registration and API key management, plan discovery, checkout and payment for hosting plans, site provisioning and management, DNS record management, and app installation on VPS/Cloud plans. Authentication is via API key (BOREALHOST_API_KEY) or runtime registration. Pricing is per plan, with monthly and annual billing in CAD. The server was verified healthy with 152 tools discovered via MCP protocol.",
    "description_zh": "BorealHost 是一个面向 Agent 的网页托管平台。其 MCP 服务器提供账户注册与 API 密钥管理、套餐查询、托管套餐的结账与支付、站点开通与管理、DNS 记录管理，以及在 VPS/Cloud 套餐上安装应用等工具。认证方式为 API 密钥（BOREALHOST_API_KEY）或运行时注册。定价按套餐计费，支持加元和月付/年付。服务器经健康检查，通过 MCP 协议发现 152 个工具。",
    "provider_name": "ai.borealhost",
    "homepage_url": "https://borealhost.ai/",
    "endpoint_url": "https://borealhost.ai/mcp/",
    "source_url": "https://github.com/alainsvrd/borealhost-mcp",
    "icon_url": null,
    "cover_image_url": null,
    "capabilities": [
      "account.register",
      "account.authenticate",
      "account.manage",
      "hosting.plan-discovery",
      "hosting.purchase",
      "hosting.site-provision",
      "hosting.site-management",
      "dns.manage",
      "hosting.app-install"
    ],
    "categories": [
      "infrastructure"
    ],
    "industries": [
      "software"
    ],
    "protocols": [
      "mcp"
    ],
    "auth": {
      "type": "unknown"
    },
    "pricing": {
      "model": "unknown"
    },
    "input_schema": {},
    "output_schema": {},
    "metadata": {
      "content_language": "en",
      "translation_status": "original-only",
      "official_registry": {
        "version": "0.4.1",
        "packages": [],
        "remotes": []
      },
      "review_gate": {
        "passed": true,
        "reasons": [],
        "policy_version": "review-gate-v1",
        "evaluated_at": "2026-09-03T06:31:29.324Z"
      }
    },
    "latest_version": "0.4.1",
    "status": "listed",
    "health_status": "healthy",
    "source_kind": "imported",
    "source_agent": "registry.modelcontextprotocol.io",
    "trust": {
      "signal": "none",
      "reason": "No suspicious or malicious evidence found.",
      "signals": {
        "yellow": 0,
        "red": 0
      }
    },
    "review_summary": {
      "method_version": "capability-evidence-v2",
      "capability_definition": "strong",
      "contract_completeness": "strong",
      "access_friction": "medium",
      "operational_transparency": "partial",
      "evidence_strength": "protocol_inspected",
      "use_readiness": "guided_use",
      "reviewed_at": "2026-09-03T06:33:16.669Z"
    },
    "experience_count": 0,
    "verified_experience_count": 0,
    "usage_count": 0,
    "success_rate": null,
    "first_seen_at": "2026-09-03T02:49:59.365Z",
    "last_seen_at": "2026-09-03T06:33:15.822Z",
    "published_at": "2026-09-03T06:31:29.605Z",
    "created_at": "2026-09-03T02:49:59.365Z",
    "updated_at": "2026-09-03T06:33:16.669Z",
    "api_url": "https://aiworkshub.io/api/v1/resources/RES_BE279566E8CC",
    "reviews_url": "https://aiworkshub.io/api/v1/resources/RES_BE279566E8CC/reviews",
    "public_url": "https://aiworkshub.io/resources/RES_BE279566E8CC",
    "distribution": {
      "canonical_identity": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.borealhost%2Fmcp/versions/0.4.1",
      "syndicatable": true,
      "origins": [
        {
          "registry_url": "https://registry.modelcontextprotocol.io/",
          "upstream_resource_id": "ai.borealhost/mcp@0.4.1",
          "upstream_record_url": "https://registry.modelcontextprotocol.io/v0.1/servers/ai.borealhost%2Fmcp/versions/0.4.1",
          "relation": "syndicated",
          "metadata": {
            "source": "official-mcp-registry"
          },
          "first_seen_at": "2026-09-03T02:49:59.365Z",
          "last_seen_at": "2026-09-03T06:33:15.822Z"
        }
      ]
    },
    "tools": [
      {
        "name": "add_site",
        "title_en": "Add Site",
        "title_zh": "添加站点",
        "description_en": "Provision a site into a slot a plan you ALREADY PAY FOR includes. Two different things can be meant by 'create a site'. Buying one is the checkout flow (create_checkout → update → complete). This is the other: most plans include several sites, and this uses one of them at no extra cost. site_starter includes 5, site_plus 8, site_pro 12, and the agency plans more. whoami and list_sites show what the account already holds. Prefer this over buying a second subscription when a slot is free.",
        "description_zh": "将站点开通到您已付费套餐包含的槽位中。“创建站点”可能指两件不同的事。购买一个站点是结账流程（create_checkout → update → complete）。这是另一种：大多数套餐包含多个站点，此工具使用其中一个，无需额外费用。site_starter 包含 5 个，site_plus 8 个，site_pro 12 个，代理套餐更多。whoami 和 list_sites 显示账户已拥有的内容。当有空闲槽位时，优先使用此工具而不是购买第二个订阅。",
        "input_schema": {
          "properties": {
            "slug": {
              "title": "Slug",
              "type": "string"
            },
            "subscription_id": {
              "title": "Subscription Id",
              "type": "string"
            },
            "client_name": {
              "default": "",
              "title": "Client Name",
              "type": "string"
            },
            "domain": {
              "default": "",
              "title": "Domain",
              "type": "string"
            },
            "site_type": {
              "default": "",
              "title": "Site Type",
              "type": "string"
            }
          },
          "required": [
            "slug",
            "subscription_id"
          ],
          "title": "add_siteArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "unknown",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "cancel_checkout",
        "title_en": "Cancel Checkout",
        "title_zh": "取消结账",
        "description_en": "Abandon an unpaid checkout and expire its Stripe payment link. Use this to clean up abandoned attempts rather than leaving them to sit. A completed checkout is never cancelled here — that would be a refund, and it is refused.",
        "description_zh": "放弃未付款的结账并使其 Stripe 支付链接过期。使用此工具清理已放弃的尝试，而不是让它们闲置。已完成的结账绝不会在此取消——那将是退款，会被拒绝。",
        "input_schema": {
          "properties": {
            "checkout_id": {
              "title": "Checkout Id",
              "type": "string"
            }
          },
          "required": [
            "checkout_id"
          ],
          "title": "cancel_checkoutArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "write",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "claim_api_key",
        "title_en": "Claim API Key",
        "title_zh": "声明 API 密钥",
        "description_en": "Claim an API key using a claim token from the container. After calling request_api_key(), read the claim token from the path that call returned in claim_path, on that site's container, and pass it here. The token is single-use — once claimed, it cannot be used again. The API key is automatically activated for this MCP session.",
        "description_zh": "使用容器中的声明令牌来声明 API 密钥。在调用 request_api_key() 后，从该站点容器中该调用返回的 claim_path 路径读取声明令牌，并在此处传递。令牌是一次性的——一旦声明，便无法再次使用。API 密钥会自动激活用于此 MCP 会话。",
        "input_schema": {
          "properties": {
            "claim_token": {
              "title": "Claim Token",
              "type": "string"
            }
          },
          "required": [
            "claim_token"
          ],
          "title": "claim_api_keyArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "account_creation",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "complete_checkout",
        "title_en": "Complete Checkout",
        "title_zh": "完成结账",
        "description_en": "Complete checkout with payment and start site provisioning. The checkout must be in 'ready' status. Two payment methods: 'stripe_checkout' (default) returns a short, chat-safe payment URL. Present payment_url to the human — NOT stripe_checkout_url. After paying, poll get_checkout_status() until status becomes 'completed'. 'stripe_payment_method' charges a Stripe PaymentMethod directly. Requires payment_method_id. On success, returns the API key immediately.",
        "description_zh": "完成结账并付款，开始站点开通。结账必须处于“ready”状态。两种付款方式：“stripe_checkout”（默认）返回一个简短的、聊天安全的支付 URL。请向人类展示 payment_url——而不是 stripe_checkout_url。付款后，轮询 get_checkout_status() 直到状态变为“completed”。“stripe_payment_method”直接对 Stripe PaymentMethod 收费，需要 payment_method_id。成功后立即返回 API 密钥。",
        "input_schema": {
          "properties": {
            "checkout_id": {
              "title": "Checkout Id",
              "type": "string"
            },
            "payment_method": {
              "default": "stripe_checkout",
              "title": "Payment Method",
              "type": "string"
            },
            "payment_method_id": {
              "default": "",
              "title": "Payment Method Id",
              "type": "string"
            }
          },
          "required": [
            "checkout_id"
          ],
          "title": "complete_checkoutArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "unknown",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "create_checkout",
        "title_en": "Create Checkout",
        "title_zh": "创建结账",
        "description_en": "Start a new checkout session to purchase a hosting plan. No authentication needed. After creating, call update_checkout to set buyer info, then complete_checkout to pay. The response carries a checkout_secret, returned ONCE, that every later step of this checkout requires. It is held in memory for this MCP session and sent automatically — but it is gone if the server restarts. If a session key is set, the checkout is owned by that account and the API key authorizes the later steps on its own, which is the durable path.",
        "description_zh": "开始新的结账会话以购买托管套餐。无需认证。创建后，调用 update_checkout 设置买家信息，然后调用 complete_checkout 付款。响应包含一次性的 checkout_secret，后续每一步都需要。它保存在此 MCP 会话的内存中并自动发送——但如果服务器重启则会丢失。如果设置了会话密钥，则结账归该账户所有，API 密钥自行授权后续步骤，这是持久化的路径。",
        "input_schema": {
          "properties": {
            "sku": {
              "title": "Sku",
              "type": "string"
            }
          },
          "required": [
            "sku"
          ],
          "title": "create_checkoutArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "financial_commitment",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "get_app_status",
        "title_en": "Get App Status",
        "title_zh": "获取应用状态",
        "description_en": "Get app installation status and log. Poll this after install_app() to track progress. Requires: API key with read scope. Statuses: installing, running, stopped, failed, uninstalled.",
        "description_zh": "获取应用安装状态和日志。在 install_app() 后轮询此工具以跟踪进度。需要：具有读取权限的 API 密钥。状态：installing、running、stopped、failed、uninstalled。",
        "input_schema": {
          "properties": {
            "slug": {
              "title": "Slug",
              "type": "string"
            },
            "app_id": {
              "title": "App Id",
              "type": "string"
            }
          },
          "required": [
            "slug",
            "app_id"
          ],
          "title": "get_app_statusArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "get_checkout_status",
        "title_en": "Get Checkout Status",
        "title_zh": "获取结账状态",
        "description_en": "Poll a checkout session for status updates. Call this after complete_checkout to track payment and provisioning. Polling strategy: First 60 seconds: every 5 seconds; After 60 seconds: every 15 seconds; Stop after 10 minutes if not completed. Checkout statuses: not_ready, ready, awaiting_payment, in_progress, completed, canceled, failed. Terminal statuses: completed, canceled, failed.",
        "description_zh": "轮询结账会话以获取状态更新。在 complete_checkout 后调用以跟踪付款和开通。轮询策略：前 60 秒每 5 秒一次；60 秒后每 15 秒一次；10 分钟后未完成则停止。结账状态：not_ready、ready、awaiting_payment、in_progress、completed、canceled、failed。终态：completed、canceled、failed。",
        "input_schema": {
          "properties": {
            "checkout_id": {
              "title": "Checkout Id",
              "type": "string"
            }
          },
          "required": [
            "checkout_id"
          ],
          "title": "get_checkout_statusArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "get_site_status",
        "title_en": "Get Site Status",
        "title_zh": "获取站点状态",
        "description_en": "Get detailed status of a hosted site including resources, domains, and modules. Requires: API key with read scope.",
        "description_zh": "获取托管站点的详细状态，包括资源、域名和模块。需要：具有读取权限的 API 密钥。",
        "input_schema": {
          "properties": {
            "slug": {
              "title": "Slug",
              "type": "string"
            }
          },
          "required": [
            "slug"
          ],
          "title": "get_site_statusArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "get_wallet",
        "title_en": "Get Wallet",
        "title_zh": "获取钱包",
        "description_en": "The account's prepaid balance, and what THIS key may spend from it. Two ceilings, and both apply: the balance bounds the ACCOUNT, the allowance bounds this KEY within it. Plan against spendable_cents, which is the lower of the two. can_spend: false with a non-zero balance is normal and means this key has no budget allocated. Read-only. Money goes in through a human — an agent able to top up its own budget does not have one.",
        "description_zh": "账户的预付费余额，以及此密钥可从中支出的金额。有两个上限，且都适用：余额限制账户，额度限制此密钥在账户内的支出。请根据 spendable_cents（两者中较低者）进行规划。can_spend: false 且余额非零是正常的，表示此密钥没有分配预算。只读。资金通过人类进入——能够自行充值预算的 Agent 没有预算。",
        "input_schema": {
          "properties": {},
          "title": "get_walletArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "install_app",
        "title_en": "Install App",
        "title_zh": "安装应用",
        "description_en": "Install an app template on a VPS/Cloud site. Starts a background installation. Poll get_app_status() for progress. Requires: API key with write scope. VPS or Cloud plan only. Templates: django, laravel, nextjs, nodejs, nuxtjs, rails, static.",
        "description_zh": "在 VPS/Cloud 站点上安装应用模板。启动后台安装。轮询 get_app_status() 以获取进度。需要：具有写入权限的 API 密钥。仅限 VPS 或 Cloud 套餐。模板：django、laravel、nextjs、nodejs、nuxtjs、rails、static。",
        "input_schema": {
          "properties": {
            "slug": {
              "title": "Slug",
              "type": "string"
            },
            "template": {
              "title": "Template",
              "type": "string"
            },
            "app_name": {
              "title": "App Name",
              "type": "string"
            },
            "db_type": {
              "default": "none",
              "title": "Db Type",
              "type": "string"
            },
            "domain": {
              "default": "",
              "title": "Domain",
              "type": "string"
            },
            "display_name": {
              "default": "",
              "title": "Display Name",
              "type": "string"
            }
          },
          "required": [
            "slug",
            "template",
            "app_name"
          ],
          "title": "install_appArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "unknown",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "list_apps",
        "title_en": "List Apps",
        "title_zh": "列出应用",
        "description_en": "List installed apps on a site. Requires: API key with read scope.",
        "description_zh": "列出站点上已安装的应用。需要：具有读取权限的 API 密钥。",
        "input_schema": {
          "properties": {
            "slug": {
              "title": "Slug",
              "type": "string"
            }
          },
          "required": [
            "slug"
          ],
          "title": "list_appsArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "list_checkouts",
        "title_en": "List Checkouts",
        "title_zh": "列出结账",
        "description_en": "List checkouts belonging to the authenticated account. Requires: API key. Only checkouts with a recorded owner appear — every checkout created while authenticated, plus every checkout that reached payment. An anonymous checkout whose one-shot secret was lost cannot be listed; create checkouts authenticated to keep them addressable.",
        "description_zh": "列出属于已认证账户的结账。需要：API 密钥。仅显示有记录所有者的结账——即认证期间创建的每个结账，以及每个已付款的结账。丢失一次性密钥的匿名结账无法列出；请以认证方式创建结账以使其可寻址。",
        "input_schema": {
          "properties": {
            "status": {
              "default": "",
              "title": "Status",
              "type": "string"
            }
          },
          "title": "list_checkoutsArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "list_plans",
        "title_en": "List Plans",
        "title_zh": "列出套餐",
        "description_en": "List available hosting plans with pricing and resources. No authentication needed. Optionally filter by track (single_site or agency) and include deprecated plans.",
        "description_zh": "列出可用的托管套餐及其定价和资源。无需认证。可选按轨道（single_site 或 agency）过滤，并可包含已弃用的套餐。",
        "input_schema": {
          "properties": {
            "track": {
              "default": "",
              "title": "Track",
              "type": "string"
            },
            "include_deprecated": {
              "default": false,
              "title": "Include Deprecated",
              "type": "boolean"
            }
          },
          "title": "list_plansArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "manage_dns",
        "title_en": "Manage DNS",
        "title_zh": "管理 DNS",
        "description_en": "Create or delete DNS records for a site. Requires: API key with write scope. Actions: create or delete. Record types: A, AAAA, CNAME, MX, TXT, SRV.",
        "description_zh": "为站点创建或删除 DNS 记录。需要：具有写入权限的 API 密钥。操作：create 或 delete。记录类型：A、AAAA、CNAME、MX、TXT、SRV。",
        "input_schema": {
          "properties": {
            "slug": {
              "title": "Slug",
              "type": "string"
            },
            "action": {
              "title": "Action",
              "type": "string"
            },
            "record_type": {
              "title": "Record Type",
              "type": "string"
            },
            "subdomain": {
              "default": "",
              "title": "Subdomain",
              "type": "string"
            },
            "value": {
              "default": "",
              "title": "Value",
              "type": "string"
            },
            "ttl": {
              "default": 3600,
              "title": "Ttl",
              "type": "integer"
            }
          },
          "required": [
            "slug",
            "action",
            "record_type"
          ],
          "title": "manage_dnsArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "unknown",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "register",
        "title_en": "Register",
        "title_zh": "注册",
        "description_en": "Register a new agent account and get an API key. No authentication needed. The returned API key grants read+write access to all BorealHost API endpoints. Store it securely — it cannot be retrieved again. The key is automatically activated for this session. If no email is provided, a synthetic agent identity is created. If an email is provided, it links to an existing or new human account.",
        "description_zh": "注册一个新的 Agent 账户并获取 API 密钥。无需认证。返回的 API 密钥授予对 BorealHost 所有 API 端点的读写权限。请安全存储——无法再次检索。该密钥会自动激活用于当前会话。如果未提供邮箱，将创建合成 Agent 身份；如果提供邮箱，则关联到现有或新的人类账户。",
        "input_schema": {
          "properties": {
            "name": {
              "default": "Agent Key",
              "title": "Name",
              "type": "string"
            },
            "email": {
              "default": "",
              "title": "Email",
              "type": "string"
            }
          },
          "title": "registerArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "account_creation",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "request_api_key",
        "title_en": "Request API Key",
        "title_zh": "请求 API 密钥",
        "description_en": "Request an API key for a site YOU ARE RUNNING ON (challenge-response). ONLY USE THIS IF YOU ARE EXECUTING INSIDE THAT SITE'S OWN CONTAINER. If you bought or ordered the site from somewhere else, this is the wrong tool. Use get_checkout_status(checkout_id) on the checkout that paid for the site. Two-step verification flow: 1. A claim token is written into that site's container, at the per-site path the response gives you in claim_path. 2. Read that file and call claim_api_key(token) within 1 hour. Refused for sites on SHARED containers.",
        "description_zh": "为当前运行的站点请求 API 密钥（挑战-响应）。仅当您在该站点自己的容器内执行时才使用此工具。如果您从其他地方购买或订购了该站点，则不应使用此工具。请对支付该站点的结账调用 get_checkout_status(checkout_id)。两步验证流程：1. 将声明令牌写入该站点的容器中，路径由响应中的 claim_path 提供。2. 读取该文件并在 1 小时内调用 claim_api_key(token)。共享容器上的站点会被拒绝。",
        "input_schema": {
          "properties": {
            "site_slug": {
              "title": "Site Slug",
              "type": "string"
            }
          },
          "required": [
            "site_slug"
          ],
          "title": "request_api_keyArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "account_creation",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "set_api_key",
        "title_en": "Set API Key",
        "title_zh": "设置 API 密钥",
        "description_en": "Set your BorealHost API key for this session. Call this if you already have an API key (from a previous registration, checkout completion, or the BorealHost panel). All subsequent tool calls will use this key for authentication. No need to call this after register() — the key is set automatically.",
        "description_zh": "为当前会话设置 BorealHost API 密钥。如果您已有 API 密钥（来自之前的注册、结账完成或 BorealHost 面板），请调用此工具。后续所有工具调用将使用此密钥进行认证。在 register() 之后无需调用——密钥会自动设置。",
        "input_schema": {
          "properties": {
            "api_key": {
              "title": "Api Key",
              "type": "string"
            }
          },
          "required": [
            "api_key"
          ],
          "title": "set_api_keyArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "write",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "set_site_type",
        "title_en": "Set Site Type",
        "title_zh": "设置站点类型",
        "description_en": "Change what a site's docroot IS, without deleting anything. Types: wordpress, php, php-nodb, static-site. NON-DESTRUCTIVE. Existing files stay on disk and existing databases are not dropped. They remain the customer's data and keep counting against their plan's quota — this changes how the site is SERVED, not what it holds. Moving to a type without PHP does not merely stop executing .php — it stops serving them. Shared hosting only.",
        "description_zh": "更改站点文档根目录的类型，而不删除任何内容。类型：wordpress、php、php-nodb、static-site。非破坏性。现有文件保留在磁盘上，现有数据库不会被删除。它们仍然是客户的数据，并继续计入其套餐配额——这改变了站点的服务方式，而不是其内容。移动到没有 PHP 的类型不仅停止执行 .php——还停止提供它们。仅限共享托管。",
        "input_schema": {
          "properties": {
            "slug": {
              "title": "Slug",
              "type": "string"
            },
            "site_type": {
              "title": "Site Type",
              "type": "string"
            }
          },
          "required": [
            "slug",
            "site_type"
          ],
          "title": "set_site_typeArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "write",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "update_checkout",
        "title_en": "Update Checkout",
        "title_zh": "更新结账",
        "description_en": "Set buyer email and desired site slug on a checkout session. The checkout must be in 'not_ready' status. Setting requested_slug transitions status to 'ready' (required before completing).",
        "description_zh": "在结账会话上设置买家邮箱和所需的站点 slug。结账必须处于“not_ready”状态。设置 requested_slug 会将状态转换为“ready”（完成前必需）。",
        "input_schema": {
          "properties": {
            "checkout_id": {
              "title": "Checkout Id",
              "type": "string"
            },
            "buyer_email": {
              "default": "",
              "title": "Buyer Email",
              "type": "string"
            },
            "requested_slug": {
              "default": "",
              "title": "Requested Slug",
              "type": "string"
            },
            "site_type": {
              "default": "",
              "title": "Site Type",
              "type": "string"
            }
          },
          "required": [
            "checkout_id"
          ],
          "title": "update_checkoutArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "write",
        "open_world": false,
        "idempotency": "not_idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      },
      {
        "name": "whoami",
        "title_en": "Who Am I",
        "title_zh": "我是谁",
        "description_en": "Check the current API key's account info, scopes, and site count. Requires: BOREALHOST_API_KEY env var (read scope).",
        "description_zh": "检查当前 API 密钥的账户信息、权限范围和站点数量。需要：BOREALHOST_API_KEY 环境变量（读取权限）。",
        "input_schema": {
          "properties": {},
          "title": "whoamiArguments",
          "type": "object"
        },
        "output_schema": {},
        "unit_kind": "mcp_tool",
        "effect": "read",
        "open_world": false,
        "idempotency": "idempotent",
        "confirmation": "explicit policy",
        "evidence_ids": [
          "protocol-tools"
        ],
        "runtime_auth": {},
        "pricing": {},
        "metadata": {}
      }
    ],
    "review_profile": {
      "schema_version": "aiworkshub.resource-review/0.2",
      "method_version": "capability-evidence-v2",
      "review_state": {
        "identity": "verified",
        "source": "verified",
        "connectivity": "verified",
        "contract": "strong",
        "safe_use": "untested",
        "real_use": "unobserved"
      },
      "assessment": {
        "capability_definition": "strong",
        "contract_completeness": "strong",
        "access_friction": "medium",
        "operational_transparency": "partial",
        "evidence_strength": "protocol_inspected",
        "use_readiness": "guided_use"
      },
      "profile": {
        "capabilities": [
          {
            "id": "account.register",
            "weight": 80,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "account.authenticate",
            "weight": 80,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "account.manage",
            "weight": 60,
            "confidence": 80,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "hosting.plan-discovery",
            "weight": 70,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "hosting.purchase",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "hosting.site-provision",
            "weight": 90,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "hosting.site-management",
            "weight": 80,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "dns.manage",
            "weight": 70,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          },
          {
            "id": "hosting.app-install",
            "weight": 70,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          }
        ],
        "domains": [
          {
            "id": "web-hosting",
            "weight": 100,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "devops",
            "weight": 80,
            "confidence": 90,
            "evidence_ids": [
              "source-record",
              "protocol-tools"
            ]
          },
          {
            "id": "dns-management",
            "weight": 60,
            "confidence": 90,
            "evidence_ids": [
              "protocol-tools"
            ]
          }
        ],
        "workflow_roles": [
          "execute",
          "transact",
          "monitor",
          "deliver"
        ]
      },
      "capability_units": [
        {
          "id": "tool:register",
          "kind": "mcp_tool",
          "capability_id": "account.register",
          "effect": "account_creation",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "api_key",
            "key_id",
            "prefix",
            "scopes",
            "account_id",
            "message"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:set_api_key",
          "kind": "mcp_tool",
          "capability_id": "account.authenticate",
          "effect": "write",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "success",
            "message",
            "key_prefix"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:whoami",
          "kind": "mcp_tool",
          "capability_id": "account.manage",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [],
          "produces": [
            "user",
            "api_key",
            "account"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:request_api_key",
          "kind": "mcp_tool",
          "capability_id": "account.authenticate",
          "effect": "account_creation",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "claim_token",
            "claim_path",
            "alternative"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:claim_api_key",
          "kind": "mcp_tool",
          "capability_id": "account.authenticate",
          "effect": "account_creation",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "api_key",
            "key_prefix",
            "site_slug",
            "scopes",
            "message"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:list_plans",
          "kind": "mcp_tool",
          "capability_id": "hosting.plan-discovery",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string",
            "boolean"
          ],
          "produces": [
            "plan_slug",
            "name",
            "track",
            "hosting_type",
            "price",
            "features"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:create_checkout",
          "kind": "mcp_tool",
          "capability_id": "hosting.purchase",
          "effect": "financial_commitment",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "id",
            "sku",
            "plan_slug",
            "billing_period",
            "status",
            "buyer_email",
            "requested_slug",
            "created_at",
            "checkout_secret"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:update_checkout",
          "kind": "mcp_tool",
          "capability_id": "hosting.purchase",
          "effect": "write",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "id",
            "sku",
            "plan_slug",
            "billing_period",
            "status",
            "buyer_email",
            "requested_slug",
            "created_at"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:complete_checkout",
          "kind": "mcp_tool",
          "capability_id": "hosting.purchase",
          "effect": "unknown",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "payment_url",
            "stripe_checkout_url",
            "confirmation_url",
            "api_key",
            "status"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:get_checkout_status",
          "kind": "mcp_tool",
          "capability_id": "hosting.purchase",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "id",
            "status",
            "api_key",
            "subscription_id",
            "site",
            "completed_at"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:list_checkouts",
          "kind": "mcp_tool",
          "capability_id": "hosting.purchase",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "checkouts"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:cancel_checkout",
          "kind": "mcp_tool",
          "capability_id": "hosting.purchase",
          "effect": "write",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "checkout"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:add_site",
          "kind": "mcp_tool",
          "capability_id": "hosting.site-provision",
          "effect": "unknown",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "site"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:set_site_type",
          "kind": "mcp_tool",
          "capability_id": "hosting.site-management",
          "effect": "write",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "from",
            "to",
            "database_created",
            "placeholder_seeded"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:get_wallet",
          "kind": "mcp_tool",
          "capability_id": "account.manage",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [],
          "produces": [
            "currency",
            "balance_cents",
            "spendable_cents",
            "can_spend",
            "key_allowance"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:get_site_status",
          "kind": "mcp_tool",
          "capability_id": "hosting.site-management",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "slug",
            "plan",
            "status",
            "domains",
            "modules",
            "resources",
            "created_at"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:manage_dns",
          "kind": "mcp_tool",
          "capability_id": "dns.manage",
          "effect": "unknown",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string",
            "integer"
          ],
          "produces": [
            "success",
            "record"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:install_app",
          "kind": "mcp_tool",
          "capability_id": "hosting.app-install",
          "effect": "unknown",
          "open_world": false,
          "idempotency": "not_idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "id",
            "app_name",
            "status",
            "message"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:get_app_status",
          "kind": "mcp_tool",
          "capability_id": "hosting.app-install",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "id",
            "app_name",
            "status",
            "install_log"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        },
        {
          "id": "tool:list_apps",
          "kind": "mcp_tool",
          "capability_id": "hosting.app-install",
          "effect": "read",
          "open_world": false,
          "idempotency": "idempotent",
          "confirmation": "explicit policy",
          "input_contract": "typed",
          "output_contract": "typed",
          "accepts": [
            "string"
          ],
          "produces": [
            "apps"
          ],
          "runtime_auth": {},
          "pricing": {},
          "evidence_ids": [
            "protocol-tools"
          ],
          "metadata": {}
        }
      ],
      "access": {},
      "operational_flags": [
        "requires_human_payment_for_checkout",
        "api_key_secret_management"
      ],
      "trust": {
        "signal": "none",
        "evidence_ids": [
          "source-record",
          "protocol-tools"
        ],
        "reason": "No suspicious or malicious evidence found."
      },
      "fit": {
        "good_for": [
          "Automated website deployment and management",
          "DNS management for hosted sites",
          "Purchasing hosting plans via agent-driven checkout",
          "Installing common web app templates on VPS/Cloud plans"
        ],
        "not_for": [
          "Shared container API key requests (request_api_key) — only works when running inside the site's own container",
          "Direct payment without human involvement (requires human for Stripe checkout)"
        ]
      },
      "evidence": [
        {
          "id": "source-record",
          "type": "registry_record",
          "source": "https://github.com/alainsvrd/borealhost-mcp",
          "observation": "MCP source record for BorealHost; version 0.4.1.",
          "observed_at": null,
          "payload": {}
        },
        {
          "id": "protocol-tools",
          "type": "protocol_observation",
          "source": "https://borealhost.ai/mcp/#tools/list",
          "observation": "152 tools were returned by MCP discovery; 20 were retained for review.",
          "observed_at": "2026-09-03T05:54:32.842Z",
          "payload": {}
        }
      ],
      "unknowns": [
        "Exact pricing details for all plans (only partial evidence from tool descriptions)",
        "Full list of 152 tools (only 20 retained for review)",
        "Domain registration capabilities (mentioned in summary but no specific tool observed)",
        "Scaling infrastructure capabilities (mentioned in summary but no specific tool observed)",
        "Exact authentication requirements for each tool (some tools may require API key, but not explicitly stated in all descriptions)"
      ],
      "id": "REV_5C7A6050AF61",
      "resource_id": "RES_BE279566E8CC",
      "evaluator_type": "platform_ai",
      "provider": "deepseek",
      "model": "deepseek-v4-flash",
      "review_scope": "protocol-inspected-mcp",
      "created_at": "2026-09-03T06:33:16.669Z"
    }
  }
}