BorealHost
REMOTE · BOREALHOST.AI · 2 COMPONENTS · SCANNED AUG 3
Agent-native web hosting — deploy sites, manage DNS, register domains, scale infrastructure
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security57
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation not fully verified: no authorisation is required to call this server, and 113 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability82
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 18211 tokens (~154/item across 118 items; 113 tools + 5 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage67
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 0% of tool parameters carry a description.Fail
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · borealhost.ai
claude mcp add --transport http ai-borealhost-mcp https://borealhost.ai/mcp/
[mcp_servers.ai-borealhost-mcp] url = "https://borealhost.ai/mcp/"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ai-borealhost-mcp": {
"type": "remote",
"url": "https://borealhost.ai/mcp/",
"enabled": true
}
}
} openclaw mcp add ai-borealhost-mcp --url https://borealhost.ai/mcp/ --transport streamable-http
mcp_servers:
ai-borealhost-mcp:
url: "https://borealhost.ai/mcp/" {
"mcpServers": {
"ai-borealhost-mcp": {
"type": "http",
"url": "https://borealhost.ai/mcp/"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 31 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 29 Jul 26 0
- Tool “register_domain” rewrote its description, which is the text the model reads security
- Tool “list_ftp_accounts” rewrote its description, which is the text the model reads security
- Tool “remove_ftp_account” rewrote its description, which is the text the model reads security
- Tool “create_ftp_account” rewrote its description, which is the text the model reads security
- New tool “set_domain_usage” functional
- “register_domain” added an optional parameter “forward_include_path” cosmetic
- “register_domain” added an optional parameter “forward_type” cosmetic
- “register_domain” added an optional parameter “forward_url” cosmetic
- “register_domain” added an optional parameter “nameservers” cosmetic
- “register_domain” added an optional parameter “usage_mode” cosmetic
- 28 Jul 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 27 Jul 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 26 Jul 26 60
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Probed https://borealhost.ai/mcp/
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=borealhost.ai | CN=YE1,O=Let's Encrypt,C=US | 6 Jul 2026 | 4 Oct 2026 | ECDSA 256 | ECDSA-SHA384 | 5b5aa76a3e55bfd0307ed30c6fca4f8c909 |
| SANs: *.borealhost.ai, borealhost.ai | ||||||
| CN=YE1,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 5ddd70dd31f801c85c186a7a04b80afe |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
DNSSEC insecure
Validation of borealhost.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 3799 | 8 | Verified |
| borealhost.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| content-security-policy | default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://esm.sh https://js.stripe.com https://unpkg.com https://cdn.jsdelivr.net https://cdnjs.cloudflare.com https://www.googletagmanager.com https://connect.facebook.net https://static.cloudflareinsights.com https://www.googleadservices.com https://www.google.com https://googleads.g.doubleclick.net; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com https://cdn.jsdelivr.net https://cdnjs.cloudflare.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https://www.facebook.com https://www.googletagmanager.com https://pagead2.googlesyndication.com https://www.google.com https://googleads.g.doubleclick.net https://www.google.ca https://www.google-analytics.com; connect-src 'self' https://esm.sh https://www.google-analytics.com https://analytics.google.com https://www.googletagmanager.com https://googleads.g.doubleclick.net https://td.doubleclick.net https://www.facebook.com https://connect.facebook.net https://pagead2. |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://borealhost.ai/mcp/ | Verified | 200 | |
| http (plaintext) | http://borealhost.ai/mcp/ | HTTPS enforced | 301 | https://borealhost.ai/mcp/ |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
ssl_renew ~58
Force SSL certificate renewal via certbot. Requires: API key with write scope. Args: slug: Site identifier Returns: {"renewed": true, "expires_at": "iso8601"}
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | — |
No output schema declared.
No examples provided.
start_compute_instance ~31
Start a stopped compute instance. Requires: API key with write scope.
| Name | Type | Req | Description |
|---|---|---|---|
| instance_id | string | yes | — |
No output schema declared.
No examples provided.
stop_compute_instance ~48
Stop a compute instance. WARNING: hourly billing continues while stopped. Use terminate_compute_instance to stop the charges permanently. Requires: API key with write scope.
| Name | Type | Req | Description |
|---|---|---|---|
| instance_id | string | yes | — |
No output schema declared.
No examples provided.
switch_php ~88
Switch the active PHP version for a site. Requires: API key with write scope. Args: slug: Site identifier version: Target PHP version (e.g. "8.3", "8.2", "8.1") Returns: {"version": "8.3", "result": {...}}
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | — |
| version | string | yes | — |
No output schema declared.
No examples provided.
terminate_compute_instance ~76
Permanently terminate a compute instance — this stops hourly billing. The instance and its disk are destroyed and cannot be recovered. Copy any results off the instance before terminating. Requires: API key with write scope. Returns: Final instance dict with state "terminated" and total accrued_cad.
| Name | Type | Req | Description |
|---|---|---|---|
| instance_id | string | yes | — |
No output schema declared.
No examples provided.
toggle_module ~150
Enable or disable an AI module on a site. The module must be in the plan's available module list. Requires: API key with write scope. Args: slug: Site identifier module_name: Module to toggle. Available modules: "chatbot" (AI chat widget), "seo" (SEO optimization), "translation" (content translation), "content" (AI content generation) Returns: {"module": "chatbot", "enabled": true, "message": "Module enabled"} Errors: NOT_FOUND: Unknown slug or module not in plan VALIDATION_ERROR: Invalid module name
| Name | Type | Req | Description |
|---|---|---|---|
| module_name | string | yes | — |
| slug | string | yes | — |
No output schema declared.
No examples provided.
update_account ~159
Update account profile fields (email, language, name). Requires: API key with write scope. Only provided (non-empty) fields are updated. Args: email: New email address language: Language preference — "fr" (French) or "en" (English) first_name: First name last_name: Last name Returns: {"success": true, "account": {"email": "...", "language": "fr", "first_name": "...", "last_name": "..."}} Errors: VALIDATION_ERROR: Invalid email format or language code
| Name | Type | Req | Description |
|---|---|---|---|
| string | — | — | |
| first_name | string | — | — |
| language | string | — | — |
| last_name | string | — | — |
No output schema declared.
No examples provided.
update_checkout ~247
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). Args: checkout_id: Checkout session ID from create_checkout buyer_email: Optional email — if omitted, a synthetic agent identity (agent-{uuid}@api.borealhost.ai) is created at completion requested_slug: Desired site identifier. Must be 3-50 chars, lowercase alphanumeric + hyphens, cannot start/end with hyphen. Must be globally unique. Returns: {"id": "uuid", "sku": "...", "plan_slug": "...", "billing_period": "monthly", "status": "ready", "buyer_email": "...", "requested_slug": "my-site", "created_at": "iso8601"} Errors: VALIDATION_ERROR: Invalid slug format or slug already taken FORBIDDEN: Missing checkout_secret NOT_FOUND: Unknown checkout_id
| Name | Type | Req | Description |
|---|---|---|---|
| buyer_email | string | — | — |
| checkout_id | string | yes | — |
| requested_slug | string | — | — |
No output schema declared.
No examples provided.
upload_file ~154
Upload a base64-encoded file to a site's container. Use this for binary files (images, archives, fonts, etc.). For text files, prefer write_file(). Requires: API key with write scope. Args: slug: Site identifier path: Relative path including filename (e.g. "images/logo.png") content_b64: Base64-encoded file content Returns: {"success": true, "path": "images/logo.png", "size": 45678} Errors: VALIDATION_ERROR: Invalid base64 encoding FORBIDDEN: Protected system path
| Name | Type | Req | Description |
|---|---|---|---|
| content_b64 | string | yes | — |
| path | string | yes | — |
| slug | string | yes | — |
No output schema declared.
No examples provided.
whoami ~137
Check the current API key's account info, scopes, and site count. Requires: BOREALHOST_API_KEY env var (read scope). Returns: {"user": {"id": "uuid", "email": "...", "date_joined": "iso8601"}, "api_key": {"id": "uuid", "name": "...", "prefix": "bh_...", "scopes": ["read", "write"], "created_at": "iso8601"}, "account": {"sites": 2, "active_subscriptions": 1}} Errors: UNAUTHORIZED: Missing or invalid API key
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
wp_check_updates ~99
Check for available WordPress core, plugin, and theme updates. Requires: API key with read scope. Args: slug: Site identifier Returns: {"core": {"current": "6.5", "update": "6.6"}, "plugins": [{"name": "...", "current": "1.0", "new": "1.1"}], "themes": [...]}
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | — |
No output schema declared.
No examples provided.
wp_update_all ~76
Update WordPress core, all plugins, and all themes. Runs all updates in sequence. May take up to 2 minutes. Requires: API key with write scope. Args: slug: Site identifier Returns: {"core": {...}, "plugins": [...], "themes": [...]}
| Name | Type | Req | Description |
|---|---|---|---|
| slug | string | yes | — |
No output schema declared.
No examples provided.
write_file ~123
Write or overwrite a text file in a site's container. Creates parent directories if they don't exist. Requires: API key with write scope. Args: slug: Site identifier path: Relative path to the file content: File content as a UTF-8 string Returns: {"success": true, "path": "...", "size": 1234} Errors: NOT_FOUND: Unknown slug FORBIDDEN: Protected system path
| Name | Type | Req | Description |
|---|---|---|---|
| content | string | yes | — |
| path | string | yes | — |
| slug | string | yes | — |
No output schema declared.
No examples provided.