Skip to main content
This page lists 11 tools. Each tool shows only to members whose role grants its access. The descriptions are the text that the MCP server sends to AI clients.

List sites

List the workspace sites (landing pages) with output_type, public_url, and updated_at. Every saved site is public. The primary site is the one at the root URL. Read one site with roofkit.sites.get. Arguments This tool takes no arguments.

Create site

Create a site (landing page) from the Builder defaults. It is public at once at public_url and counts toward the plan site limit. Change it with roofkit.sites.update. Visual and block editing use roofkit.sites.editor.handoff. Arguments
string
required
string

Open site editor

Return the Builder URL for visual edits, content blocks, quiz questions, adding or removing steps, and site delete. Builder saves are live at once. Arguments This tool takes no arguments.

Open custom domain settings

Return the custom domain Settings URL to connect a domain, change its DNS, or remove it. Cloudflare tokens stay in the app. Read the domain state with roofkit.domains.status.get. Arguments This tool takes no arguments.

Get email branding

Read the workspace email settings: accent color, header style, logo override, and the template copy per template and locale, plus whether the plan and the rollout let the workspace edit them and the brand that emails use now. Change them with roofkit.branding.email.update. Arguments This tool takes no arguments.

Get site

Get one site (landing page): name, slug, outputs, settings (copy and theme), estimate and assessment settings, steps (order and custom names), public_url, builder_url, and updated_at. No landing_id reads the primary site. Send updated_at as expected_updated_at to roofkit.sites.update. Arguments
string
A site id from roofkit.sites.list.

Update site

Change one site: name, slug, output_type, copy and theme (updates), estimate_settings, assessment result settings, the order of its steps, and the names of its custom steps. Only the fields you send change. Saved changes are live at once on the public site: a RoofKit site has no draft or publish step. Read the site with roofkit.sites.get first and send its updated_at as expected_updated_at. A newer save answers CONFLICT, so read again and retry. To add or remove steps, edit questions or blocks, or delete a site, use roofkit.sites.editor.handoff. Requires an idempotency key. Arguments
string
required
A site id from roofkit.sites.list.
string
required
updated_at of the last roofkit.sites.get.
string
required
string
At most 200 characters.
string
A new slug moves the public URL of a site that is not primary. The old URL stops working. At most 200 characters.
string
combined runs AI visualization and the Budget Estimate. A new output type can change the steps. Allowed values: estimate, ai_visualization, conversion_assessment, combined.
object
Copy and theme fields, with the keys of settings in roofkit.sites.get. A named theme_preset cannot come with colors, fonts, or border_style.
object
Budget Estimate price per roofing square. Only for a site with the estimate output.
object
Result settings of a conversion assessment site. Questions stay in the Builder.
string[]
Every current step id of steps.order, once each, in the new order. landing stays first, result stays last, and material, shape, and color keep their order.
object
New names of custom steps, by step id. Built-in steps keep their names.

Clone site

Copy a site with its settings, content blocks, lead form, and form fields. No source_landing_id copies the primary site. The copy is a new public site at once, at its own public_url, and counts toward the plan site limit. Requires an idempotency key. Arguments
string
required
string
The site to copy. Default: the primary site.
string
Default: Copy of <source name>. At most 200 characters.
string
Default: made from the name. At most 200 characters.

Set primary site

Make one site the primary site. The primary site is what the workspace root URL and the custom domain root serve, and the change is live at once. The site that was primary stays public at its /l/<slug> URL. Confirm with the user first. Arguments
string
required
A site id from roofkit.sites.list.

Get custom domain status

Read the custom domain of the workspace: hostname, subdomain, DNS and SSL state, verification dates, the recommended CNAME, and whether it serves the sites now. The verification token is never returned. Connect a domain or change DNS with roofkit.domains.handoff. Arguments This tool takes no arguments.

Update email branding

Change the workspace email settings with a partial update: accent color, header style, an HTTPS logo override, and the copy of the lead_result, new_lead_alert, and follow_up templates in en and es. The server merges the update. A field you leave out keeps its value, and null clears a value back to the RoofKit default. Emails sent after the call use the new settings. The plan and the rollout must allow email settings: see access.can_edit in roofkit.branding.email.get. Arguments
string | null
string | null
string | null
object