MCP serverai.borealhost/mcp
Agent-native web hosting — deploy sites, manage DNS, register domains, scale infrastructure
Overview
Score?
UNRATED 0.681
of what a free look can see, on 32 looks
Looks
36
last 11 hr ago
Tools
184
changed 14 days ago
More info
URL
borealhost.ai/mcp/
streamable-http
Says it is
BorealHost 1.27.0
protocol 2025-06-18
In the record since
32 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.681 · highest on record 0.8561
Toolsfrom sha256:f4e6c89c7a…315599 · +0 −0 14 days ago
| Tool | Schema |
|---|---|
| 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 t |
input · no output |
| 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", |
input · no output |
| 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 update |
input · no output |
| add_mailbox_alias Add an alias on the same domain, preserving existing aliases. |
input · no output |
| add_port_forward Publish a container port on the node's public IP (TCP or UDP).
This is how inbound UDP reaches a container. There is no other way: the
container's own address is private, and the |
input · no output |
| 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") |
input · no output |
| 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 → |
input · no output |
| 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.
Require |
input · no output |
| 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 th |
input · no output |
| 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 da |
input · no output |
| 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 t |
input · no output |
| browse_backup List one bounded page of immediate children in a backup directory.
This returns names and metadata only, never file contents. Use
``next_cursor`` from the response as ``cursor`` t |
input · no output |
| cache_flush Flush all caches (Redis + WP object cache).
Requires: API key with write scope.
Args:
slug: Site identifier
Returns:
{"flushed": true}
|
input · no output |
| 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_enabl |
input · no output |
| 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:
{"ena |
input · no output |
| 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 her |
input · no output |
| 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 |
input · no output |
| 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 con |
input · no output |
| clear_mailbox_forwarding Clear forwarding; when Sieve exists, requires explicit clear_all_filters=true. |
input · no output |
| 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: |
input · no output |
| 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: AP |
input · no output |
| 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 ed |
input · no output |
| 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 |
input · no output |
| configure_email_dns Configure OpenSRS DKIM and merge email DNS, preserving other senders and subdomains. |
input · no output |
| 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. |
input · no output |
| 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.
Require |
input · no output |
| 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.
email_domains restricts |
input · no output |
| 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 i |
input · no output |
| 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 |
input · no output |
| 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 resp |
input · no output |
| 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 o |
input · no output |
| 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 |
input · no output |
| create_email_mailbox Create a domain-addressed billable mailbox. Password returned once; retries omit it. |
input · no output |
| 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.
Requ |
input · no output |
| 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 |
input · no output |
| create_mailbox_token Issue a temporary mail-services token with no OMA access. Requires email:signon.
Use 60, 120, ... 1440 minutes. OpenSRS rejects fractional hours; no rounding up.
|
input · no output |
| 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 "fail |
input · no output |
| 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 bug |
input · no output |
| 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 |
input · no output |
| 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.
Arg |
input · no output |
| decommission Delete a site and schedule resource cleanup (7-day grace period).
WARNING: This is destructive. The site will be inaccessible immediately.
After the grace period, its active servi |
input · no output |
| 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 |
input · no output |
| 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": "uui |
input · no output |
| delete_backup Permanently delete a single backup (metadata + stored snapshot).
Irreversible. Requires: API key with admin scope.
Returns:
{"site", "backup_id", "deleted": true}
|
input · no output |
| 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. Refu |
input · no output |
| 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 |
input · no output |
| 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 |
input · no output |
| delete_email_mailbox Soft-delete a mailbox. confirm must equal email. Provider recovery window: 30 days. |
input · no output |
| delete_file 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 |
input · no output |
| delete_mailbox Delete a mailbox (its mail is destroyed).
Requires: API key with write scope.
Returns:
{"email", "deleted": true}
|
input · no output |
| delete_redirect Delete a redirect rule by source path or id.
Requires: API key with write scope.
Returns:
{"site", "deleted": true}
|
input · no output |
| delete_snapshot 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 |
input · no output |
| delete_subdomain 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 |
input · no output |
| delete_webhook Remove a webhook endpoint.
Requires: API key with write scope.
Returns:
{"id", "deleted": true}
|
input · no output |
| detach_compute_volume 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 " |
input · no output |
| disable_email_domain Disable an empty email domain; refuses active or recoverable accounts. |
input · no output |
| domain_detail 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 |
input · no output |
| domain_settings 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 |
input · no output |
| enable_email_domain Enable an independent email domain; preserve all other email domains.
Requires a verified owned domain and email:write scope. site_slug selects
billing when ambiguous. Defaults re |
input · no output |
| enable_smtp_relay 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 |
input · no output |
| enable_wildcard 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 |
input · no output |
| execute_query Run ONE bounded read against a site's database.
One statement, beginning with SELECT, SHOW, DESCRIBE or EXPLAIN, with no
second statement and no data-modifying clause anywhere in |
input · no output |
| find_address Look up mailbox/alias/forward/free in an authorized email domain. |
input · no output |
| get_app_status 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 |
input · no output |
| get_backup_retention Get the backup retention policy for a VPS site.
Requires: API key with read scope.
Returns:
{"site", "retention": {"keep_daily", "keep_weekly", "keep_monthly"}}
|
input · no output |
| get_billing_portal 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. |
input · no output |
| get_checkout_status 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 |
input · no output |
| get_compute_instance 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 |
input · no output |
| get_compute_volume 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 |
input · no output |
| get_database_info Get WordPress database information (size, tables, row counts).
Requires: API key with read scope. WordPress sites only.
Args:
slug: Site identifier
Returns:
{"database": |
input · no output |
| get_database_recovery Poll one database recovery without waiting for completion.
Requires: API key with read scope.
Args:
slug: Site identifier
backup_id: UUID of the source backup
recover |
input · no output |
| get_email_domain Read effective OpenSRS limits, counts, connections and public DNS health. |
input · no output |
| get_email_status Email addon status and mailboxes for a site.
Requires: API key with read scope.
Returns:
{"configured": bool, "domain", "mailboxes", "mailbox_list": [...]}
|
input · no output |
| get_email_webmail_url Issue a one-use BorealHost link expiring in 60 seconds. Redemption mints provider SSO. Requires email:signon. |
input · no output |
| get_file_recovery Poll one selected-file recovery without waiting for it to finish.
Requires: API key with read scope.
Args:
slug: Site identifier
backup_id: UUID of the source backup
|
input · no output |
| get_logs 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 |
input · no output |
| get_mailbox Inspect usage, services, aliases count, forwarding/Sieve, autoresponder and label. |
input · no output |
| get_metrics 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 |
input · no output |
| get_resource_snapshot 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": |
input · no output |
| get_site_nginx_snippet 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 |
input · no output |
| get_site_status 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 |
input · no output |
| get_smtp_relay List SMTP relay credentials for a site, with domain-auth status.
Requires: API key with read scope.
Returns:
{"relays": [{"relay_id", "domain", "status",
"do |
input · no output |
| get_snapshot_usage 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 |
input · no output |
| get_ssh_info 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 |
input · no output |
| get_stack_info 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 |
input · no output |
| get_support_ticket 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", " |
input · no output |
| 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 |
input · no output |
| get_webmail_url One-time webmail single-sign-on URL for a mailbox.
Requires: API key with write scope.
Returns:
{"email", "url"}
|
input · no output |
| install_app 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 |
input · no output |
| launch_compute_instance 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 |
input · no output |
| link_domain 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 |
input · no output |
| list_alert_rules 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" |
input · no output |
| 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 |
input · no output |
| list_apps 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 |
input · no output |
| list_backups 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 |
input · no output |
| list_checkouts 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 |
input · no output |
| 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_ |
input · no output |
| list_compute_instances 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 |
input · no output |
| 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 |
input · no output |
| 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 |
input · no output |
| list_cron List cron jobs on a site.
Requires: API key with read scope.
Args:
slug: Site identifier
Returns:
{"jobs": [{"line": 1, "schedule": "*/5 * * * *",
"command": "/usr/ |
input · no output |
| list_databases List all databases on a site's container.
Requires: API key with read scope.
Args:
slug: Site identifier
Returns:
{"databases": ["wordpress", "app_db", ...]}
|
input · no output |
| list_db_users List database users for a site.
Requires: API key with read scope.
Returns:
{"engine", "users": [{"user", "host", ...}, ...]}
|
input · no output |
| list_domain_dns 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 |
input · no output |
| 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 |
input · no output |
| list_email_audit List email API mutation/credential issuance attempts, actor, reason and outcome. |
input · no output |
| list_email_domains List email domains visible to this key, with cluster connection settings. |
input · no output |
| list_files 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 |
input · no output |
| list_firewall_rules 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 |
input · no output |
| list_ftp_accounts 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 |
input · no output |
| list_mailbox_aliases List a mailbox's aliases with pagination. |
input · no output |
| list_mailboxes Page through a domain's mailboxes, optionally filtering by organisation label. |
input · no output |
| list_modules 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 |
input · no output |
| list_php_versions 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 |
input · no output |
| list_plans List available hosting plans with pricing and resources.
No authentication needed.
Args:
track: Filter by plan track. Valid values: "single_site", "agency".
⚠ The tra |
input · no output |
| list_plugins List installed WordPress plugins with status.
Requires: API key with read scope. WordPress sites only.
Args:
slug: Site identifier
Returns:
{"plugins": [{"name": "akisme |
input · no output |
| list_port_forwards List ports published from this site's container to the public internet.
These are iptables DNAT rules on the node, NOT the IP allow/deny rules that
add_firewall_rule manages — tho |
input · no output |
| list_redirects List HTTP redirect rules for a site.
Requires: API key with read scope.
Returns:
[{"id", "source_path", "target_url", "redirect_type"}, ...]
|
input · no output |
| list_snapshots 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 |
input · no output |
| list_subdomains 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 |
input · no output |
| 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" |
input · no output |
| list_support_tickets 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 |
input · no output |
| list_tables 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 |
input · no output |
| list_themes List installed WordPress themes with status.
Requires: API key with read scope. WordPress sites only.
Args:
slug: Site identifier
Returns:
{"themes": [{"name": "twentytw |
input · no output |
| 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"}, ... |
input · no output |
| logout_mailbox_sessions Terminate established IMAP and POP sessions through OpenSRS logout_user. |
input · no output |
| manage_db_user 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 |
input · no output |
| manage_dns 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 |
input · no output |
| manage_plugin Install, activate, deactivate, or delete a WordPress plugin.
Requires: API key with write scope.
Args:
slug: Site identifier
action: "install", "activate", "deactivate", |
input · no output |
| manage_theme Install, activate, or delete a WordPress theme.
Requires: API key with write scope.
Args:
slug: Site identifier
action: "install", "activate", or "delete"
theme: Them |
input · no output |
| optimize_database Optimize WordPress database tables (reduces bloat).
Requires: API key with write scope.
Args:
slug: Site identifier
Returns:
{"optimized": true, "tables_optimized": 12}
|
input · no output |
| read_file 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 |
input · no output |
| reboot_compute_instance Reboot a running compute instance.
Requires: API key with write scope.
|
input · no output |
| recover_backup_database Recover exactly one absent database from a completed backup.
The operation refuses an existing database and can never select ``all``.
It returns immediately; poll ``get_database_r |
input · no output |
| recover_backup_files Start a selected-file recovery and return its durable ID immediately.
Existing destination paths are never replaced. The operation is
asynchronous; poll ``get_file_recovery`` with |
input · no output |
| register_domain Register a new domain with WHOIS contact info and Stripe billing.
First request a quote (quote_only=True), present registration_cad,
privacy_cad, total_cad, term and privacy choic |
input · no output |
| remove_firewall_rule 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 |
input · no output |
| remove_ftp_account 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 |
input · no output |
| remove_mailbox_alias Remove one alias, preserving the mailbox and other aliases. |
input · no output |
| remove_port_forward Stop publishing a port, by the rule id from list_port_forwards.
Requires: API key with write scope.
Args:
slug: Site identifier
forward_id: Rule id (uuid) from list_port_ |
input · no output |
| reply_support_ticket 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", ...}
|
input · no output |
| request_api_key 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 |
input · no output |
| resend_registrant_verification Request OpenSRS verification email to its existing owner contact.
Requires a write-scope API key and an owned registered/transferred domain.
Call only when the customer requests a |
input · no output |
| reset_email_mailbox_password Reset password and terminate IMAP/POP sessions. Requires email:signon. |
input · no output |
| reset_mailbox_password Reset a mailbox password (generated when omitted, returned ONCE).
Requires: API key with write scope.
Returns:
{"email", "password", "message"}
|
input · no output |
| restore_backup 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 |
input · no output |
| restore_mailbox Restore a uniquely identifiable soft-deleted mailbox under its original address. |
input · no output |
| revoke_api_key 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)
|
input · no output |
| revoke_smtp_relay Revoke an SMTP relay credential (immediate at the relay).
Requires: API key with write scope.
Returns:
{"relay_id", "revoked": true}
|
input · no output |
| rollback_snapshot 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 |
input · no output |
| rotate_email_key Rotate the current email-only key with overlap, preserving scope and expiry. |
input · no output |
| rotate_key Rotate an API key, optionally keeping the old key valid for up to 1,440 minutes.
Creates a new key with the same name, scopes, and rate limits.
The new key is returned once — stor |
input · no output |
| run_malware_scan 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 |
input · no output |
| scale 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
|
input · no output |
| schedule_snapshot 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 |
input · no output |
| search_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 |
input · no output |
| set_api_key Set your BorealHost API key for this session.
Call this if you already have an API key (from checkout completion,
the BorealHost panel, or a container claim). All subsequent tool |
input · no output |
| set_backup_retention 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 |
input · no output |
| set_domain_usage 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 |
input · no output |
| set_force_https Enable or disable the HTTP→HTTPS redirect for a site.
Requires: API key with write scope.
Returns:
{"site", "force_https": true|false, "message"}
|
input · no output |
| set_mailbox_aliases Replace the complete alias list idempotently (maximum 2,000). |
input · no output |
| set_site_nginx_snippet 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 |
input · no output |
| set_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 |
input · no output |
| setup_email 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 |
input · no output |
| snapshot_compute_volume 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 |
input · no output |
| ssl_info 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:
|
input · no output |
| ssl_renew Force SSL certificate renewal via certbot.
Requires: API key with write scope.
Args:
slug: Site identifier
Returns:
{"renewed": true, "expires_at": "iso8601"}
|
input · no output |
| start_compute_instance Start a stopped compute instance.
Requires: API key with write scope.
|
input · no output |
| stop_compute_instance 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.
|
input · no output |
| switch_php 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: |
input · no output |
| terminate_compute_instance 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 |
input · no output |
| test_webhook 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"}
|
input · no output |
| toggle_module 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_ |
input · no output |
| transfer_out_domain 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 |
input · no output |
| update_account 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 |
input · no output |
| update_checkout 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 |
input · no output |
| update_email_domain Set mailbox_limit, alias_limit, quota_gb, smtp_sent_limit, services or language. |
input · no output |
| update_mailbox Set display_name, quota_gb, smtp_sent_limit, label, services or suspended.
Suspension disables client access and outbound SMTP while preserving receipt.
|
input · no output |
| upload_file 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 |
input · no output |
| upload_ssl_cert 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 |
input · no output |
| 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 |
input · no output |
| wp_check_updates 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 |
input · no output |
| wp_update_all 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
|
input · no output |
| write_file 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 |
input · no output |
Verify it yourself
npx teppi-check https://borealhost.ai/mcp/curl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1FZ21SEHW58JEZNVB5TH19R