Skip to main content
Glama

Create landing page preview

create_landing_page_preview

Use this tool when you have the final HTML of a new page: a landing page (ランディングページ), a page of the user's ホームページ or Webサイト, or one of many guide, FAQ, or comparison pages made for search and AI answers. It creates the whole page preview in a single Convika call, and is the default tool for a new page.

This tool creates the page, puts it at the requested path or URL when provided, sets conversion goals, saves the HTML content as the first version, and creates a token-protected preview URL. It avoids multi-step approval prompts in MCP clients.

Where a page goes: a workspace holds sites, and each of its pages is a path on one of them: .convika.page, or the workspace's own domain once its pages open there (get_brand shows them). Pass path, such as /guides/how-to-choose, to put the page there. Leave path out and the first page sits at /, a later one at a free path made from its name. subdomain is only for the workspace's first page: it names the workspace's convika.page site. For a full URL on a domain, such as https://www.example.com/lp2, pass url instead of path.

If guidance.existingSite is present, the requested URL shows or forwards to another site now, and connecting it would replace that. Tell the user before any DNS change, as the text says.

New pages per UTC day, per workspace: Free 10, Pro 100, MAX 1000. The count resets at midnight UTC and includes pages created through the dashboard, uploads, built-in AI, MCP, and free tools. Deleting a page does not restore the day's allowance.

Forms: create_form needs the siteId this tool returns, so a form can't be embedded in this first call. Leave the form out (or keep a placeholder section), then call create_form with the returned siteId, save the HTML with the form embed via save_page_content, and call create_preview so the preview shows the working form.

Do not use publish_site unless the user explicitly asks to publish/go live in production.

Input Schema

