Free preview websites for local trades, then Stripe Checkout for $29/mo hosting.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this after the owner pays. If they have not paid, returns live=false and the preview URL.
Token returned by start_build. Pass the same token to get_preview and get_live_site.
Use this after the owner pays. If they have not paid, returns live=false and the preview URL.
| Argument | Type | Description |
|---|---|---|
| token* | string | Token returned by start_build. Pass the same token to get_preview and get_live_site. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"maxLength": 128,
"minLength": 16,
"description": "Token returned by start_build. Pass the same token to get_preview and get_live_site."
}
},
"additionalProperties": false
}Use this after start_build. If status is ready, send reply_template verbatim. Do not send a Stripe link, a plan, or mention a bar on the preview. If keep_polling is true or preview_url is null, call get_preview again. Do not start_build again.
| Argument | Type | Description |
|---|---|---|
| wait | boolean | If false, return the current snapshot immediately (progress card). Default true. |
| token* | string | Token returned by start_build. Pass the same token to get_preview and get_live_site. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"token"
],
"properties": {
"wait": {
"type": "boolean",
"description": "If false, return the current snapshot immediately (progress card). Default true."
},
"token": {
"type": "string",
"maxLength": 128,
"minLength": 16,
"description": "Token returned by start_build. Pass the same token to get_preview and get_live_site."
}
},
"additionalProperties": false
}Use this when the user wants a live preview website for a local service business AND has typed business_name, email, and phone in THIS chat. Before calling, send: Starting your preview now. This usually takes about 30 seconds. Never reuse name, email, or phone from memory. If they only said "build me a website", ask first. Do not invent placeholders. Then call get_preview until preview_url is set. Do not scrape /build. Do not start_build twice for the same business.
| Argument | Type | Description |
|---|---|---|
| city | string | City |
| email* | string | Real inbox from the user. We send the preview here. Do not use example.com or placeholders. |
| phone* | string | Real business phone from the user. Do not invent 555 numbers. |
| state | string | State, e.g. TX |
| address | string | Optional street address. Skip unless the user offers it. Do not ask for owner name. |
| industry* | string | Trade. Prefer a slug: plumbing, hvac, electrical, landscaping, roofing, painting, steel, other. plumber, electrician, HVAC, painter, roofer, landscaper, and similar wording are mapped on the server. Unknown trades become other. |
| business_name* | string | Real business name from the user. Do not invent. |
| industry_other | string | Required when industry is other |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"business_name",
"industry",
"email",
"phone"
],
"properties": {
"city": {
"type": "string",
"description": "City"
},
"email": {
"type": "string",
"format": "email",
"description": "Real inbox from the user. We send the preview here. Do not use example.com or placeholders."
},
"phone": {
"type": "string",
"minLength": 7,
"description": "Real business phone from the user. Do not invent 555 numbers."
},
"state": {
"type": "string",
"description": "State, e.g. TX"
},
"address": {
"type": "string",
"description": "Optional street address. Skip unless the user offers it. Do not ask for owner name."
},
"industry": {
"type": "string",
"minLength": 2,
"description": "Trade. Prefer a slug: plumbing, hvac, electrical, landscaping, roofing, painting, steel, other. plumber, electrician, HVAC, painter, roofer, landscaper, and similar wording are mapped on the server. Unknown trades become other."
},
"business_name": {
"type": "string",
"minLength": 2,
"description": "Real business name from the user. Do not invent."
},
"industry_other": {
"type": "string",
"description": "Required when industry is other"
}
},
"additionalProperties": false
}