Create website
create_websiteBuild a real website, with a logo, for a business on a domain in the user's Atom account, and optionally put it live. Use when the user wants to launch a website, including right after registering a domain.
MANDATORY flow:
BEFORE any payment, call with confirm=false and the description (no domain needed). This costs nothing. It refuses sites Atom won't build (error content_not_allowed: tell the user the message and do NOT register a domain for it) and returns questions[] for details still missing, such as address and opening hours for a business people visit.
Ask the user those questions ONCE, in one message, together with any registrant contact details the registration needs. If they skip something, carry on: that section is left out. Never invent answers.
Register the domain and wait until it completes (for USDC: get_coinbase_payment_status reports completed).
Call with confirm=true, the domain, business_name exactly as the user wrote it (domains lose their capitals and spaces, and this is the text on the logo), and answers{} keyed by the question ids. Set publish=true only if the user asked for the site to go live; otherwise it stays a private preview.
Keep calling get_website_status until stop_polling is true, then give the user the live_url or preview_url, the edit_url, and show the logo_url.
If this reports error 'listed_for_sale', ask the user, because going live removes the listing; if they agree, retry with confirm_delist=true.
Only the owner can open preview_url. Do not describe the logo as unique or safe to trademark: screen_trademark_conflicts checks a name, not artwork.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"description": "<description>"
},
"name": "create_website"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| No | Contact email to show on the site, if the user gave one. | ||
| phone | No | Contact phone to show on the site, if the user gave one. | |
| domain | No | Required when confirm=true. A domain active in the user's Atom account. | |
| answers | No | Answers keyed by question id: audience, offer, difference, proof, goal, address, service_area, hours, booking (with any booking link), socials (profile links or handles with the network named), shop. | |
| confirm | No | false checks the idea and returns questions; true builds the site. | |
| publish | No | true puts the site live on the domain. Only when the user asked for that. | |
| logo_url | No | A full https link to the logo the user already has. Skips making one. | |
| site_type | No | website | |
| logo_style | No | Optional style for the logo in a few words, such as hand drawn. | |
| description | Yes | What the business does and what the site is for, in the owner's words. At least 20 characters. | |
| business_name | No | Required when confirm=true. The name exactly as the user wrote it, such as NY Warm Buns. | |
| confirm_delist | No | The user agreed to remove the domain from sale on Atom. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| stage | Yes | ||
| domain | No | ||
| message | No | ||
| success | Yes | ||
| presence | No | local, online or both. | |
| can_build | No | ||
| next_step | No | ||
| questions | No | ||
| stop_polling | No | ||
| business_name | No |