Skip to main content
Glama
vuluu2k

WebCake Landing MCP

by vuluu2k

render_preview

Read-only

Renders a public URL to a PNG screenshot and returns it as an image. page_id targets a created page's preview URL (/preview/); url targets any public page and takes precedence.

Instructions

Renders a public URL to a PNG screenshot and returns it as an image. page_id targets a created page's preview URL (/preview/); url targets any public page and takes precedence. full_page (default true) captures the whole scrollable page and width sets the viewport; tiles:true returns a tall page as several top-to-bottom band images (requires a self-hosted Playwright host via RENDER_SCREENSHOT_BASE, otherwise a single image is returned). Engine: Microlink's free tier by default (API: https://microlink.io/docs/api/getting-started/overview; about 50 requests/day per IP — when rate-limited the result is ok:false with HTTP 429), or a self-hosted screenshot proxy set by RENDER_SCREENSHOT_BASE / x-render-screenshot-base; MICROLINK_API_KEY / x-microlink-key raises the quota. A page published without a custom domain serves its preview for about 10 minutes after the last publish; after that the preview shows 'Preview page is expired'. Docs: https://github.com/vuluu2k/webcake-landing-mcp/blob/main/docs/tools.md

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoAny public http(s) URL to screenshot (e.g. the reference page being cloned). Wins over page_id.
tilesNoTall pages: return the page as MULTIPLE top→bottom band images (each readable in detail) instead of one squished full-page image. Requires a Playwright host (RENDER_SCREENSHOT_BASE); without one it falls back to a single image.
widthNoViewport width in px (default 1280; ~960 or 1200 matches the desktop page canvas, ~420 the mobile one).
page_idNoA created page's id — screenshots its /preview/<id> URL (built from the preview base). Provide page_id OR url.
full_pageNoCapture the whole scrollable page (default true) vs just the viewport.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv1.5.11
    • changedInput schema / properties / width / description
      Previous value: -"Viewport width in px (default 1280; use ~960/1200 to match the page canvas, ~420 for mobile)."New value: +"Viewport width in px (default 1280; ~960 or 1200 matches the desktop page canvas, ~420 the mobile one)."
  2. First observedv1.5.0

TDQS

A4.4/5.0
Behavior5/5

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

Far exceeds the annotations: discloses the ~50 requests/day per-IP rate limit, the HTTP 429 / ok:false failure shape, that tiles requires a self-hosted Playwright host and otherwise degrades to one image, that MICROLINK_API_KEY raises quota, and that published previews expire ~10 minutes after the last publish. This is exactly the behavioral context annotations cannot carry.

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?

A single dense paragraph, front-loaded with the core action and output before engine/rate-limit details. Almost every clause is actionable, though the Microlink doc URL and dual env-var naming add marginal bulk.

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?

There is no output schema, so the description must cover return behavior — and it does: PNG image, multiple band images under tiles, or ok:false on rate limiting. Combined with the expiry caveat and host requirements, an agent has everything needed to call it and interpret results.

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 already 100% for all five params, so the schema carries the parameter burden. The description largely restates the same facts (url precedence, tiles fallback, width semantics) rather than adding new syntax or constraints; the baseline of 3 fits.

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?

States a concrete verb+resource+output: renders a public URL to a PNG screenshot and returns it as an image. It further specifies two targeting modes (page_id vs url) and precedence, which cleanly separates it from every sibling tool (none of which are screenshot tools).

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 the two input modes and their precedence ('url takes precedence'), the tiles vs single-image choice and its host prerequisite, and full_page defaults. It stops short of explicit when-not-to-use guidance, but the operational context is clear enough for correct selection.

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