Skip to main content
Glama

Create landing page draft

postfjord_create_page

Create draft bio or landing pages with structured blocks, brand styles and pre-publish checks; pages stay offline until separately published with owner approval.

Instructions

Creates a draft page. Nothing goes online: publishing needs postfjord_publish_page and the owner's yes. kind bio is the link in bio page (one per workspace, at the workspace's address); kind landing is a page for one offer, class or signup at address/slug, as many as the plan allows (drafts count). The page gets the brand kit's colours on the chosen style. Images must be ids from postfjord_list_media, a form block needs a signup form id from postfjord_list_pages. The answer has the page and the checks that still stop a publish. On a retry after a timeout or error, send the same idempotency_key: the first answer comes back and nothing is made or sent twice. The blocks from top to bottom. A link in bio page is usually: a hero with layout avatar (the business name, a short line and a photo), a links block with the most important links, and a social block. A landing page for one offer: a hero, a text, a list or faq, a button or a form block. A countdown block (date, time, tz, units, button { label, href }, after, afterText, afterButton) counts down to a date, like a launch or the last day to sign up: use only a real date the person gave, and never move a deadline that has passed to a later one. A location block (name is the business name here; street, city, region, postal, country, phone, tz, week, exceptions) shows the address, opening hours with Open now, a Call button and map links: use only hours and an address the user gave you; never invent them. For a class, call or appointment, use a booking block with the booking link; never invent a link. Write real facts only; do not invent prices, dates or quotes. Text in [brackets] stops a publish; a link written words in a text, the hero line or a faq answer is a link, not brackets, and [words]{#rrggbb} gives those words a color (only when the user asks for one). Any block, and any row of a links block, can show only from one time until another (show).

Input Schema

NameRequiredDescriptionDefault
kindNobio or landing (default).
slugNolanding only: the address after the workspace's, lowercase words with hyphens, like free-class.
styleNoThe look, minimal when left out.
titleYesThe page's name, up to 60 characters. Browsers and shared links show it when the page has no hero heading.
blocksNoThe blocks from top to bottom. A link in bio page is usually: a hero with layout avatar (the business name, a short line and a photo), a links block with the most important links, and a social block. A landing page for one offer: a hero, a text, a list or faq, a button or a form block. A countdown block (date, time, tz, units, button { label, href }, after, afterText, afterButton) counts down to a date, like a launch or the last day to sign up: use only a real date the person gave, and never move a deadline that has passed to a later one. A location block (name is the business name here; street, city, region, postal, country, phone, tz, week, exceptions) shows the address, opening hours with Open now, a Call button and map links: use only hours and an address the user gave you; never invent them. For a class, call or appointment, use a booking block with the booking link; never invent a link. Write real facts only; do not invent prices, dates or quotes. Text in [brackets] stops a publish; a link written [words](https://address) in a text, the hero line or a faq answer is a link, not brackets, and [words]{#rrggbb} gives those words a color (only when the user asks for one). Any block, and any row of a links block, can show only from one time until another (show).
liveFromNoLanding pages only: when visitors can see the whole page, as a date and time with an offset or a local time in the workspace time zone (timeZone in postfjord_get_page). Before liveFrom the address says the page does not exist; after liveUntil visitors see that it has ended. null removes it. The link in bio page cannot be scheduled as a whole.
seoTitleNoA title for Google and shared links, up to 70 characters.
useBrandNofalse keeps the style's own colours instead of the brand kit's.
liveUntilNoLanding pages only: when visitors can see the whole page, as a date and time with an offset or a local time in the workspace time zone (timeZone in postfjord_get_page). Before liveFrom the address says the page does not exist; after liveUntil visitors see that it has ended. null removes it. The link in bio page cannot be scheduled as a whole.
descriptionNoWhat Google and shared links show under the title, up to 200 characters.
hideFromSearchNoLanding pages only: true keeps the page out of Google and other search engines (a robots noindex tag, and it leaves the sitemap), so only people with the link find it. On a live page the change goes live with the next postfjord_publish_page.
idempotency_keyNoYour own id for this one action, for example post-20261006-launch. Make a new one for each new thing; send the same one again only when you retry. Left out, the exact same call within 10 minutes counts as a retry.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Beyond the annotations it discloses that nothing goes live on create, that drafts count against the plan allowance, that the brand kit sets colours, and that a retry with the same idempotency_key replays the first answer rather than creating twice. The idempotentHint=false annotation is not contradicted because the description frames idempotency as conditional on the supplied key. It does not describe failure modes beyond publish-blocking checks.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The first two sentences are well front-loaded and the scope/publish gate comes before detail. But roughly two thirds of the text is a block-by-block tutorial that duplicates the blocks parameter description word for word, which is bulk the agent already has in the schema; those sentences do not earn their place in the tool description.

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 12-parameter mutation tool with no output schema, the description covers the return shape ("the page and the checks that still stop a publish"), the publish gate, idempotency/retry semantics, content-truthfulness constraints and the link/bracket syntax. An agent could call this correctly from the description plus schema without further discovery.

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 schema already documents every parameter, and the long block-composition passage in the description (hero/layout avatar, links, social, countdown, location, booking, bracket rules) is reproduced nearly verbatim from the blocks parameter's own schema description, adding no meaning on top of it. The genuinely additive content — recommended page recipes for bio vs landing — is minimal. Baseline 3 is right.

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 opening two sentences state a specific verb and resource ("Creates a draft page") and immediately name the boundary with the sibling that publishes (postfjord_publish_page), so an agent can tell creation from publishing without opening a schema. The kind=bio vs kind=landing distinction is then spelled out with scope differences (one per workspace vs many per plan).

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?

It gives clear when-to-use context and routes to prerequisites: image ids come from postfjord_list_media, form ids from signup forms in postfjord_list_pages, retained block ids from postfjord_get_page, and publishing needs postfjord_publish_page plus the owner's yes. What is missing is an explicit exclusion — nothing says to use postfjord_update_page instead when the page already exists, despite that sibling being present.

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

Deploy Server

Other Tools