mcpserver.lol
registry/alainsvrd-mcp
Connection check verified live · 20h ago

alainsvrd-mcp

Agent-native web hosting — deploy sites, manage DNS, register domains, scale infrastructure

Tools 152
GitHub stars
Installs / wk
Licence
Transport streamable-http, stdio
Last checked 20h ago

Tools & capabilities

152 tools

Read from the running server on 20h ago.

add_cron slug*command*schedule*
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 t…
add_domain_dns ttlvalue*prioritysubdomaindomain_name*record_type*
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",…
add_firewall_rule ip*slug*action
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 update…
add_redirect slug*target_url*source_path*redirect_type
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")…
add_site slug*domainsite_typeclient_namesubscription_id*
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 →…
add_ssh_key slug*public_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. Require…
add_subdomain subdomain*domain_name*
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 th…
adopt_compute_instance nameinstance_id*
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 da…
attach_compute_volume volume_id*instance_typeroot_disk_sizessh_public_key*
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 t…
cache_flush slug*
Flush all caches (Redis + WP object cache). Requires: API key with write scope. Args: slug: Site identifier Returns: {"flushed": true}
cache_status slug*
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_enabl…
cache_toggle slug*enable*
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: {"ena…
cancel_checkout checkout_id*
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 her…
cancel_scheduled_snapshot slug*schedule_id*
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…
claim_api_key claim_token*
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 con…
cloudflare_proxy_status slug*
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:…
cloudflare_purge_cache slug*urls
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: AP…
cloudflare_set_proxy slug*proxied*
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 ed…
complete_checkout checkout_id*payment_methodpayment_method_id
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…
container_action slug*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.…
create_alert_rule slug*metric*operatorseveritythreshold*notify_email +2
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. Require…
create_api_key name*scopessite_slug
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…
create_b2_snapshot slug*description
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 i…
create_backup slug*
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…
create_checkout sku*
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 resp…
create_compute_volume name*image_id*instance_type*root_disk_sizessh_public_key*
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 o…
create_directory path*slug*
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…
create_ftp_account slug*home_dirpassword*username*
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. Requ…
create_mailbox slug*passwordlocal_part*display_name
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…
create_snapshot slug*description
Create a local container snapshot (async). Runs in background — returns immediately with status "creating". Poll list_snapshots() to check when status becomes "completed" or "fail…
create_support_ticket sitemessage*subject*category
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 bug…
create_webhook url*events
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…
database_search_replace new*old*slug*dry_run
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. Arg…
decommission slug*
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 pe…
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 s…
delete_alert_rule slug*rule_id*
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": "uui…
delete_backup slug*backup_id*
Permanently delete a single backup (metadata + stored snapshot). Irreversible. Requires: API key with admin scope. Returns: {"site", "backup_id", "deleted": true}
delete_compute_volume forcevolume_id*
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. Refu…
delete_cron slug*line_number*
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…
delete_domain_dns record_id*domain_name*
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…
delete_file path*slug*
Delete a file or directory from a site's container. Directories are deleted recursively. Protected system paths (e.g. /etc, /usr) cannot be deleted. Requires: API key with write…
delete_mailbox slug*email*
Delete a mailbox (its mail is destroyed). Requires: API key with write scope. Returns: {"email", "deleted": true}
delete_redirect slug*redirect_idsource_path
Delete a redirect rule by source path or id. Requires: API key with write scope. Returns: {"site", "deleted": true}
delete_snapshot slug*snapshot_id*
Delete a snapshot (local or B2). Requires: API key with write scope. Args: slug: Site identifier snapshot_id: UUID of the snapshot to delete Returns: {"success": tru…
delete_subdomain subdomain*domain_name*
Remove a subdomain: its DNS record, nginx vhost and certificate. The inverse of add_subdomain. Removes the DNS record AND the server-side vhost and cert, so the name stops resolvi…
delete_webhook endpoint_id*
Remove a webhook endpoint. Requires: API key with write scope. Returns: {"id", "deleted": true}
detach_compute_volume volume_id*
Queue: snapshot the machine, verify it, then destroy the instance. This is how you stop paying for compute while keeping your work. ASYNCHRONOUS. Returns immediately with state "…
domain_detail domain_name*
Get full domain details including DNS and infrastructure status. Requires: API key with read scope. Args: domain_name: Full domain name (e.g. "example.com") Returns: {"d…
domain_settings lockedauto_renewdomain_name*whois_privacy
Update domain settings (auto-renew, WHOIS privacy, registrar lock). Only provided (non-None) fields are updated. Requires: API key with write scope. Args: domain_name: Full…
enable_smtp_relay slug*domain*
Enable an SMTP relay for a site's outbound transactional mail. Provisions a mail-send-only credential on the platform relay and configures SPF/DKIM DNS when the domain zone is hos…
enable_wildcard domain_name*
Route *.domain (every subdomain) to the domain's linked site. Creates a wildcard DNS record and issues a wildcard certificate via ACME DNS-01. SLOW — DNS propagation is part of th…
execute_query slug*query*database*
Execute a SQL query on a site's database. Supports SELECT, INSERT, UPDATE, DELETE, and DDL statements. Results are limited to 1000 rows for SELECT queries. Requires: API key with…
get_app_status slug*app_id*
Get app installation status and log. Poll this after install_app() to track progress. Requires: API key with read scope. Args: slug: Site identifier app_id: App ID from…
get_backup_retention slug*
Get the backup retention policy for a VPS site. Requires: API key with read scope. Returns: {"site", "retention": {"keep_daily", "keep_weekly", "keep_monthly"}}
get_billing_portal flow
Get a Stripe billing portal URL for managing payment methods and invoices. Returns a URL (not a redirect) that the human can open in a browser. Requires: API key with read scope.…
get_checkout_status checkout_id*
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…
get_compute_instance instance_id*
Get live details for a compute instance (state, public IP, accrued cost). State is synced from the cloud provider on each call. SSH as root once state is "running" and public_ip i…
get_compute_volume volume_id*
Get a volume's live state, its instance, and its monthly storage cost. Requires: API key with read scope. Returns: Volume dict plus "monthly_storage_cad". After attach, poll…
get_database_info slug*
Get WordPress database information (size, tables, row counts). Requires: API key with read scope. WordPress sites only. Args: slug: Site identifier Returns: {"database":…
get_email_status slug*
Email addon status and mailboxes for a site. Requires: API key with read scope. Returns: {"configured": bool, "domain", "mailboxes", "mailbox_list": [...]}
get_logs slug*linessearchlog_type
Retrieve container logs (error, access, or PHP). Requires: API key with read scope. Args: slug: Site identifier log_type: "error" (Nginx/Apache errors), "access" (HTTP re…
get_metrics daysslug*
Get traffic and performance metrics for a site. Requires: API key with read scope. Args: slug: Site identifier days: Number of days of history (1–90, default: 7) Returns…
get_resource_snapshot slug*
Get current resource usage (CPU, memory, disk, load average). Requires: API key with read scope. Args: slug: Site identifier Returns: {"cpu_percent": 12.5, "memory_mb":…
get_site_nginx_snippet domain_name*
Read the custom nginx config for a domain on the BorealHost host proxy. Your site sits behind a BorealHost reverse proxy that terminates TLS and forwards to your container. This r…
get_site_status slug*
Get detailed status of a hosted site including resources, domains, and modules. Requires: API key with read scope. Args: slug: Site identifier (the slug chosen during checkou…
get_smtp_relay slug*
List SMTP relay credentials for a site, with domain-auth status. Requires: API key with read scope. Returns: {"relays": [{"relay_id", "domain", "status", "do…
get_snapshot_usage slug*
Get snapshot disk usage and quota info for a site. Requires: API key with read scope. Args: slug: Site identifier Returns: {"disk_quota_gb": 200, "max_snapshots": 5, "sn…
get_ssh_info slug*
Get SSH connection info for a VPS/dedicated site. Only available for VPS/dedicated plans (not shared hosting). Requires: API key with read scope. Args: slug: Site identifier…
get_stack_info slug*
Get detailed system stack information (OS, PHP, DB, web server versions). Requires: API key with read scope. Args: slug: Site identifier Returns: {"os": "Debian 12", "ke…
get_support_ticket ticket_id*
Get a support ticket with its full message thread. Requires: API key with read scope. Args: ticket_id: Ticket UUID from list_support_tickets Returns: {"id", "subject", "…
get_wallet
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 aga…
get_webmail_url slug*email*
One-time webmail single-sign-on URL for a mailbox. Requires: API key with write scope. Returns: {"email", "url"}
install_app slug*domaindb_typeapp_name*template*display_name
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. Ar…
launch_compute_instance nameimage_id*user_datastorage_typeinstance_type*root_disk_size +2
Launch an on-demand hourly compute instance (Canada, CAD). Billing starts at launch (per minute, 1-hour minimum) and runs until terminate_compute_instance — stopping does NOT stop…
link_domain site_slug*domain_name*
Link a domain to a hosted site. Attaches the domain to the specified site and triggers automatic DNS configuration and SSL provisioning. WARNING: Regenerates this site's nginx vh…
list_alert_rules slug*
List user-configurable alert rules for a site. Requires: API key with read scope. Args: slug: Site identifier Returns: [{"id": "uuid", "metric": "disk", "operator": "gt"…
list_api_keys
List all API keys for the account. Shows key metadata (name, prefix, scopes, last used) but never the full key value. Requires: API key with read scope. Returns: [{"id": "uu…
list_apps slug*
List installed apps on a site. Requires: API key with read scope. Args: slug: Site identifier Returns: {"apps": [{"id": "uuid", "app_name": "myapp", "template_slug": "dj…
list_backups slug*
List all backups for a site (automatic and manual). Requires: API key with read scope. Args: slug: Site identifier Returns: [{"id": "uuid", "backup_type": "auto"|"manual…
list_checkouts status
List checkouts belonging to the authenticated account. Requires: API key. Only checkouts with a recorded owner appear — every checkout created while authenticated, plus every chec…
list_compute_images
List OS images available for on-demand compute instances. Requires: API key with read scope. Returns: {"images": [{"id": "UBUNTU_24_04_64BIT", "name": "Ubuntu 24.04 LTS (x86_…
list_compute_instances include_terminated
List your on-demand compute instances with month-to-date spend. Requires: API key with read scope. Returns: {"instances": [...], "month_to_date_spend_cad": 12.34, "month…
list_compute_types
List on-demand compute instance types with hourly CAD prices. On-demand instances are real cloud VMs in Canada (Montreal region), billed per minute (1-hour minimum) post-paid onto…
list_compute_volumes
List your compute volumes — machines that survive instance termination. A volume is a whole machine (packages, drivers, services, users, data) stored in Canada. Detaching destroys…
list_cron slug*
List cron jobs on a site. Requires: API key with read scope. Args: slug: Site identifier Returns: {"jobs": [{"line": 1, "schedule": "*/5 * * * *", "command": "/usr/…
list_databases slug*
List all databases on a site's container. Requires: API key with read scope. Args: slug: Site identifier Returns: {"databases": ["wordpress", "app_db", ...]}
list_db_users slug*engine
List database users for a site. Requires: API key with read scope. Returns: {"engine", "users": [{"user", "host", ...}, ...]}
list_domain_dns domain_name*
List all DNS records for a domain. Returns DNS records at the domain level (independent of site-level manage_dns). Use this for domains that may not be linked to a site. Requires…
list_domains
List all domains owned by the authenticated user. Requires: API key with read scope. Returns: [{"domain": "example.com", "status": "active", "expires_at": "iso8601", "a…
list_files pathslug*
List files and directories in a site's container. Path scoping depends on the plan: - Shared plans: rooted at wp-content/ (WordPress content directory) - VPS/dedicated plans: full…
list_firewall_rules slug*
List IP allow/deny firewall rules for a site. Rules are implemented as Nginx allow/deny directives per container. Requires: API key with read scope. Args: slug: Site identif…
list_ftp_accounts slug*
List SFTP accounts on a site. Also returns the host and port to connect to. Do not use the site's domain for SFTP: it is Cloudflare-proxied and only carries HTTP(S). Requires: AP…
list_modules slug*
List AI modules and their enabled/disabled state for a site. Also returns the list of modules available for the site's plan. Requires: API key with read scope. Args: slug: S…
list_php_versions slug*
List available PHP versions and the currently active one. Requires: API key with read scope. Args: slug: Site identifier Returns: {"versions": [{"version": "8.1", "activ…
list_plans trackinclude_deprecated
List available hosting plans with pricing and resources. No authentication needed. Args: track: Filter by plan track. Valid values: "single_site", "agency". ⚠ The tra…
list_plugins slug*
List installed WordPress plugins with status. Requires: API key with read scope. WordPress sites only. Args: slug: Site identifier Returns: {"plugins": [{"name": "akisme…
list_redirects slug*
List HTTP redirect rules for a site. Requires: API key with read scope. Returns: [{"id", "source_path", "target_url", "redirect_type"}, ...]
list_snapshots slug*
List all snapshots and scheduled snapshots for a site. Requires: API key with read scope. Args: slug: Site identifier Returns: {"snapshots": [{"id": "uuid", "name": "sna…
list_subdomains domain_name*
List subdomain DNS records for a domain you own. Requires: API key with read scope. Args: domain_name: Registrable domain (e.g. "example.com") Returns: [{"fqdn": "blog.e…
list_subscriptions
List all subscriptions with plan details, pricing, status, and site slug. Requires: API key with read scope. Returns: [{"id": "uuid", "plan_slug": "site_starter", "plan_name"…
list_support_tickets status
List the account's support tickets. Requires: API key with read scope. Args: status: Optional filter (e.g. "open", "closed") Returns: [{"id", "subject", "status", "categ…
list_tables slug*database*
List tables in a database. Requires: API key with read scope. Args: slug: Site identifier database: Database name Returns: {"tables": [{"name": "wp_posts", "rows": 1…
list_themes slug*
List installed WordPress themes with status. Requires: API key with read scope. WordPress sites only. Args: slug: Site identifier Returns: {"themes": [{"name": "twentytw…
list_webhooks
List webhook endpoints registered on the account. Requires: API key with read scope. Returns: [{"id", "url", "events", "is_active", "last_status", "failure_count"}, ...…
manage_db_user hostslug*useraction*enginedatabase +2
Manage a database user on a site. Actions: "create" (user+password), "drop" (user), "set_password" (user+password), "grants" (list a user's grants), "grant" / "revoke" (user+datab…
manage_dns ttlslug*valueaction*subdomainrecord_type*
Create or delete DNS records for a site. Requires: API key with write scope. Args: slug: Site identifier action: "create" or "delete" record_type: "A", "AAAA", "CNAME…
manage_plugin slug*action*plugin*
Install, activate, deactivate, or delete a WordPress plugin. Requires: API key with write scope. Args: slug: Site identifier action: "install", "activate", "deactivate",…
manage_theme slug*theme*action*
Install, activate, or delete a WordPress theme. Requires: API key with write scope. Args: slug: Site identifier action: "install", "activate", or "delete" theme: Them…
optimize_database slug*
Optimize WordPress database tables (reduces bloat). Requires: API key with write scope. Args: slug: Site identifier Returns: {"optimized": true, "tables_optimized": 12}
read_file path*slug*
Read the contents of a file from a site's container. Max file size: 512KB. Binary files are rejected — use the site's file manager or SSH for binary files. Requires: API key with…
reboot_compute_instance instance_id*
Reboot a running compute instance. Requires: API key with write scope.
register nameemail
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 ca…
register_domain city*email*phone*state*domain*period +11
Register a new domain with WHOIS contact info and Stripe billing. The domain cost is charged to the user's active subscription. Free domain if plan includes free_domain_annual + a…
remove_firewall_rule ip*slug*
Remove an IP firewall rule and reload Nginx. Requires: API key with write scope. Args: slug: Site identifier ip: IP address or CIDR to remove (must match exactly) Return…
remove_ftp_account slug*username*
Remove an SFTP account from a site. Requires: API key with write scope. Args: slug: Site identifier username: SFTP username to remove Returns: {"removed": true, "use…
reply_support_ticket message*ticket_id*
Add a message to an existing support ticket. Requires: API key with write scope. Args: ticket_id: Ticket UUID message: Reply text Returns: {"id", "status", ...}
request_api_key site_slug*
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 fro…
reset_mailbox_password slug*email*new_password
Reset a mailbox password (generated when omitted, returned ONCE). Requires: API key with write scope. Returns: {"email", "password", "message"}
restore_backup slug*backup_id*
Restore a site from a backup. WARNING: This is destructive. The current state of the site will be replaced. Runs asynchronously — may take several minutes. Requires: API key with…
revoke_api_key key_id*
Revoke (deactivate) an API key. The key stops working immediately. Requires: API key with write scope. Args: key_id: UUID of the key to revoke (from list_api_keys or whoami)…
revoke_smtp_relay slug*relay_id*
Revoke an SMTP relay credential (immediate at the relay). Requires: API key with write scope. Returns: {"relay_id", "revoked": true}
rollback_snapshot slug*snapshot_id*
Rollback a site to a previous snapshot. WARNING: This is destructive. The current state of the container will be replaced with the snapshot contents. Requires: API key with admin…
rotate_key key_id*
Atomically rotate an API key. Old key is immediately invalidated. Creates a new key with the same name, scopes, and rate limits. The new key is returned once — store it immediatel…
run_malware_scan pathslug*
Run a ClamAV malware scan on a site's container. Scans the web root (or specified path) for malware, viruses, and trojans. ClamAV is installed automatically if not present. Exclud…
scale slug*new_plan*
Change a site's hosting plan (upgrade or downgrade). Requires: API key with admin scope. Best practice: create a snapshot before downgrading. Args: slug: Site identifier…
schedule_snapshot slug*descriptionscheduled_at*
Schedule a snapshot for future execution. Requires: API key with write scope. Max 3 pending schedules per site. Args: slug: Site identifier scheduled_at: ISO 8601 datetim…
search_domain domain*
Check domain availability and get pricing. Requires: API key with read scope. Args: domain: Full domain name (e.g. "example.com", "mybiz.ca") Returns: {"domain": "exampl…
set_api_key api_key*
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…
set_backup_retention slug*resetkeep_dailykeep_weeklykeep_monthly
Set the backup retention policy for a VPS site. Storage is billed on real stored bytes, so deeper history costs the customer, not the platform. Values are clamped to platform boun…
set_domain_usage site_slugusage_mode*domain_name*forward_urlnameserversforward_type +1
Set what a registered domain points at — a site, someone else's nameservers, our DNS with no site, or a redirect to another URL. Use this to park a domain, hand it to an external…
set_force_https slug*enabled*
Enable or disable the HTTP→HTTPS redirect for a site. Requires: API key with write scope. Returns: {"site", "force_https": true|false, "message"}
set_site_nginx_snippet content*domain_name*
Set custom nginx config on the BorealHost host proxy — WebSocket, timeouts, headers. Use this when configuring your container's own nginx is not enough because something in front…
set_site_type slug*site_type*
Change what a site's docroot IS, without deleting anything. Types: wordpress WordPress, PHP and a database (the default) php PHP and a database, no WordPress php…
setup_email slug*domain*
Enable business email (hosted mailboxes + webmail) on a domain. Creates the hosted-email domain, sets up outbound authentication (DKIM/SPF), and auto-configures MX/SPF DNS when th…
snapshot_compute_volume volume_id*quiesce_units
Queue a checkpoint snapshot without detaching — before a risky change. ASYNCHRONOUS. Returns immediately with state "snapshotting"; poll get_compute_volume until it is back to "at…
ssl_info slug*
Get SSL certificate information for a site. Returns certificate details, expiry date, and issuer. Requires: API key with read scope. Args: slug: Site identifier Returns:…
ssl_renew slug*
Force SSL certificate renewal via certbot. Requires: API key with write scope. Args: slug: Site identifier Returns: {"renewed": true, "expires_at": "iso8601"}
start_compute_instance instance_id*
Start a stopped compute instance. Requires: API key with write scope.
stop_compute_instance instance_id*
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.
switch_php slug*version*
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:…
terminate_compute_instance instance_id*
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 ter…
test_webhook endpoint_id*
Send a test event to a webhook endpoint (async). Poll list_webhooks afterwards for last_status. Requires: API key with write scope. Returns: {"id", "message"}
toggle_module slug*module_name*
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_…
transfer_out_domain domain_name*
Prepare a domain to transfer to another registrar. Unlocks the domain and emails the EPP/auth code to the registrant contact on file (BorealHost never sees the code). The domain k…
update_account emaillanguagelast_namefirst_name
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 la…
update_checkout site_typebuyer_emailcheckout_id*requested_slug
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 comp…
upload_file path*slug*content_b64*
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 s…
upload_ssl_cert slug*domain*privkey_pem*fullchain_pem*
Install your own SSL certificate for a site's domain. The certificate must be a PEM fullchain (leaf + intermediates) and the key unencrypted PEM. Validated (parse, key match, doma…
whoami
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_jo…
wp_check_updates slug*
Check for available WordPress core, plugin, and theme updates. Requires: API key with read scope. Args: slug: Site identifier Returns: {"core": {"current": "6.5", "updat…
wp_update_all slug*
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…
write_file path*slug*content*
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 pat…