Skip to main content
Glama

Render a document

render

Creates a document by filling a stored template, or ad-hoc html, with data: a PDF or image, or DOCX, PPTX or PDF from Word and PowerPoint templates. Returns the render with status and download_url; for an image (png, jpg or webp) up to 2 MB the result also carries the picture itself, so look at what you made before handing it on (a PDF comes as its link). Use it to make a document from data; to turn an existing office file into a PDF, use convert_to_pdf. Stored templates render their published version, so one whose published_version is null fails with template_not_found. Every call is a new render: a live key or a signed-in agent consumes units, a test key is free (watermarked on the Free plan). A render that fails returns status failed and an error with code and message; validate_template finds most causes beforehand. With einvoice the PDF becomes a ZUGFeRD / Factur-X e-invoice built from data._invoice (check the block with check_invoice first): the render then carries einvoice, the validator's report, and a refused invoice names the fields and rules to fix. The link expires at expires_at; get_render issues a fresh one.

Input Schema

NameRequiredDescriptionDefault
dataNoValues for the template, shaped as get_template_schema describes; leave out when it needs none
htmlNoA complete HTML document to render instead of a stored template, up to 5 MB
waitNoMost renders are finished when the call returns; true also waits for one that continues in the background, false returns it as it is (queued or rendering) to check later with get_render
engineNoTemplate language of html, when it contains expressions to fill from data
localeNoBCP 47 tag for helpers and translations, e.g. de-DE
outputNoLeft out, the template decides: PDF for PDF templates and html, its image format for image templates, its default output for Word and PowerPoint templates. Word templates render docx or pdf, PowerPoint templates pptx or pdf
einvoiceNoMakes the PDF a ZUGFeRD / Factur-X e-invoice whose XML is built from data._invoice: true for the defaults, an object to choose, false to switch off what the template declares. PDF only; live renders from the Starter plan, test keys on Free make 20 marked ones a day
filenameNoName of the file behind download_url, e.g. invoice-2026-0042.pdf
templateNoSlug or tpl_ id of a stored template; pass this or html

Output Schema

NameRequiredDescriptionDefault
idYesrnd_ id of the render
errorYesWhy a failed render failed
unitsYesUnits the render counted
statusYes
einvoiceNoThe e-invoice report, when the render made one
templateYesThe template and version rendered; null for html and conversions
expires_atYesWhen download_url stops working; get_render issues a fresh one
page_countYes
environmentYes
download_urlYesSigned link to the file; null until the render succeeded
accessibilityNoThe PDF/UA-1 verdict, when the template declares it

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Goes well past the annotations: it discloses unit consumption for live/signed-in agents vs free watermarked test keys, that only the published template version renders (null published_version -> template_not_found), that failures return status failed with code and message, that the download link expires at expires_at, and that image renders under 2 MB inline the picture. 'Every call is a new render' is consistent with idempotentHint=false rather than a restatement.

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?

Front-loaded and nearly every sentence carries distinct information (outputs, alternatives, billing, failures, e-invoice, link expiry). It is a single dense block, though, with several parenthetical asides packed together, which costs some scannability.

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 nine-parameter, nested-object, mutation-style tool with an output schema and annotations, the description covers outputs, defaults, billing, failure modes, pre-validation steps, e-invoice behavior and link lifetime. An agent has everything needed to invoke it correctly and interpret the result.

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% and the schema already describes data, html, wait, engine, locale, output, einvoice, filename and template thoroughly, including the enum semantics. The description reinforces the template-versus-html choice and the einvoice/data._invoice coupling but adds little parameter-level detail the schema doesn't already carry, so the baseline 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?

Opens with a specific verb and resource — creates a document by filling a stored template or ad-hoc html — and immediately enumerates the concrete outputs (PDF, image, DOCX/PPTX from Word/PowerPoint templates). It actively differentiates itself from named siblings: convert_to_pdf for office conversions, validate_template for pre-checks, check_invoice for e-invoice validation, get_render for fresh links.

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?

Explicit routing: 'Use it to make a document from data; to turn an existing office file into a PDF, use convert_to_pdf,' plus 'validate_template finds most causes beforehand' and 'check the block with check_invoice first.' The conditions that select each alternative are stated, leaving nothing to inference.

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.

Resources