NameRequiredDescriptionDefault
jsNoJavaScript for interactive elements.
cssNoCustom CSS for styles Tailwind cannot express.
urlNoOptional exact custom URL requested by the user, for example 'https://www.example.com/lp2' or 'www.example.com/lp2'. A root URL such as 'https://example.com/lp2' goes on 'https://www.example.com/lp2', and example.com redirects to www once its DNS points at Convika (guidance.rootRedirect has the records). If the reply has guidance.rootNotServed instead, example.com without www won't open the page.
htmlYesComplete HTML document using Tailwind CSS v3. Must include the Tailwind CDN script in <head>. The page (html, css, and js together) can be up to 2 MB.
nameYesDisplay name for the page
pathNoThe page's path on the workspace's site, such as '/guides/how-to-choose' or '/menu': lowercase letters, numbers, and hyphens between slashes. For a page after the first, write one: 1 to 3 English words that say what the page is, even when the page is in Japanese (料金表 → /pricing). Left out, Convika makes a free path from the name (the first page sits at /). Not together with url.
goalsNoOptional conversion goals to configure before preview creation.
localeNoLanguage for the page content.en
purposeNoLanding page purpose.
industryNoLanding page industry.
patternsNoPattern metadata. Accepted for backward compatibility; prefer sections.
sectionsNoSections in the page, matching <section> order in the HTML. Prefer providing real descriptions; if omitted, Convika synthesizes placeholder section metadata from the HTML.
changelogNoDescription of this initial version.
subdomainNoOnly for the workspace's first page, while get_brand has no hostLabel: it names the workspace's site, <subdomain>.convika.page, and this page sits at /. Lowercase letters, numbers, and hyphens. Later pages share that site: give them path instead. Never put a requested path such as /lp2 here.
primaryOfferNoThe main offer or CTA promise, such as a free trial, demo, consultation, or purchase. Saved on the page; get_site returns it.
productSummaryNoWhat the page promotes, in one or two sentences. Saved on the page; get_site returns it.
targetAudienceNoWho the page is for, in one sentence (e.g. 'office workers near Shibuya station'). Saved on the page; get_site returns it.
designOverridesNoOptional bounded design knob overrides.
designProfileIdNoOptional design profile ID.
designRationaleNoShort design rationale.
expectedBrandIdNoThe workspace's id from get_brand. When the connection now works on another workspace (the dashboard's active workspace was switched), the call changes nothing and answers brand_mismatch.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • changedInput schema / properties / expectedBrandId / description
      Previous value: -"The brand's id from get_brand. When the connection now works on another brand (the dashboard's active workspace was switched), the call changes nothing and answers brand_mismatch."New value: +"The workspace's id from get_brand. When the connection now works on another workspace (the dashboard's active workspace was switched), the call changes nothing and answers brand_mismatch."
    • changedInput schema / properties / locale / description
      Previous value: -"Language for the site content."New value: +"Language for the page content."
    • changedInput schema / properties / name / description
      Previous value: -"Display name for the site"New value: +"Display name for the page"
    • changedInput schema / properties / path / description
      Previous value: -"The page's path on the brand's address, such as '/guides/how-to-choose' or '/menu': lowercase letters, numbers, and hyphens between slashes. For a page after the first, write one: 1 to 3 English words that say what the page is, even when the page is in Japanese (料金表 → /pricing). Left out, Convika makes a free path from the name (the first page sits at /). Not together with url."New value: +"The page's path on the workspace's site, such as '/guides/how-to-choose' or '/menu': lowercase letters, numbers, and hyphens between slashes. For a page after the first, write one: 1 to 3 English words that say what the page is, even when the page is in Japanese (料金表 → /pricing). Left out, Convika makes a free path from the name (the first page sits at /). Not together with url."
    • changedInput schema / properties / primaryOffer / description
      Previous value: -"The main offer or CTA promise, such as a free trial, demo, consultation, or purchase. Saved on the site; get_site returns it."New value: +"The main offer or CTA promise, such as a free trial, demo, consultation, or purchase. Saved on the page; get_site returns it."
    • changedInput schema / properties / productSummary / description
      Previous value: -"What the page promotes, in one or two sentences. Saved on the site; get_site returns it."New value: +"What the page promotes, in one or two sentences. Saved on the page; get_site returns it."
    • changedInput schema / properties / subdomain / description
      Previous value: -"Only for the workspace's first page, while get_brand has no hostLabel: it names the brand's address, <subdomain>.convika.page, and this page sits at /. Lowercase letters, numbers, and hyphens. Later pages share that address: give them path instead. Never put a requested path such as /lp2 here."New value: +"Only for the workspace's first page, while get_brand has no hostLabel: it names the workspace's site, <subdomain>.convika.page, and this page sits at /. Lowercase letters, numbers, and hyphens. Later pages share that site: give them path instead. Never put a requested path such as /lp2 here."
    • changedInput schema / properties / targetAudience / description
      Previous value: -"Who the page is for, in one sentence (e.g. 'office workers near Shibuya station'). Saved on the site; get_site returns it."New value: +"Who the page is for, in one sentence (e.g. 'office workers near Shibuya station'). Saved on the page; get_site returns it."
  2. Changed1 schema field changed
    • changedInput schema / properties / path / description
      Previous value: -"The page's path on the brand's address, such as '/guides/how-to-choose' or '/menu': lowercase letters, numbers, and hyphens between slashes. Leave it out for a free path made from the name (the first page sits at /). Not together with url."New value: +"The page's path on the brand's address, such as '/guides/how-to-choose' or '/menu': lowercase letters, numbers, and hyphens between slashes. For a page after the first, write one: 1 to 3 English words that say what the page is, even when the page is in Japanese (料金表 → /pricing). Left out, Convika makes a free path from the name (the first page sits at /). Not together with url."
  3. Changed4 schema fields changed
    • addedInput schema / properties / expectedBrandId
      Added value: +{
      +  "description": "The brand's id from get_brand. When the connection now works on another brand (the dashboard's active workspace was switched), the call changes nothing and answers brand_mismatch.",
      +  "maxLength": 100,
      +  "minLength": 1,
      +  "type": "string"
      +}
    • addedInput schema / properties / path
      Added value: +{
      +  "description": "The page's path on the brand's address, such as '/guides/how-to-choose' or '/menu': lowercase letters, numbers, and hyphens between slashes. Leave it out for a free path made from the name (the first page sits at /). Not together with url.",
      +  "maxLength": 200,
      +  "type": "string"
      +}
    • changedInput schema / properties / subdomain / description
      Previous value: -"Managed Convika fallback subdomain. Do not replace a requested path with this."New value: +"Only for the workspace's first page, while get_brand has no hostLabel: it names the brand's address, <subdomain>.convika.page, and this page sits at /. Lowercase letters, numbers, and hyphens. Later pages share that address: give them path instead. Never put a requested path such as /lp2 here."
    • changedInput schema / required
      Previous value: -[
      -  "name",
      -  "subdomain",
      -  "html"
      -]New value: +[
      +  "name",
      +  "html"
      +]
  4. Changed1 schema field changed
    • changedInput schema / properties / url / description
      Previous value: -"Optional exact custom URL requested by the user, for example 'https://www.example.com/lp2' or 'www.example.com/lp2'. A root URL such as 'https://example.com/lp2' goes on 'https://www.example.com/lp2'; unless the reply has guidance.rootRedirect, example.com without www won't open the page (guidance.rootNotServed)."New value: +"Optional exact custom URL requested by the user, for example 'https://www.example.com/lp2' or 'www.example.com/lp2'. A root URL such as 'https://example.com/lp2' goes on 'https://www.example.com/lp2', and example.com redirects to www once its DNS points at Convika (guidance.rootRedirect has the records). If the reply has guidance.rootNotServed instead, example.com without www won't open the page."
  5. Changed1 schema field changed
    • changedInput schema / properties / url / description
      Previous value: -"Optional exact custom URL requested by the user, for example 'https://www.example.com/lp2' or 'www.example.com/lp2'."New value: +"Optional exact custom URL requested by the user, for example 'https://www.example.com/lp2' or 'www.example.com/lp2'. A root URL such as 'https://example.com/lp2' goes on 'https://www.example.com/lp2'; unless the reply has guidance.rootRedirect, example.com without www won't open the page (guidance.rootNotServed)."
  6. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the generic non-read-only, non-idempotent profile; the description adds substantial specifics beyond that: the exact side effects (page creation, goal setup, HTML saved as first version, token-protected preview URL), per-workspace daily quotas by plan, that the count resets at midnight UTC and includes dashboard/uploads/AI/MCP creation, and that deleting a page does not restore allowance. It also flags the DNS-replacement risk when guidance.existingSite is present and warns the user must be told before any DNS change.

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?

