BorealHost is an MCP server with 152 tools an agent can call, among them add_cron, add_domain_dns, add_firewall_rule. It answers at https://borealhost.ai/mcp/ over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 4 September 2026; the last check, on 17 October 2026, succeeded.
Agent-native web hosting — deploy sites, manage DNS, register domains, scale infrastructure
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
add_cron | Add a cron job to a site. Requires: API key with write scope. Args: slug: Site identifier schedule: Cron schedule (e.g. "*/5 * * * *", "0 2 * * *") command: Command to execute Returns: {"added": true, "result": {...}} Inputs: slug, schedule, command |
add_domain_dns | Add a DNS record to a domain. Requires: API key with write scope. Args: domain_name: Full domain name (e.g. "example.com") record_type: "A", "AAAA", "CNAME", "MX", "TXT", or "SRV" value: Record value (e.g. "1.2.3.4" for A, "mail.example.com Inputs: domain_name, record_type, value, subdomain, ttl, priority |
add_firewall_rule | Add an IP firewall rule (allow or deny) and reload Nginx. Supports IPv4, IPv6, and CIDR notation. Max 100 rules per site. If a rule already exists for the IP, the action is updated. Requires: API key with write scope. Args: slug: Site ident Inputs: slug, ip, action |
add_redirect | Add an HTTP redirect rule to a site. Requires: API key with write scope. Args: slug: Site identifier source_path: Path to redirect, must start with "/" (e.g. "/old-page") target_url: Destination URL redirect_type: 301 (permanent, default) o Inputs: slug, source_path, target_url, redirect_type |
add_site | 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 sit Inputs: slug, subscription_id, client_name, domain, site_type |
add_ssh_key | Inject your SSH public key into a site's container for direct SSH access. The key is appended to /home/admin/.ssh/authorized_keys. Only available for VPS/dedicated plans. Requires: API key with write scope. Args: slug: Site identifier publi Inputs: slug, public_key |
add_subdomain | Create and route a subdomain of a site-linked domain. Creates the DNS A record (if absent) pointing at the site's server, then configures the nginx vhost and SSL certificate on that server. The domain must already be linked to a site (see l Inputs: domain_name, subdomain |
adopt_compute_instance | Turn an instance you are ALREADY running into a persistent volume. Use this when you launched something, set it up, and then decided you want to keep it. Nothing reboots and no data moves — the machine you have becomes the volume, and you c Inputs: instance_id, name |
attach_compute_volume | Restore a detached volume onto a fresh instance — optionally a new type. Pass a different instance_type to move the same machine to different hardware: this is the closest thing to changing instance type that the provider allows, since it h Inputs: volume_id, ssh_public_key, instance_type, root_disk_size |
cache_flush | Flush all caches (Redis + WP object cache). Requires: API key with write scope. Args: slug: Site identifier Returns: {"flushed": true} Inputs: slug |
cache_status | Get cache status (Redis, WP object cache, hit rates). Requires: API key with read scope. Args: slug: Site identifier Returns: {"redis_running": true, "object_cache_enabled": true, "hit_rate": 0.95, "memory_used_mb": 12} Inputs: slug |
cache_toggle | Enable or disable the WordPress object cache. Requires: API key with write scope. Args: slug: Site identifier enable: true to enable, false to disable Returns: {"enabled": true} Inputs: slug, enable |
cancel_checkout | 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. Args: checkout Inputs: checkout_id |
cancel_scheduled_snapshot | Cancel a scheduled snapshot. Requires: API key with write scope. Args: slug: Site identifier schedule_id: UUID of the scheduled snapshot to cancel Returns: {"success": true, "message": "Scheduled snapshot cancelled"} Errors: NOT_FOUND: Sche Inputs: slug, schedule_id |
claim_api_key | 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 clai Inputs: claim_token |
cloudflare_proxy_status | Get Cloudflare proxy (CDN) status for a site. Shows whether traffic is routed through Cloudflare's CDN (orange cloud) or goes direct to origin (grey cloud / DNS-only). Requires: API key with read scope. Args: slug: Site identifier Returns: Inputs: slug |
cloudflare_purge_cache | Purge Cloudflare CDN cache for a site. Without urls: purges all cached content for the site's subdomain. With urls: purges only the specified URLs (max 30 per call). Requires: API key with write scope. Args: slug: Site identifier urls: Opti Inputs: slug, urls |
cloudflare_set_proxy | Enable or disable Cloudflare CDN proxy for a site. When enabled (orange cloud): traffic goes through Cloudflare's CDN, gets caching, DDoS protection, and SSL termination at the edge. When disabled (grey cloud): traffic goes directly to orig Inputs: slug, proxied |
complete_checkout | 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 `stri Inputs: checkout_id, payment_method, payment_method_id |
container_action | Start, stop, or restart a site's container. Only for plans with a dedicated container (VPS / split-VPS / dedicated). Shared-hosting sites share a container and cannot restart it. The response reports the observed container state after the a Inputs: slug, action |
create_alert_rule | Create an alert rule to monitor CPU, memory, or disk usage. When the metric crosses the threshold, a notification is sent via email and/or webhook. Max 10 rules per site. Requires: API key with write scope. Args: slug: Site identifier metri Inputs: slug, metric, threshold, operator, severity, cooldown_minutes |
create_api_key | Create a new API key with specified scopes. Cannot create keys with higher scopes than the current key. Site-scoped keys restrict access to a single site. Requires: API key with write scope. Args: name: Human-readable name for the key (1-10 Inputs: name, scopes, site_slug |
create_b2_snapshot | Create a B2 cloud-backed snapshot (zero local disk, async). Streams container data directly to Backblaze B2 via restic. No local disk impact — billed separately at cost+5%. Runs in background — returns immediately with status "creating". Po Inputs: slug, description |
create_backup | Create a manual backup (runs asynchronously). The backup starts in the background. Poll list_backups() to check status. Requires: API key with write scope. Args: slug: Site identifier Returns: {"id": "uuid", "status": "pending", "message": Inputs: slug |
create_checkout | 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 la Inputs: sku |
create_compute_volume | Create a persistent machine and boot its first instance. Start here, then set the machine up however you like (install packages, drivers, models). Everything you do becomes part of the volume the first time you detach or snapshot it. While Inputs: name, image_id, instance_type, ssh_public_key, root_disk_size |
create_directory | Create a directory 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 of the directory to create Returns: {"success": true, "path": "upl Inputs: slug, path |
create_ftp_account | Create an SFTP account on a site. The account is chrooted to /var/www and lands in home_dir. Password must be at least 8 characters. Username must be lowercase alphanumeric. Requires: API key with write scope. Args: slug: Site identifier us Inputs: slug, username, password, home_dir |
create_mailbox | Create a mailbox on the site's email domain. Password is generated when omitted and returned ONCE — store it. Each mailbox adds to the subscription's email billing. Requires: API key with write scope. Args: slug: Site identifier local_part: Inputs: slug, local_part, display_name, password |
create_snapshot | Create a local container snapshot (async). Runs in background — returns immediately with status "creating". Poll list_snapshots() to check when status becomes "completed" or "failed". Available for VPS, dedicated, and cloud plans (any plan Inputs: slug, description |
create_support_ticket | Open a support ticket with the BorealHost team. Use this to escalate platform-side problems you cannot fix with the available tools (billing issues, infrastructure faults, API bugs). A human answers every ticket — poll get_support_ticket fo Inputs: subject, message, category, site |
create_webhook | Register a webhook endpoint for platform events. Events (backup failures, security notices, hosting incidents, billing) are POSTed as JSON, signed with X-BH-Signature (HMAC-SHA256 of the raw body). The signing secret is returned ONCE. Categ Inputs: url, events |
database_search_replace | Search and replace in WordPress database (e.g. URL migration). Handles serialized data safely. Use dry_run=true first to preview changes. Requires: API key with write scope. Args: slug: Site identifier old: String to search for (e.g. "http: Inputs: slug, old, new, dry_run |
decommission | Delete a site and schedule resource cleanup (7-day grace period). WARNING: This is destructive. The site will be inaccessible immediately but data is retained for 7 days before permanent deletion. Best practice: create a snapshot before dec Inputs: slug |
delete_account | Permanently anonymize the account. Cancels subscriptions, deactivates keys. WARNING: This is irreversible. The account will be soft-deleted and all personal data anonymized. All sites will be decommissioned. Requires: API key with admin sco |
delete_alert_rule | Delete an alert rule. Requires: API key with write scope. Args: slug: Site identifier rule_id: UUID of the alert rule to delete Returns: {"deleted": true, "id": "uuid"} Inputs: slug, rule_id |
delete_backup | Permanently delete a single backup (metadata + stored snapshot). Irreversible. Requires: API key with admin scope. Returns: {"site", "backup_id", "deleted": true} Inputs: slug, backup_id |
delete_compute_volume | Permanently delete a volume and everything stored in it. Irreversible: the instance is released AND the stored data is purged from object storage, so billing genuinely stops. Refuses while an instance is live unless force=True, so a running Inputs: volume_id, force |
delete_cron | Delete a cron job by line number. Get line numbers from list_cron(). Requires: API key with write scope. Args: slug: Site identifier line_number: Line number of the cron entry to delete Returns: {"deleted": true} Inputs: slug, line_number |
delete_domain_dns | Delete a DNS record from a domain. Requires: API key with write scope. Args: domain_name: Full domain name (e.g. "example.com") record_id: ID of the DNS record to delete (from list_domain_dns) Returns: {"success": true, "message": "DNS reco Inputs: domain_name, record_id |
delete_file, delete_mailbox, delete_redirect, delete_snapshot, delete_subdomain, delete_webhook, detach_compute_volume, domain_detail, domain_settings, enable_smtp_relay, enable_wildcard, execute_query, get_app_status, get_backup_retention, get_billing_portal, get_checkout_status, get_compute_instance, get_compute_volume, get_database_info, get_email_status, get_logs, get_metrics, get_resource_snapshot, get_site_nginx_snippet, get_site_status, get_smtp_relay, get_snapshot_usage, get_ssh_info, get_stack_info, get_support_ticket, get_wallet, get_webmail_url, install_app, launch_compute_instance, link_domain, list_alert_rules, list_api_keys, list_apps, list_backups, list_checkouts, list_compute_images, list_compute_instances, list_compute_types, list_compute_volumes, list_cron, list_databases, list_db_users, list_domain_dns, list_domains, list_files, list_firewall_rules, list_ftp_accounts, list_modules, list_php_versions, list_plans, list_plugins, list_redirects, list_snapshots, list_subdomains, list_subscriptions, list_support_tickets, list_tables, list_themes, list_webhooks, manage_db_user, manage_dns, manage_plugin, manage_theme, optimize_database, read_file, reboot_compute_instance, register, register_domain, remove_firewall_rule, remove_ftp_account, reply_support_ticket, request_api_key, reset_mailbox_password, restore_backup, revoke_api_key, revoke_smtp_relay, rollback_snapshot, rotate_key, run_malware_scan, scale, schedule_snapshot, search_domain, set_api_key, set_backup_retention, set_domain_usage, set_force_https, set_site_nginx_snippet, set_site_type, setup_email, snapshot_compute_volume, ssl_info, ssl_renew, start_compute_instance, stop_compute_instance, switch_php, terminate_compute_instance, test_webhook, toggle_module, transfer_out_domain, update_account, update_checkout, upload_file, upload_ssl_cert, whoami, wp_check_updates, wp_update_all, write_file
Every block below points at https://borealhost.ai/mcp/. Pick your client and copy.
claude mcp add --transport http borealhost https://borealhost.ai/mcp/
{
"mcpServers": {
"borealhost": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://borealhost.ai/mcp/"]
}
}
}{
"mcpServers": {
"borealhost": {
"url": "https://borealhost.ai/mcp/"
}
}
}{
"servers": {
"borealhost": {
"type": "http",
"url": "https://borealhost.ai/mcp/"
}
}
}{
"context_servers": {
"borealhost": {
"url": "https://borealhost.ai/mcp/"
}
}
}{
"mcpServers": {
"borealhost": {
"serverUrl": "https://borealhost.ai/mcp/"
}
}
}{
"mcpServers": {
"borealhost": {
"url": "https://borealhost.ai/mcp/"
}
}
}name: BorealHost
version: 0.0.1
schema: v1
mcpServers:
- name: BorealHost
type: streamable-http
url: https://borealhost.ai/mcp/{
"mcpServers": {
"borealhost": {
"httpUrl": "https://borealhost.ai/mcp/"
}
}
}{
"mcpServers": {
"borealhost": {
"type": "http",
"url": "https://borealhost.ai/mcp/"
}
}
}{
"mcpServers": {
"borealhost": {
"url": "https://borealhost.ai/mcp/"
}
}
}goose://extension?url=https%3A%2F%2Fborealhost.ai%2Fmcp%2F&type=streamable_http&id=borealhost&name=BorealHost
It answered our last check on 17 October 2026 in 493 ms. Over 10 checks since 4 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by borealhost.ai and served from borealhost.ai, the vendor's own domain: https://borealhost.ai/mcp/.
152, as returned by the server's own tools/list on 7 September 2026: add_cron, add_domain_dns, add_firewall_rule, add_redirect, add_site, add_ssh_key, add_subdomain, adopt_compute_instance, and 144 more.
It answered our last check on 17 October 2026 in 493 ms. Over 10 checks since 4 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://borealhost.ai/mcp/. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: ai.borealhost. Endpoint host: borealhost.ai. ARD identifier: urn:air:ai.borealhost:mcp:mcp.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.