MCP Tool Reference

The thin.host MCP server exposes 5 tools for domain provisioning. All tool descriptions are written for agent reasoning — status fields are enums, not prose.

provision_domain

Provision a new custom domain for an AI-generated site or app.

Parameters

NameTypeRequiredDescription
domainstringyesCustom domain (e.g. "mysite.com")
origin_urlstringyesCurrent URL where the site is hosted
user_emailstringyesEnd user's email for billing
idempotency_keystringnoPrevent duplicate provisions on retry

Returns

{
  "provision_id": "uuid",
  "status": "pending_payment",
  "dns_instructions": {
    "type": "CNAME",
    "name": "mysite.com",
    "value": "cname.thin.host",
    "human_readable": "Set a CNAME record for mysite.com pointing to cname.thin.host"
  },
  "claim_url": "https://thin.host/claim/abc123...",
  "expected_completion_seconds": 300
}

check_domain_status

Check current provisioning status. Call this to poll until ready: true.

Parameters

NameTypeRequired
provision_idstringyes

Returns

{
  "status": "active",
  "dns_status": "resolved",
  "ssl_status": "active",
  "payment_status": "paid",
  "ready": true
}

update_origin

Change where a domain points to. Use when the user redeploys to a new URL.

Parameters

NameTypeRequired
provision_idstringyes
new_origin_urlstringyes

Returns

{ "status": "active", "updated_at": "2026-04-25T02:00:00Z" }

release_domain

Tear down a provisioned domain. Not reversible.

Parameters

NameTypeRequired
provision_idstringyes

Returns

{ "status": "released", "released_at": "2026-04-25T03:00:00Z" }

list_domains

List all domains provisioned through your platform.

Parameters

NameTypeRequiredDefault
status_filterstringnoall
limitintno50

Returns

{
  "domains": [ { "id": "...", "hostname": "...", "status": "...", "ready": true }, ... ],
  "total": 42,
  "has_more": false
}

Error Format

All tools return structured errors when something goes wrong:

{
  "error_code": "domain_taken",
  "error_message": "The domain mysite.com is already provisioned",
  "agent_should_retry": false,
  "suggested_next_tool_call": "Choose a different domain"
}