Skip to main content
Glama

Render a print document

fullbleed_render
DestructiveIdempotent

Render static HTML/CSS to PDF and return output paths with render diagnostics. Use it to turn supplied markup and styles into print-ready PDF files, not live websites.

Instructions

Render static HTML/CSS to a PDF and return output paths and render diagnostics. Supply exactly one of html or html_path. Use fullbleed_render_preview for visual iteration, fullbleed_verify for delivery checks, or fullbleed_compile_vdp for variable records. Does not capture live websites.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cssNoOptional inline CSS, applied before css_paths. Use @page for print page size and margins.
htmlNoInline static HTML or SVG markup. Supply exactly one of html and html_path; JavaScript is not executed.
profileNoOptional render preset: dev enables JIT planning without XObject reuse; preflight enables planning and reuse; prod enables reuse with JIT off. Omit to use engine defaults. Select PDF standards separately with pdf_profile.
css_pathsNoExisting UTF-8 CSS files under the MCP workspace root, read in array order after inline css. Relative paths are resolved from the server's --root.
html_pathNoExisting UTF-8 HTML or SVG file under the MCP workspace root. Relative to the server's --root. Supply exactly one of html and html_path.
image_dpiNoPNG preview resolution in dots per inch; defaults to 150. Used only when emit_image_dir is supplied; does not change PDF page geometry.
font_pathsNoExisting embeddable font files under the MCP workspace root. Register these fonts before rendering; do not rely on system fonts. Relative paths are resolved from the server's --root.
pdf_vt_jobNoOptional Job/Record/Document hierarchy and private Fullbleed DPM for pdf_profile='pdfvt1'. Omit records to generate one record and document per input, compiled copy, or binding row.
output_pathYesDestination PDF under the MCP workspace root, relative to the server's --root. Parent directories are created; an existing file is replaced.
pdf_profileNoPDF export profile; omitted means ordinary PDF. Read fullbleed_capabilities.pdf_profile_catalog for names and font, ICC, title, and timestamp requirements. This is separate from the render tool's dev/preflight/prod preset.
document_langNoDocument language for PDF metadata, as a BCP-47 tag such as 'en-US'.
document_titleNoHuman-readable title stored in PDF metadata. Required for pdfx4 and pdfvt1 output.
emit_image_dirNoOptional directory under the MCP workspace root for per-page PNG previews. Omit for PDF-only output; fullbleed_render_preview chooses the PDF and PNG paths together.
allow_fallbacksNoAllow missing-glyph and font-substitution signals without failing those selected fail_on checks. Does not enable a browser fallback or fetch fonts.
document_timestampNoPDF write date: UTC YYYY-MM-DDTHH:MM:SSZ, 'current', or 'source-date-epoch' (reads SOURCE_DATE_EPOCH). Required for pdfx4 and pdfvt1. Resolved once per engine; use an explicit value for repeatable output.
output_intent_infoNoOptional human-readable description of the output condition. Requires output_intent_icc_path.
output_intent_icc_pathNoExisting ICC profile file under the MCP workspace root, used as the PDF output intent. Required by PDF/A, PDF/X, and PDF/VT profiles.
output_intent_componentsNoICC color-component count: 1 for gray, 3 for RGB, 4 for CMYK. Defaults to 3 and must match the profile supplied by output_intent_icc_path.
output_intent_identifierNoNonblank output-condition identifier for the ICC output intent; defaults to 'Custom'. Requires output_intent_icc_path.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed23 schema fields changedv2.5.2
    • addedInput schema / properties / allow_fallbacks / description
      Added value: +"Allow missing-glyph and font-substitution signals without failing those selected fail_on checks. Does not enable a browser fallback or fetch fonts."
    • changedInput schema / properties / css / description
      Previous value: -"Inline CSS."New value: +"Optional inline CSS, applied before css_paths. Use @page for print page size and margins."
    • changedInput schema / properties / css_paths / description
      Previous value: -"Workspace-relative CSS paths."New value: +"Existing UTF-8 CSS files under the MCP workspace root, read in array order after inline css. Relative paths are resolved from the server's --root."
    • addedInput schema / properties / document_lang / description
      Added value: +"Document language for PDF metadata, as a BCP-47 tag such as 'en-US'."
    • changedInput schema / properties / document_timestamp / description
      Previous value: -"UTC job write date YYYY-MM-DDTHH:MM:SSZ, current, or source-date-epoch. Resolved once when the engine is created."New value: +"PDF write date: UTC YYYY-MM-DDTHH:MM:SSZ, 'current', or 'source-date-epoch' (reads SOURCE_DATE_EPOCH). Required for pdfx4 and pdfvt1. Resolved once per engine; use an explicit value for repeatable output."
    • addedInput schema / properties / document_title / description
      Added value: +"Human-readable title stored in PDF metadata. Required for pdfx4 and pdfvt1 output."
    • addedInput schema / properties / emit_image_dir / description
      Added value: +"Optional directory under the MCP workspace root for per-page PNG previews. Omit for PDF-only output; fullbleed_render_preview chooses the PDF and PNG paths together."
    • changedInput schema / properties / font_paths / description
      Previous value: -"Workspace-relative embeddable font paths."New value: +"Existing embeddable font files under the MCP workspace root. Register these fonts before rendering; do not rely on system fonts. Relative paths are resolved from the server's --root."
    • changedInput schema / properties / html / description
      Previous value: -"Inline HTML or SVG markup."New value: +"Inline static HTML or SVG markup. Supply exactly one of html and html_path; JavaScript is not executed."
    • changedInput schema / properties / html_path / description
      Previous value: -"Workspace-relative HTML or SVG path."New value: +"Existing UTF-8 HTML or SVG file under the MCP workspace root. Relative to the server's --root. Supply exactly one of html and html_path."
    • addedInput schema / properties / image_dpi / description
      Added value: +"PNG preview resolution in dots per inch; defaults to 150. Used only when emit_image_dir is supplied; does not change PDF page geometry."
    • addedInput schema / properties / output_intent_components / description
      Added value: +"ICC color-component count: 1 for gray, 3 for RGB, 4 for CMYK. Defaults to 3 and must match the profile supplied by output_intent_icc_path."
    • changedInput schema / properties / output_intent_icc_path / description
      Previous value: -"Workspace-relative ICC profile path."New value: +"Existing ICC profile file under the MCP workspace root, used as the PDF output intent. Required by PDF/A, PDF/X, and PDF/VT profiles."
    • addedInput schema / properties / output_intent_identifier / description
      Added value: +"Nonblank output-condition identifier for the ICC output intent; defaults to 'Custom'. Requires output_intent_icc_path."
    • addedInput schema / properties / output_intent_info / description
      Added value: +"Optional human-readable description of the output condition. Requires output_intent_icc_path."
    • changedInput schema / properties / output_path / description
      Previous value: -"Required workspace-relative output PDF path."New value: +"Destination PDF under the MCP workspace root, relative to the server's --root. Parent directories are created; an existing file is replaced."
    • addedInput schema / properties / pdf_profile / description
      Added value: +"PDF export profile; omitted means ordinary PDF. Read fullbleed_capabilities.pdf_profile_catalog for names and font, ICC, title, and timestamp requirements. This is separate from the render tool's dev/preflight/prod preset."
    • addedInput schema / properties / pdf_vt_job / description
      Added value: +"Optional Job/Record/Document hierarchy and private Fullbleed DPM for pdf_profile='pdfvt1'. Omit records to generate one record and document per input, compiled copy, or binding row."
    • addedInput schema / properties / pdf_vt_job / properties / id / description
      Added value: +"Nonblank part identifier, at most 4096 UTF-8 bytes. Record IDs must be unique in the job; document IDs must be unique within their record."
    • addedInput schema / properties / pdf_vt_job / properties / records / items / properties / documents / description
      Added value: +"Ordered documents in this record. Each consumes one input document, compiled copy, or binding row; final pagination supplies its page range."
    • addedInput schema / properties / pdf_vt_job / properties / records / items / properties / documents / items / properties / id / description
      Added value: +"Nonblank part identifier, at most 4096 UTF-8 bytes. Record IDs must be unique in the job; document IDs must be unique within their record."
    • addedInput schema / properties / pdf_vt_job / properties / records / items / properties / id / description
      Added value: +"Nonblank part identifier, at most 4096 UTF-8 bytes. Record IDs must be unique in the job; document IDs must be unique within their record."
    • addedInput schema / properties / profile / description
      Added value: +"Optional render preset: dev enables JIT planning without XObject reuse; preflight enables planning and reuse; prod enables reuse with JIT off. Omit to use engine defaults. Select PDF standards separately with pdf_profile."
  2. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, so the write/replace profile is covered structurally. The description adds useful non-annotation context: it returns render diagnostics, does not execute JavaScript, and does not fetch live sites. It could go further on overwrite/atomicity behavior, but the added boundaries are real value.

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

Conciseness5/5

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

Three sentences, front-loaded with the action and return value, then the exclusivity constraint, then sibling routing. No filler and nothing an agent must read past to find the core capability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description covers capability, inputs constraint, and sibling selection for a complex nested-schema tool. It leaves profile/pdf_profile interaction and the destructive overwrite of output_path to the schema, which is acceptable but slightly thin for a 19-parameter destructive tool.

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% across all 19 parameters, including the tricky profile-vs-pdf_profile split and the ICC output-intent prerequisites, so the schema carries the semantics. The description only restates the html/html_path exclusivity already documented in both parameter descriptions, adding no syntax or format detail beyond it.

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 specific verb and resource (render static HTML/CSS to PDF), names the concrete outputs (output paths and render diagnostics), and draws a hard boundary ('Does not capture live websites') that separates it from a browser-capture tool. An agent can distinguish it from fullbleed_render_preview or fullbleed_render_compiled without opening a schema.

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?

Explicitly routes the agent: fullbleed_render_preview for visual iteration, fullbleed_verify for delivery checks, fullbleed_compile_vdp for variable records, and states the mutual-exclusion rule 'Supply exactly one of html or html_path.' Both the when-to-use and the selection conditions are present.

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