These tools change release routing, custom domains, or the platform-generated widget. Include the selected organization_id when required. Inspect the current site before changing configuration and verify the resulting public hostname afterward.
Release workflow#
| Tool | Required arguments | Optional arguments | Returns |
|---|---|---|---|
configure_release_workflow |
site_slug string, enabled boolean |
— | Updated site view with release_workflow. |
promote_deploy |
site_slug string |
deploy_id integer or to_sequence integer |
site, environment: production, deploy_id, sequence, live_url. |
Enabling independent releases makes automated uploads default to staging. Explicit MCP deploys can select staging, production, or both when valid. A pricing-managed standalone site needs the eligible Pro feature. Companions cannot enable this workflow.
Promotion requires an active workflow, an active production custom domain, and a processed live deploy. If no identifier is supplied, it uses the current staging deploy. Prefer one explicit identifier for the release you reviewed. Promotion materializes generated discovery resources for the current production origin without rebuilding the source artifact.
{ "site_slug": "example-site", "deploy_id": 123 }
Send this to promote_deploy only for the reviewed target. Inspect live_url and check the actual content. release_workflow_disabled, production_domain_required, and deploy_not_ready require configuration or processing changes before another attempt.
Domain tools#
| Tool | Required arguments | Optional arguments | Returns |
|---|---|---|---|
set_custom_domain |
site_slug, domain string |
include_apex boolean, default false |
Domain status view and check_queued: true. |
check_domain |
site_slug string |
domain string, refresh boolean |
Domain status view and check_queued. |
domain is a hostname such as www.example.com or ai.example.com. include_apex additionally configures the root-domain redirect and must be an intentional choice. Use the exact returned records; do not copy another site's infrastructure target.
A domain view contains id, hostname, url, status, headline, cert_status, cloudfront_status, apex_redirect_enabled, apex_status, last_checked_at, error, and next. checks contains ownership_verified, dns_target_valid, ssl_active, http_reachable, and apex_http_reachable. Each dns_records item has type, name, value, and purpose.
refresh: true queues a new check; it does not wait for propagation or certificate issuance. The site's Domains screen can show ownership-verification TXT details that are not included in the MCP dns_records array. Consult that screen when ownership remains pending.
The custom-domain mutation does not manage companion-kind sites; use the companion's organization integration flow with support when needed. See domain setup and companion domains.
Widget configuration#
configure_widget requires site_slug string and enabled boolean. Optional config is an object with only these supported fields:
| Field | Type and constraints |
|---|---|
css_path |
Absolute HTTPS URL to deployed widget-scoped CSS. |
chat.button_text |
String, at most 80 characters. |
chat.intro_text |
String, at most 300 characters. |
chat.button_text_color |
Hex color: #RGB, #RGBA, #RRGGBB, or #RRGGBBAA. |
{
"site_slug": "example-site",
"enabled": true,
"config": {
"css_path": "https://example-site.answer.cloud/assets/answercloud-chat.css",
"chat": { "button_text": "Ask a question", "intro_text": "How can we help?" }
}
}
Omitting config preserves stored customization while toggling enabled. Supplying config replaces the stored object; include all intended existing settings. {} explicitly clears customization while preserving the supplied enabled flag. This restricted hosted tool contract differs from the broader external window.aeoSettings object.
Returns include site_slug, enabled, config, and pages_refreshed, with next when a redeploy is needed. widget_invalid_config means fix the supplied values. widget_refresh_failed means settings were saved but live refresh failed; do not assume the save was rolled back. Verify the theme asset, launcher, and iframe, then use the advised refresh/redeploy path.
See widget appearance and embed settings.