Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,533Letters: 13Defects: 1,322counted 4 min ago
teppi

MCP serverai.borealhost/mcp

Agent-native web hosting — deploy sites, manage DNS, register domains, scale infrastructure
UNRATEDActivestreamable-httpborealhost.ai

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

The tools this server lists, read out of the definition it returned
ToolSchema
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 yourselfnpx teppi-check https://borealhost.ai/mcp/curl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1FZ21SEHW58JEZNVB5TH19R