warpweb-mcp
Click on "Install 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-mcpBuild 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.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | The domain to attach (e.g. "acme-plumbing.com"). Must be owned by the customer. | |
| siteId | Yes | Site UUID to attach the domain to. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and does an excellent job: it discloses the return value (CNAME target + DNS instructions), the status flow (`dns_pending` until propagation), cost (5 credits), and ongoing billing implications (Active Sites $10/site/month). This goes well beyond a minimal description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences and covers action, return value, status, usage guidance, and cost. Each sentence adds value, though it is slightly verbose with the Active Sites detail. Structurally front-loaded with the main action, then supporting details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully covers the tool's purpose, return value, status behavior, cost, and alternative. It is complete enough for an agent to select and invoke the tool correctly, especially given the detailed schema and no output schema (return value is described).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are documented in the schema. The description adds no extra parameter-level detail beyond the schema, which is acceptable per the baseline, but it does not enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Attach a domain the customer already registered elsewhere') and the resource ('to a deployed Warpweb site'). It explicitly contrasts with `register_domain`, distinguishing from a sibling tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use this when the customer says I already own the domain' and an explicit alternative: 'versus `register_domain` for new purchases through Cloudflare Registrar.' This is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name to bias regional suggestions (e.g. "austin"). | |
| domain | Yes | The domain to check, including TLD (e.g. "acme-plumbing.com"). | |
| industry | No | Industry to bias related suggestions (e.g. "plumbing"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It explicitly states the tool has no side effects, is free, and that the price must match later or registration will fail. It could mention edge cases like invalid domains or response error patterns, but the key behavioral traits are clearly disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, front-loads the core purpose, and every sentence earns its place. It packs the essential usage flow, cost behavior, and side-effect information without redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description explains what is returned (availability, price_cents, suggestions) and how it fits into the broader registration flow. Combined with the schema's 100% parameter coverage, the tool is fully contextualized for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds context about how the domain should include a TLD and that city/industry bias suggestions, but it does not significantly extend beyond the schema. The key price_cents detail is an output, not a parameter, so it does not elevate parameter semantics further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks domain availability and price through Warpweb, and it distinguishes itself from register_domain by explicitly positioning this as step 1 of a two-call flow. It names the specific output (availability + price_cents) and related suggestions, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: it is step 1 of a two-call flow, and the returned price_cents must be passed exactly to register_domain. It also clarifies that it is free, consumes no credits, and has no side effects, helping the agent decide when to invoke this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | Site UUID to configure the form webhook for. | |
| webhook_url | Yes | Your HTTP(S) endpoint that will receive form-submission POSTs. | |
| rotate_secret | No | When true, regenerates the signing secret (invalidates the prior one). Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses HMAC-SHA256 signing, secret issuance only on first config or rotate, idempotency, and the email fallback. Also states the tool is free, covering cost behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with the core purpose, then layering critical caveats in order of importance. Every sentence contributes new information, and the IMPORTANT callout highlights the most critical action for the user.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema and annotations, the description is remarkably complete. It covers the tool's purpose, usage context, security signing, secret lifecycle, idempotency, fallback behavior, and cost. The key response field (secret_issued) is explicitly mentioned, which is essential for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers all three parameters (100% coverage), so baseline is 3. The description adds significant value by explaining the secret_issued response behavior tied to rotate_secret and idempotency with the same URL, going beyond the schema's basic parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool configures the URL to which Warpweb sends POSTs when a form is submitted. It distinguishes itself from sibling tools focused on site creation, refresh, and domain management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains that unconfigured sites fall back to email, and that most API customers want the webhook for structured JSON plus verification. This gives clear context on when to use the tool, though it doesn't name an explicit alternative tool beyond the email fallback.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | Natural-language description of the change. Be specific about what to change and what to leave alone. | |
| siteId | Yes | Site UUID to edit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description proactively discloses async behavior (immediate revisionId/queue_position), 30s–4min timing, serial queue with depth cap, clarification flow, webhook/polling options, and cost. This goes far beyond basic operation, giving the agent full expectations for how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but well-structured: it opens with the core purpose, then walks through async behavior, queue, and cost in a logical sequence. Every sentence adds unique operational information, so the length is justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's async nature, no output schema, and no annotations, the description fully covers the workflow: immediate response, how to track progress (polling/webhooks), how to handle clarification, queue limits, and cost. This is complete for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides 100% coverage for both parameters (siteId and prompt) with meaningful descriptions. The tool description adds context about using the prompt to include clarification answers, but otherwise doesn't enhance parameter semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Conversational edit of a deployed site' with natural-language prompts, and provides specific examples of surgical and structural edits. This distinguishes it from siblings like refresh_site or get_site by focusing on editing via prompt rather than direct actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly conveys when to use it (whenever a user wants to change a deployed site with plain-English instructions), but doesn't explicitly name alternative tools or state exclusions. The 'right size of edit is chosen automatically' suggests it's the go-to for edits, but no alternatives are referenced.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| logoUrl | No | URL to a business logo. Used for branding and color extraction. | |
| designStyle | No | Override the auto-selected design style. Available styles surface in the dashboard. | |
| facebookUrl | No | Public Facebook page URL — used as a research signal. | |
| ownerPrompt | No | Voice/tone direction or anything to emphasize (e.g. "Emphasize 24/7 emergency service"). | |
| businessName | Yes | The business as customers know it (e.g. "Acme Plumbing"). 1–200 chars. | |
| contactEmail | Yes | Email address. Receives form submissions if no webhook is configured, plus a deploy notice. | |
| uploadedPhotos | No | Array of photo URLs to include on the site. | |
| businessLocation | No | City + state/region (e.g. 'Austin, TX'). Strongly recommended — drives local SEO, areas-served copy, and example testimonials. | |
| businessDescription | No | Free-text description of what the business does. Helps when Google Places coverage is thin. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It thoroughly discloses critical behavior: immediate async return of siteId/status, 3–8 minute build time, polling/webhook options, credit cost, failed-builds-are-free policy, and the risk of building for the wrong business if searching fails. This is far beyond minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place. It opens with a high-level action, then structured details, bolded requirements, warnings, and a cost/async addendum. It is long because the tool is complex, yet it avoids fluff and prioritizes mission-critical information. The formatting (bold, paragraph breaks) makes it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the high complexity (9 params, async behavior, fallback risk), the description is remarkably complete. It explains the return value shape (siteId, status), next steps (poll or subscribe), cost, failure policy, and ideal business fit. No significant informational gap remains for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the schema already documents all 9 parameters (100% coverage), the description adds critical operational semantics: contactEmail is the only user-required input, placeId must come from a prior search_businesses call, ownerPrompt should only be captured if voluntarily offered, and businessLocation is strongly recommended for local SEO. This guidance goes well beyond the schema and is essential for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Kick off an end-to-end website build for a real business' and enumerates exactly what the build includes (research, copy, design, multi-page site, SEO, deployment). It naturally distinguishes itself from sibling tools like get_site (which retrieves status) and search_businesses (which supplies the required placeId).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: it names the ideal use case ('Best for service-based local businesses'), instructs when to use search_businesses first, warns against asking the user for content inputs, and explains the async flow with polling alternatives. It also specifies when falling back without a placeId is acceptable, giving clear when-to/not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | Site UUID returned by `create_site`. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries behavioral disclosure. It details the return fields (status, generation_phase, generation_message, deployment_url), enumerates possible status values, explains the polling stop conditions, and documents the 404 behavior for missing or unowned sites. This is rich, honest context beyond mere annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then flows logically into usage, return fields, polling pattern, status values, and error behavior. Every sentence adds necessary information; nothing is filler or repetitive. It is appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description adequately explains what the tool returns and under what conditions. It accounts for the single parameter, lists all relevant statuses, provides a practical polling algorithm, and covers the not-found case. It is complete for a simple site lookup/polling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already provides a clear description for siteId ('Site UUID returned by create_site'), giving a baseline of 3. The tool description adds value by explaining that the id refers to a site record, implying the 'by id' lookup, and clarifying that a 404 occurs if the id is not owned by the account. This enriches parameter meaning without redundancy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches the current record for one site by id, using the specific verb 'Fetch' and resource 'site record'. It distinguishes itself from sibling tools like list_sites (which lists multiple) and create_site (which creates), by focusing on a single site lookup with a clear scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs when to use: to poll build status after create_site or create_revision. It provides a concrete polling pattern with intervals and stopping criteria, and mentions the 404 case for non-existent/unowned sites, offering clear context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral context. It discloses that the operation is a read-only enumeration, returns an array of site rows with key fields, and is free/unmetered. It does not cover authentication or pagination, but for a simple, parameterless list this is reasonable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: one states the action and ownership scope, the other gives return format and cost. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so description compensates by listing return fields. With zero parameters and simple semantics, it fully covers usage. Alternative tools are not referenced, but the description is sufficient for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool accepts zero parameters; schema coverage is 100% by default. Description has no parameters to explain, so baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description starts with 'List every site owned by the calling account' – a specific verb and resource scope, and 'array of site rows' clarifies output. This clearly distinguishes it from singular get_site, search_businesses, and create_site siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No mention of when to use versus siblings like get_site or search_businesses; it only states what it does and that it's free/not metered. The 'every site' phrasing implies broad enumeration, but there are no explicit exclusionary guidelines.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| siteId | Yes | Site UUID to refresh. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and discloses idempotency ('safe to retry'), cost ('free'), and the precise effect (bumps timestamp and restores if paused). It also notes the behavioral difference for custom-domain sites, adding valuable context beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences cover the auto-pause context, the action taken, and the custom-domain exception without unnecessary fluff. Every sentence earns its place and the purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter tool with no output schema, the description is comprehensive: it explains the underlying problem, the action, idempotency, cost, and when it is not needed. This gives an agent all the context required to decide whether to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage for the sole parameter `siteId` ('Site UUID to refresh'). The tool description adds no further parameter details, but none are needed given the schema's clarity, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool refreshes a free-subdomain Warpweb site, specifically bumping `last_refreshed_at = now()` and restoring the live bundle if paused. It distinguishes itself from siblings by focusing on the refresh action rather than creation, listing, or domain operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly explains when to use: for free `*.warpweb.app` subdomain sites that auto-pause after 7 days of inactivity. It also states a clear exclusion: custom-domain sites stay live and do not need this call, with a note about their paid hosting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| price | Yes | Price in CENTS, must match `price_cents` returned by `check_domain`. Cap: 5000 cents ($50/yr). | |
| domain | Yes | Domain to register (must be the same domain you checked). | |
| siteId | Yes | Site UUID to attach the domain to. | |
| pagesProjectName | Yes | The site slug returned by `create_site` (e.g. "acme-plumbing-a1b2c3"). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses pricing (at-cost, 50 credits + pass-through), automatic DNS and Pages wiring, the strict price-match guard, a $50 cap, and the Active Site cost implication. It omits failure scenarios but is otherwise highly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately long but organized with clear sections (precondition, cost, implications). Every sentence adds relevant information and nothing is wasted, though it could be tightened slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema and no annotations, the description thoroughly covers purpose, preconditions, costs, and side effects. It does not describe the return value, which is a minor gap, but the tool context is well understood.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for all four parameters, so the baseline is 3. The description reiterates the price-match requirement and slug source, adding minimal new semantics beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action: 'Purchase a domain via Cloudflare Registrar at-cost and attach it to a deployed Warpweb site in one shot.' It clearly identifies the resource (domain and site) and distinguishes from sibling attach_domain by emphasizing the combined purchase+attach flow with automatic DNS wiring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit precondition: call check_domain first and pass an exact matching price. It also references create_site for the pagesProjectName. However, it does not explicitly name alternatives like attach_domain for already-owned domains, leaving that to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Business name to search for. Free-form text Google Places will search (e.g. "Acme Plumbing", "Mike's BBQ"). | |
| location | No | Optional location hint to narrow the search (e.g. "Austin, TX", "78704", "near downtown Dallas"). Strongly recommended for common names — omitting it lets Google rank by global popularity, which usually picks the wrong business. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the tool is free, has no side effects, returns up to 5 candidates, and can silently resolve to the wrong business if skipped. It also details retry behavior, auto-pick rules, and exact fields returned—highly transparent about behavior and edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average, but every sentence earns its place: it covers the canonical flow, risks, failure handling, and result fields. It is well-structured with clear sections (purpose, requirement, flow, failure). Slightly verbose but not wasteful for a tool that gates a critical workflow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description lists the exact fields returned (placeId, name, address, phone, rating, userRatingCount, businessType), explains how to present results to the user, and covers fallback behavior if the tool fails. Given the tool's complexity and central role in disambiguation, the description fully equips an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value beyond the schema by explaining that 'query' is free-form business text and by strongly recommending 'location' for common names to avoid globally popular wrong matches. It also contextualizes how the parameters interact with the disambiguation purpose, which goes beyond the schema's simple field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search Google Places for a business by name') and resource ('Google Places'), and clearly distinguishes it from sibling tools like create_site and list_sites by framing it as a lookup/disambiguation step. It also specifies the return candidate count, which concretely defines its function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly declares when to use this tool ('REQUIRED before create_site whenever you have only a business name'), provides a canonical flow, and gives alternative handling for failures (retry once, then ask the user about proceeding without a placeId). It also warns against skipping search even when confident, which is strong usage guidance beyond basics.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v0.1.4- First observed
attach_domain - First observed
check_domain - First observed
configure_form_webhook - First observed
create_revision - First observed
create_site - First observed
get_site - First observed
list_sites - First observed
refresh_site - First observed
register_domain - First observed
search_businesses
TDQS
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
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
The website platform for AI agents. One API to build, host, and operate real websites.
Build, edit and run real hosted websites from your AI - content, SEO, menus, store, rollback.
Build and publish websites through AI conversation.
- mcpOAuthapp.aveiro
Create, update, and publish real hosted websites from your agent via the Aveiro API.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI agents to build, edit, and publish live websites with hosting, database, auth, and domains via the Model Context Protocol.13111MIT
- AlicenseCqualityDmaintenanceEnables AI agents to interact with Webflow APIs for managing sites, pages, components, CMS collections, and custom code.321,183MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to deploy, manage, and rollback websites via the Krexel API, supporting site uploads, deploys, logs, rollbacks, environment variables, and status checks.9108MIT
- AlicenseNot gradedqualityDmaintenanceAI agent website builder, starting with link-in-bio sites. Create and publish via MCP server or REST API.2MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/northbeamsoftware/warpweb-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server