warpweb-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@warpweb-mcp Build a website for Oceanview Dental in Miami"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
warpweb-mcp
Official MCP server for the Warpweb API — research, build, and deploy AI-generated websites from any MCP-compatible client (Claude Desktop, Claude Code, Cline, Cursor, etc.).
You: "Build a website for Brookside Plumbing in Austin TX, contact owner@brooksideplumbing.com."
Claude: I'll use the warpweb create_site tool.
[tool call → siteId returned, build started]
Site queued. Real builds take 3-8 minutes. I'll poll status...
[tool call → get_site]
...complete. Live at https://brookside-plumbing-a1b2c3.warpweb.appOne POST → research → build → deploy. Warpweb pulls Google Places data (hours, photos, reviews, service area), writes vertical-matched copy, generates a design, builds a multi-page site, adds SEO (meta tags, sitemap, Schema.org JSON-LD), and deploys to a free *.warpweb.app subdomain. Best for service-based local businesses (trades, clinics, salons, agencies, restaurants, real estate).
Quickstart
1. Get an API key
Sign up at warpweb.ai, then issue a key at warpweb.ai/app. Keys look like wwk_.... You get 520 free credits on signup — enough for one solid build plus a few revisions, no card required.
2. Add to your MCP client
Claude Desktop — edit claude_desktop_config.json:
{
"mcpServers": {
"warpweb": {
"command": "npx",
"args": ["-y", "warpweb-mcp"],
"env": {
"WARPWEB_API_KEY": "wwk_your_key_here"
}
}
}
}Claude Code — add via the MCP UI or claude mcp add:
claude mcp add warpweb npx -y warpweb-mcp --env WARPWEB_API_KEY=wwk_your_key_hereCline / Cursor / others — same shape: command npx, args ["-y", "warpweb-mcp"], env WARPWEB_API_KEY. Any client that speaks MCP stdio works.
3. Restart your client and try a prompt
"Build a website for Acme Plumbing in Austin TX, contact owner@acmeplumbing.com.
Emphasize 24/7 emergency service."The client picks create_site from the tool list, fires the build, and polls until the deploy URL is live.
Related MCP server: Webflow MCP Server
Tools exposed
Ten tools, mapping 1:1 onto the Warpweb V1 REST API. Full request/response shapes live in docs.warpweb.ai.
Businesses
search_businesses— disambiguate a business name against Google Places before building. Call this first whenever the user gives only a name ("Acme Plumbing"); going straight tocreate_sitewill silently pick the wrong match for common names. Returns up to 5 candidates withplaceId, address, phone, rating — pass the chosenplaceIdtocreate_sitefor an exact match. Free.
Sites
create_site— kick off an end-to-end build. ReturnssiteIdimmediately; real builds take 3–8 minutes. Pollget_siteor subscribe to thesite.completelifecycle webhook.get_site— fetch one site's current status. Use this to poll a build (every 2–5 seconds) whilestatusisgenerating.list_sites— list every site on the account.refresh_site— bump the inactivity timer on a free-subdomain site (auto-pauses after 7 days). Idempotent and free.
Revisions
create_revision— conversational edit of a deployed site. Send a plain-English prompt; Warpweb routes small surgical edits or full structural changes automatically. Async, returnsrevisionId.
Domains
check_domain— check availability + price for a candidate domain. Free, returns a few related suggestions.register_domain— buy a domain via Cloudflare Registrar and attach it to a site. Must callcheck_domainfirst; thepricefield must match the cents returned there.attach_domain— for customer-owned domains already registered elsewhere. Returns the CNAME target to set at their existing registrar.
Webhooks
configure_form_webhook— point form submissions on a site at your HTTP(S) endpoint. Each delivery is HMAC-SHA256 signed; the signing secret is returned once on first configure or rotate — capture it immediately.
The LLM gets the full input schema (required/optional fields, types, descriptions) at runtime via MCP — no need to memorize parameters.
Example prompts
"Build a website for [Business Name] in [City, State], owner email [email]."
"Check if
<domain>is available and what it would cost.""On site
<siteId>, change the headline to mention free estimates and add an FAQ about emergency service.""Attach the domain
acmeplumbing.comto site<siteId>— the customer already owns it at GoDaddy.""Configure form submissions on site
<siteId>to POST tohttps://my-crm.example.com/leads."
Pricing
520 credits free on signup (with email verification).
Credit packs, one-time Stripe Checkout:
Starter — $5 for 100 credits
Builder — $25 for 600 credits (16% bulk discount)
Pro — $100 for 2,800 credits (29% bulk discount)
Active Site subscription — $10/site/month, only on sites with a custom domain attached. Free-subdomain sites have no monthly cost.
Per-call directional credit costs:
Tool | Cost |
| ~200–500 credits (billed at end-of-build against actual AI usage) |
| ~20–100 credits |
| 5 credits |
| 50 credits + registrar pass-through |
| Free |
Troubleshooting
Check WARPWEB_API_KEY env var (401)
The key in your client config is missing, malformed, or revoked. Issue a fresh one at warpweb.ai/app. Keys start with wwk_.
Add credits at warpweb.ai/app/credits (402)
Account balance is 0 and auto-refill is off. Add credits or enable auto-refill on the dashboard.
Daily quota exceeded (429)
Per-day site / revision / domain limits exist to protect against runaway loops. The error message includes the quota object with used, limit, and resetDescription.
queue_full: true (429 on revisions)
Each site has a revision queue depth of 3 (1 running + 2 waiting). Wait for the current revision to land before queueing more.
Tool list is empty when client connects
WARPWEB_API_KEY isn't set in the client config's env block. The server starts in NO-TOOL mode so the connection still completes — set the env var and restart your client.
Want to test against staging?
Set WARPWEB_API_URL to point at a different base URL (default is https://api.warpweb.ai/v1).
When NOT to use Warpweb
Your business doesn't have a Google Places listing. Warpweb works, but the result reads more generic — research falls back to your
businessDescription. Calibrated for service-based local businesses (trades, clinics, salons, agencies, restaurants, real estate).You want hand-coded templates with pixel-perfect control. Warpweb generates layouts; it doesn't take a Figma spec as input. Use Next.js / Astro yourself for that.
You need a drag-and-drop builder UI. Warpweb is API-only.
Static personal sites that never change. Cloudflare Pages alone is cheaper.
Links
API reference: docs.warpweb.ai
Marketing + signup: warpweb.ai
API key management: warpweb.ai/app
Machine-readable reference (for LLM agents): warpweb.ai/llms-full.txt
License
MIT — see LICENSE.
Contributing
Issues + PRs welcome at github.com/northbeamsoftware/warpweb-mcp. New tools should map 1:1 onto public V1 endpoints; don't surface internal Warpweb concepts.
Available Tools
10 toolsattach_domainAttach an external domain the user already ownsA
Attach a domain the customer already registered elsewhere (e.g. GoDaddy, Namecheap) to a deployed Warpweb site. Returns the CNAME target the customer must set at their existing registrar, plus copy-paste DNS instructions for apex + www. Domain status is dns_pending until propagation completes (usually minutes, occasionally up to 48 hours). Use this when the customer says 'I already own the domain' — versus register_domain for new purchases through Cloudflare Registrar. Cost: 5 credits. Custom-domain sites become Active Sites ($10/site/month) for always-on hosting + SSL + monitoring.
Inputs: domain (required), siteId (required).
check_domainCheck domain availability + priceA
Check whether a domain is available to register through Warpweb and what it costs. Returns availability + price_cents for the requested domain plus a few related suggestions (name variations, regional variants). This is step 1 of a two-call flow: use this to discover a price, then pass the EXACT price_cents value into register_domain — the price must match or the registration call will fail. Free; no credits consumed; no side effects.
Inputs: domain (required), city, industry.
configure_form_webhookConfigure where a site sends form submissionsA
Configure the URL Warpweb POSTs to whenever a form is submitted on this site. Each delivery is signed with HMAC-SHA256 (header X-Warpweb-Signature over the raw request body) using a site-scoped secret. IMPORTANT: the signing secret is returned in secret_issued ONLY on the first configure or when rotate_secret: true is passed — store it immediately, it is not retrievable later. Re-configuring with the same URL is idempotent (no new secret issued). Before this is configured, form submissions deliver as plain email to the site's contact email instead. Most API customers want the webhook path for structured JSON + verification. Free to configure; free to deliver.
Inputs: siteId (required), webhook_url (required), rotate_secret.
create_revisionEdit a Warpweb site with a natural-language promptA
Conversational edit of a deployed site. Send a plain-English prompt and Warpweb re-deploys. Works for small surgical edits ("make the hero photo darker", "change the headline to ...", "swap the phone number") and for structural changes ("add an FAQ section about emergency repairs", "move the service area below testimonials", "restructure the homepage around 3 service categories"). The right size of edit is chosen automatically based on scope — you just describe what you want. ASYNC: returns a revisionId and queue_position immediately. Real revisions take 30s–4min. Poll get_site until updated_at changes, OR subscribe to site.revision_complete / site.revision_failed / site.revision_clarification_needed lifecycle webhooks for push delivery. If the agent needs clarification, the clarification webhook fires with a question field; reply by calling create_revision again with the answer in the prompt. Revisions inside the same site queue serially (depth cap 3 — 1 running + 2 waiting). If you hit queue_full: true, wait for the current edit to land before queuing more. Cost: ~20–100 credits per revision, billed against actual AI usage at the end.
Inputs: prompt (required), siteId (required).
create_siteCreate a Warpweb siteA
Kick off an end-to-end website build for a real business. Warpweb auto-researches the business (Google Places: hours, address, phone, photos, reviews, service area, category, services), writes copy in a voice matched to the vertical, picks photos, generates a vertical-aware design, builds a multi-page site (home / about / services / contact + vertical-specific sections), adds SEO (meta tags, sitemap, Schema.org JSON-LD), and deploys to a free *.warpweb.app subdomain. Required inputs you must collect from the user: contactEmail only (where form submissions go). placeId should come from a prior search_businesses call, NOT from asking the user. DO NOT ask the user about: service area, services offered, business hours, phone, address, business description, photos, FAQs, testimonials, target audience, target demographics, "anything to emphasize," design style, tone, or any other content questions. Warpweb auto-researches all of that from Google Places via the placeId — asking the user wastes their time and produces a worse result than the engine's research (which uses up-to-date Places data, reviews, and photos). Optional ownerPrompt is the one place to capture user voice direction, but only if the user volunteers it unprompted (e.g. "make it sound friendly" or "emphasize 24/7 service"). Do not solicit it. If you arrive here without a placeId, go back and call search_businesses first. The auto-resolution fallback (using businessName + businessLocation without placeId) is a coin flip for common names and will silently build a site for the wrong business. Only fall back if search_businesses failed twice and the user explicitly approved proceeding anyway. ASYNC: this call returns a siteId and status: "generating" IMMEDIATELY. Real builds take 3–8 minutes. After calling this, EITHER poll get_site every 2–5 seconds until status is complete or failed, OR subscribe to the site.complete / site.failed lifecycle webhooks on warpweb.ai/app for push delivery (preferred). Best for service-based local businesses (trades, clinics, salons, agencies, restaurants, real estate) that have a Google Places listing — that's what Warpweb is calibrated for. SaaS or fully-remote companies still work, but the result reads more generic. Cost: ~200–500 credits, billed at end-of-build against actual AI usage. Failed builds are free.
Inputs: businessName (required), contactEmail (required), logoUrl, designStyle, +5 more.
get_siteGet a Warpweb siteA
Fetch the current record for one site by id. Use this to poll the status of a build after create_site (or a create_revision). Returns the full site row including status, generation_phase, generation_message, and (when complete) deployment_url. Polling pattern: call every 2–5 seconds; stop when status is complete or failed. status values: generating | complete | failed | research_review. Returns 404 if the site does not exist OR is not owned by your account.
Inputs: siteId (required).
list_sitesList your Warpweb sitesA
List every site owned by the calling account. Returns an array of site rows (id, slug, business_name, status, deployment_url, created_at, updated_at, etc.). Free, not metered.
Inputs: no named parameters.
refresh_siteRefresh a free-subdomain Warpweb siteA
Free *.warpweb.app subdomain sites auto-pause after 7 days of inactivity. This call bumps last_refreshed_at = now() and, if currently paused, restores the live bundle on Cloudflare Pages. It's idempotent and free — safe to retry. Custom-domain sites stay live regardless and do not need this call (they pay $10/site/month for always-on hosting).
Inputs: siteId (required).
register_domainRegister a new domain and attach it to a siteA
Purchase a domain via Cloudflare Registrar at-cost and attach it to a deployed Warpweb site in one shot. DNS + Pages custom-domain wiring happen automatically. PRECONDITION: call check_domain first to get a price. The price you pass here must EXACTLY match the price_cents returned by check_domain — this guards against price-drift surprises. Price cap: $50/yr ($5000 cents). The pagesProjectName field is the site slug returned by create_site (e.g. "acme-plumbing-a1b2c3"). Cost: 50 credits + the registrar pass-through fee (in cents). Custom-domain sites also become Active Sites ($10/site/month) for always-on hosting + SSL + monitoring.
Inputs: price (required), domain (required), siteId (required), pagesProjectName (required).
search_businessesFind the right Google Places match for a business nameA
Search Google Places for a business by name. Returns up to 5 candidates. Free, no credits, no side effects. REQUIRED before create_site whenever you have only a business name (no placeId already in hand). Common names like "Acme Plumbing" or "Pizza Place" will silently resolve to the wrong business if you skip this step. Do NOT skip search just because you're confident about the name — the customer's local context isn't enough to guarantee Google Places ranks the right one first. Each result includes placeId, name, address, phone, rating, userRatingCount, and businessType. Present the top 2–3 results to the user (city + rating count) and ask which one. If exactly one result comes back, you can proceed without confirmation. If multiple come back and you have high confidence from other user context, you may pick the one with the highest userRatingCount, but only call that out — never silently auto-pick. Canonical flow: 1. search_businesses({ query, location? }) → user picks (or single result auto-picks) 2. create_site({ businessName, contactEmail, placeId: }) On transient failure (timeout, 5xx, network error): retry ONCE. If the retry also fails, tell the user "the disambiguation lookup is temporarily unavailable" and ASK whether to proceed without a placeId (in which case create_site will auto-resolve from businessName + businessLocation — coin flip for common names). Do NOT silently fall through to gathering create_site fields from the user — that wastes their time and bypasses the safety of disambiguation.
Inputs: query (required), location.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool has a clearly distinct purpose: listing vs. retrieving sites, searching vs. creating, domain check vs. register vs. attach, and webhook configuration. Even the related create_site and create_revision are well separated by their descriptions (initial build vs. edit).
All tool names follow a consistent verb_noun pattern with lowercase snake_case: list_sites, search_businesses, create_site, get_site, refresh_site, create_revision, check_domain, register_domain, attach_domain, configure_form_webhook. No mixed conventions or vague verbs.
10 tools is well-scoped for a website management server. Each tool covers a distinct operation in the site lifecycle, domain management, and configuration, with no redundant or token tools.
The surface covers the full creation flow (search, create, poll), revisions, refresh, domain registration/attachment, and webhook setup. Missing delete/archive site and domain detach operations are notable but minor gaps that do not break core workflows.
Maintenance
Related MCP Connectors
Build, edit and run real hosted websites from your AI - content, SEO, menus, store, rollback.
Build, change and publish a business website from your AI assistant, with sign-in and saved data.
Create, update, and publish real hosted websites from your agent via the Aveiro API.
Build, validate, deploy — HTTP APIs, cron jobs, webhooks and MCP tools — from your AI client.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI agents to build, edit, and publish live websites with hosting, database, auth, and domains via the Model Context Protocol.13132 npm1MIT
- AlicenseCqualityDmaintenanceEnables AI agents to interact with Webflow APIs for managing sites, pages, components, CMS collections, and custom code.324,083 npmMIT

Zarla MCP serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI assistants to build, edit, preview, and publish websites through natural language, including managing pages, designs, products, and site publishing.MIT
@seldonframe/mcpofficial
AlicenseNot gradedqualityCmaintenanceEnables MCP-compatible agents to build and operate complete AI front offices for local businesses—branded websites, booking, intake, CRM, and AI agents in one workspace.67AGPL 3.0