Skip to main content
Glama

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.app

One 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_here

Cline / 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 to create_site will silently pick the wrong match for common names. Returns up to 5 candidates with placeId, address, phone, rating — pass the chosen placeId to create_site for an exact match. Free.

Sites

  • create_site — kick off an end-to-end build. Returns siteId immediately; real builds take 3–8 minutes. Poll get_site or subscribe to the site.complete lifecycle webhook.

  • get_site — fetch one site's current status. Use this to poll a build (every 2–5 seconds) while status is generating.

  • 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, returns revisionId.

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 call check_domain first; the price field 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.com to site <siteId> — the customer already owns it at GoDaddy."

  • "Configure form submissions on site <siteId> to POST to https://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

create_site

~200–500 credits (billed at end-of-build against actual AI usage)

create_revision

~20–100 credits

attach_domain

5 credits

register_domain

50 credits + registrar pass-through

search_businesses, check_domain, get_site, list_sites, refresh_site, configure_form_webhook

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.


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 tools
attach_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain to attach (e.g. "acme-plumbing.com"). Must be owned by the customer.
siteIdYesSite UUID to attach the domain to.

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoCity name to bias regional suggestions (e.g. "austin").
domainYesThe domain to check, including TLD (e.g. "acme-plumbing.com").
industryNoIndustry to bias related suggestions (e.g. "plumbing").

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdYesSite UUID to configure the form webhook for.
webhook_urlYesYour HTTP(S) endpoint that will receive form-submission POSTs.
rotate_secretNoWhen true, regenerates the signing secret (invalidates the prior one). Default false.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
promptYesNatural-language description of the change. Be specific about what to change and what to leave alone.
siteIdYesSite UUID to edit.

TDQS

A4.5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
logoUrlNoURL to a business logo. Used for branding and color extraction.
designStyleNoOverride the auto-selected design style. Available styles surface in the dashboard.
facebookUrlNoPublic Facebook page URL — used as a research signal.
ownerPromptNoVoice/tone direction or anything to emphasize (e.g. "Emphasize 24/7 emergency service").
businessNameYesThe business as customers know it (e.g. "Acme Plumbing"). 1–200 chars.
contactEmailYesEmail address. Receives form submissions if no webhook is configured, plus a deploy notice.
uploadedPhotosNoArray of photo URLs to include on the site.
businessLocationNoCity + state/region (e.g. 'Austin, TX'). Strongly recommended — drives local SEO, areas-served copy, and example testimonials.
businessDescriptionNoFree-text description of what the business does. Helps when Google Places coverage is thin.

TDQS

A5/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdYesSite UUID returned by `create_site`.

TDQS

A4.9/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
siteIdYesSite UUID to refresh.

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
priceYesPrice in CENTS, must match `price_cents` returned by `check_domain`. Cap: 5000 cents ($50/yr).
domainYesDomain to register (must be the same domain you checked).
siteIdYesSite UUID to attach the domain to.
pagesProjectNameYesThe site slug returned by `create_site` (e.g. "acme-plumbing-a1b2c3").

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesBusiness name to search for. Free-form text Google Places will search (e.g. "Acme Plumbing", "Mike's BBQ").
locationNoOptional 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

A4.8/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 10 tool updatesv0.1.4
    • First observedattach_domain
    • First observedcheck_domain
    • First observedconfigure_form_webhook
    • First observedcreate_revision
    • First observedcreate_site
    • First observedget_site
    • First observedlist_sites
    • First observedrefresh_site
    • First observedregister_domain
    • First observedsearch_businesses

TDQS

A4.4/5.0
Disambiguation5/5

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).

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to build, edit, and publish live websites with hosting, database, auth, and domains via the Model Context Protocol.
    13
    11
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables AI assistants to deploy, manage, and rollback websites via the Krexel API, supporting site uploads, deploys, logs, rollbacks, environment variables, and status checks.
    9
    108
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    AI agent website builder, starting with link-in-bio sites. Create and publish via MCP server or REST API.
    2
    MIT

Latest Blog Posts

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