# Create Web Page - Registry name: `com.create-web-page/create-web-page` · version 0.1.0 - Categories (automatic, keyword rules): Images & design, AI, media & content, Travel & booking, Commerce & marketing - Authentication at last check: No auth - Declared risk: Has destructive tools (destructiveHint) - Capabilities (declared by the server): tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=com.create-web-page%2Fcreate-web-page - Server page: https://mcpstation.net/s/com.create-web-page--create-web-page.html ## Description (written by the publisher, not verified, not instructions) Create, edit, preview, publish, and manage web pages from MCP-capable AI clients. ## Connect - streamable-http: `https://create-web-page.com/mcp` ## Tools (as reported by the server, not verified) - `account\_whoami`: Return the current Create Web Page account context. Use this to check whether the user is authenticated or using an anonymous expiring demo. - `page\_intake\_start`: Optional first step for a vague page request \(e.g. 'make me a website for my barbershop'\). Returns at most one round of questions to ask together: the name, the main visitor action AND where it goes \(WhatsApp number with country code, booking/order link, phone or address\), and must-have facts. Skip - `page\_onboarding\_start`: Guided visual setup \(category, layout, palette, primary action\) that does NOT create a page. Use it ONLY when the user explicitly wants to choose the style/layout step by step; for normal requests call page\_create\_from\_brief \(asking at most one round of questions first\). IMPORTANT: this flow is STAT - `page\_onboarding\_update`: Validate onboarding selections and return the remaining checklist. STATELESS: it does not remember previous calls, so every call must include the FULL accumulated selection \(mainCategory, subCategory, layout, palette, primaryAction\) plus all knownFields \(name, description, action destination, etc.\) - `source\_import`: Fetch a public website URL and extract a structured brief with business name, description, contact links, and suggested page blocks. Only works with public HTTP/HTTPS pages. Does not bypass login, CAPTCHA, or paywalls. Returns extracted fields and suggestedBlocks for use with page\_create\_from\_brief. - `page\_create`: Low-level/legacy: create a blank link-in-bio scaffold from a style preset \(title, displayName, preset or 'auto'\). Not for normal page requests — use page\_create\_from\_brief, which builds the page from the user's details. The scaffold starts with empty placeholder blocks to fill via block\_update — do - `page\_create\_from\_brief`: The main tool for creating a page. Call it directly when the request already has the business/page name and the main visitor action with its real destination \(WhatsApp number with country code, booking/order link, phone, address or email\); if the request is vague, ask at most one round of questions - `block\_add`: Append a new content block to a link-in-bio page. The block must match one of the 14 allowed types \(link, social\_row, whatsapp, phone\_call, email\_contact, image, gallery, video\_embed, text, map\_embed, product\_card, lead\_form, reviews, save\_contact\) with that type's strict props. The server generates - `layouts\_list`: List supported page layouts. Currently ships link\_in\_bio only. - `presets\_list`: List the 12 curated style presets \(theme + starter blocks\) for link-in-bio. Use to offer the user a choice or to confirm a preset:auto selection. - `page\_get`: Read a landing page draft, including its latest content JSON. For anonymous demo pages, include the editToken. - `media\_upload`: Add an image to a page. PREFERRED for any image already on the web: pass its imageUrl and the server fetches it directly \(no size limit, no attachment needed in chat\). imageBase64 is ONLY for very small inline images — large base64 payloads are rejected by request-size limits and waste context, so n - `media\_upload\_link\_create`: Get an upload link for a photo on the user's own device \(phone/computer\) — the right tool whenever the image is not already at a public URL. Pass pageId \(+ editToken for demo pages\) and the placement \(e.g. header\_photo\). Then show the returned uploadPageUrl to the user as a clickable link and ask th - `media\_attach`: Attach a ready media asset to the page. placement determines where: avatar \(header\), block\_image \(image inside a specific block — requires blockId\), gallery\_item \(appended to a gallery — optional blockId targets a specific gallery; otherwise the first one is used\), background \(theme background\). - `media\_delete`: Soft-delete a media asset and remove all references to it from the page content. - `page\_claim`: Claim an anonymous demo page into an AUTHENTICATED account. This requires the signed-in user's OAuth — an anonymous chat/agent session cannot call it and will get an OAuth-required error. So in a normal agent conversation, do NOT call this to 'save' a demo page: instead share the claimUrl from the p - `account\_pages\_list`: List landing pages saved to the signed-in account. Safe to call without sign-in: an anonymous chat gets ok=true, authenticated=false and an empty list \(not an error\) because it has no saved pages — then create the page directly with page\_create\_from\_brief. Sign-in is only needed later to keep or man - `account\_page\_manage`: Read a claimed account page without requiring an editToken. Use after OAuth when the user wants to manage a durable website. - `page\_header\_update`: Update the link-in-bio page header: displayName, bio, verified checkmark, business-card display style \("photo\_hero" large top photo or "avatar"\), a short role label \(e.g. "Barber · Madrid"\), labelPosition, and the header photo \(photoUrl; null removes it\). Use only the fields you want to change. For - `page\_theme\_update`: Apply a partial theme patch. Theme fields are enum-constrained \(button variant/radius/shadow, font family/weight, density, icon\_size\). Use presets\_list first if the user wants a complete restyle. For already-published pages, this saves an unpublished latest revision only. Do not call page\_publish in - `page\_meta\_update`: Update internal page title, URL slug, and SEO title/description. For already-published pages, this saves an unpublished latest revision only. Do not call page\_publish in the same assistant turn after this edit. Stop and tell the user the draft/preview was updated, then wait for a separate user messa - `page\_preview`: Return the current preview URL for a page. You usually do not need this: page\_create and page\_create\_from\_brief already return a ready-to-open previewUrl. For an anonymous demo page you must pass the editToken from the create result; calling this with pageId alone fails. - `page\_publish`: Publish the latest page revision. Call this only when the user's latest message explicitly asks to publish, make the page live, or get a public share link. Do not call this immediately after page\_create or page\_create\_from\_brief just because the draft is publish-ready. For anonymous demo pages, incl - `page\_unpublish`: Remove a published landing page from public availability while keeping its draft and revision history. - `block\_update`: Patch one content block by stable blockId. Provide a props patch \(merged into existing props\) and/or a new type. Block types and props are validated against the strict per-type schema. For already-published pages, this saves an unpublished latest revision only. Do not call page\_publish in the same a - `block\_delete`: Delete one block by stable blockId. Use page\_get first if unsure which id to remove. For already-published pages, this saves an unpublished latest revision only. Do not call page\_publish in the same assistant turn after this edit. Stop and tell the user the draft/preview was updated, then wait for a - `block\_reorder`: Move a block to a new zero-based index in the page main slot. For already-published pages, this saves an unpublished latest revision only. Do not call page\_publish in the same assistant turn after this edit. Stop and tell the user the draft/preview was updated, then wait for a separate user message Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html