Well front-loaded: the trigger and core behavior come first, then placement rules, quotas, forms, and the publish warning in descending priority. It is long, and the path/url/subdomain paragraph substantially restates what the 100%-covered schema already says, which is the main redundancy.

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 21-parameter, nested-object, non-idempotent creation tool with no output schema, the description covers what an agent needs: when to call it, where the page lands, quota limits, the multi-step form workaround, and the publish boundary. The mention that siteId is returned compensates for the absent output schema at the level an agent needs to chain calls.

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 the baseline is 3, but the description adds a mental model the schema lacks: workspaces hold sites, each page is a path on one site, and the interplay between path, url, and subdomain (subdomain only for the workspace's first page; url instead of path for a full domain). It stops short of explaining the goals, sections, or designOverrides semantics, which remain schema-only.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('creates the whole page preview in a single Convika call') and positions itself as 'the default tool for a new page', which an agent can act on. However, with near-identical siblings in the list (create_page, create_pages, create_landing_page, create_preview), the description never names them or explains the boundary, so the differentiation is only implicit.

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?

Opens with the triggering condition ('when you have the final HTML of a new page') and enumerates the page types it covers. It gives explicit exclusions ('Do not use publish_site unless the user explicitly asks to publish/go live') and prescribes the follow-on sequence for forms (create_form with the returned siteId, save_page_content, create_preview).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.